Re-compile nv-codec-headers 13.0.19.0 by applying upstream's commit 876af32 diff.
source and commit: Commit 876af32 (add a few missing functions)
nv-codec-headers.SlackBuild
[code]
| #!/bin/bash # Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA # Copyright 2024 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. cd $(dirname $0) ; CWD=$(pwd) PKGNAM=nv-codec-headers VERSION=${VERSION:-$(echo nv-codec-headers-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-2jw} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$(uname -m)" in i?86) ARCH=i686 ;; arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; # Unless $ARCH is already set, use uname -m for all other archs: *) ARCH=$(uname -m) ;; esac export ARCH fi # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" exit 0 fi NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} if [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=pentium4 -mtune=generic" LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC" LIBDIRSUFFIX="64" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi TMP=${TMP:-/tmp} PKG=$TMP/package-$PKGNAM rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf nv-codec-headers-$VERSION tar xvf $CWD/nv-codec-headers-$VERSION.tar.?z || exit 1 cd nv-codec-headers-$VERSION || exit 1 chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ # add a few missing functions (include/ffnvcodec/{dynlink_cuda.h, dynlink_loader.h} ; commit 876af32a202d0de83bd1d36fe74ee0f7fcf86b0d zcat $CWD/001_876af32_fix-missing-functions.patch.gz | patch -p1 --verbose || exit 1 make \ $NUMJOBS \ PREFIX=/usr \ LIBDIR=/lib$LIBDIRSUFFIX \ DESTDIR=$PKG \ install || exit 1 mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a README \ $PKG/usr/doc/$PKGNAM-$VERSION cp $CWD/001_876af32_fix-missing-functions.patch.gz $PKG/usr/doc/$PKGNAM-$VERSION cat $CWD/${PKGNAM}.SlackBuild > $PKG/usr/doc/$PKGNAM-$VERSION/${PKGNAM}.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz |
001_876af32_fix-missing-functions.patch
[code]
| diff -Nru a/include/ffnvcodec/dynlink_cuda.h b/include/ffnvcodec/dynlink_cuda.h --- a/include/ffnvcodec/dynlink_cuda.h 2025-02-01 03:18:28.000000000 +0900 +++ b/include/ffnvcodec/dynlink_cuda.h 2025-10-27 19:37:10.079498130 +0900 @@ -414,6 +414,7 @@ #define CU_TRSF_READ_AS_INTEGER 1 typedef void CUDAAPI CUstreamCallback(CUstream hStream, CUresult status, void *userdata); +typedef void CUDAAPI CUhostFn(void *userData); typedef CUresult CUDAAPI tcuInit(unsigned int Flags); typedef CUresult CUDAAPI tcuDriverGetVersion(int *driverVersion); @@ -428,6 +429,8 @@ typedef CUresult CUDAAPI tcuDeviceGetPCIBusId(char* pciBusId, int len, CUdevice dev); typedef CUresult CUDAAPI tcuDeviceComputeCapability(int *major, int *minor, CUdevice dev); typedef CUresult CUDAAPI tcuCtxCreate_v2(CUcontext *pctx, unsigned int flags, CUdevice dev); +typedef CUresult CUDAAPI tcuCtxSynchronize(void); +typedef CUresult CUDAAPI tcuCtxGetStreamPriorityRange(int *leastPriority, int *greatestPriority); typedef CUresult CUDAAPI tcuCtxGetCurrent(CUcontext *pctx); typedef CUresult CUDAAPI tcuCtxSetLimit(CUlimit limit, size_t value); typedef CUresult CUDAAPI tcuCtxPushCurrent_v2(CUcontext pctx); @@ -438,6 +441,10 @@ typedef CUresult CUDAAPI tcuMemAllocManaged(CUdeviceptr *dptr, size_t bytesize, unsigned int flags); typedef CUresult CUDAAPI tcuMemsetD8Async(CUdeviceptr dstDevice, unsigned char uc, size_t N, CUstream hStream); typedef CUresult CUDAAPI tcuMemFree_v2(CUdeviceptr dptr); +typedef CUresult CUDAAPI tcuMemHostAlloc(void **pp, size_t bytesize, unsigned int flags); +typedef CUresult CUDAAPI tcuMemFreeHost(void *p); +typedef CUresult CUDAAPI tcuMemAllocAsync(CUdeviceptr *dptr, size_t bytesize, CUstream hStream); +typedef CUresult CUDAAPI tcuMemFreeAsync(CUdeviceptr dptr, CUstream hStream); typedef CUresult CUDAAPI tcuMemcpy(CUdeviceptr dst, CUdeviceptr src, size_t bytesize); typedef CUresult CUDAAPI tcuMemcpyAsync(CUdeviceptr dst, CUdeviceptr src, size_t bytesize, CUstream hStream); typedef CUresult CUDAAPI tcuMemcpy2D_v2(const CUDA_MEMCPY2D *pcopy); @@ -459,6 +466,7 @@ typedef CUresult CUDAAPI tcuDevicePrimaryCtxReset(CUdevice dev); typedef CUresult CUDAAPI tcuStreamCreate(CUstream *phStream, unsigned int flags); +typedef CUresult CUDAAPI tcuStreamCreateWithPriority(CUstream *phStream, unsigned int flags, int priority); typedef CUresult CUDAAPI tcuStreamQuery(CUstream hStream); typedef CUresult CUDAAPI tcuStreamSynchronize(CUstream hStream); typedef CUresult CUDAAPI tcuStreamDestroy_v2(CUstream hStream); @@ -471,6 +479,8 @@ typedef CUresult CUDAAPI tcuEventRecord(CUevent hEvent, CUstream hStream); typedef CUresult CUDAAPI tcuLaunchKernel(CUfunction f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream, void** kernelParams, void** extra); +typedef CUresult CUDAAPI tcuLaunchHostFunc(CUstream hStream, CUhostFn *fn, void *userData); + typedef CUresult CUDAAPI tcuLinkCreate(unsigned int numOptions, CUjit_option* options, void** optionValues, CUlinkState* stateOut); typedef CUresult CUDAAPI tcuLinkAddData(CUlinkState state, CUjitInputType type, void* data, size_t size, const char* name, unsigned int numOptions, CUjit_option* options, void** optionValues); typedef CUresult CUDAAPI tcuLinkComplete(CUlinkState state, void** cubinOut, size_t* sizeOut); diff -Nru a/include/ffnvcodec/dynlink_loader.h b/include/ffnvcodec/dynlink_loader.h --- a/include/ffnvcodec/dynlink_loader.h 2025-02-01 03:18:28.000000000 +0900 +++ b/include/ffnvcodec/dynlink_loader.h 2025-10-27 19:37:32.716636236 +0900 @@ -149,6 +149,8 @@ tcuDeviceGetPCIBusId *cuDeviceGetPCIBusId; tcuDeviceComputeCapability *cuDeviceComputeCapability; tcuCtxCreate_v2 *cuCtxCreate; + tcuCtxSynchronize *cuCtxSynchronize; + tcuCtxGetStreamPriorityRange *cuCtxGetStreamPriorityRange; tcuCtxGetCurrent *cuCtxGetCurrent; tcuCtxSetLimit *cuCtxSetLimit; tcuCtxPushCurrent_v2 *cuCtxPushCurrent; @@ -159,6 +161,10 @@ tcuMemAllocManaged *cuMemAllocManaged; tcuMemsetD8Async *cuMemsetD8Async; tcuMemFree_v2 *cuMemFree; + tcuMemHostAlloc *cuMemHostAlloc; + tcuMemFreeHost *cuMemFreeHost; + tcuMemAllocAsync *cuMemAllocAsync; + tcuMemFreeAsync *cuMemFreeAsync; tcuMemcpy *cuMemcpy; tcuMemcpyAsync *cuMemcpyAsync; tcuMemcpy2D_v2 *cuMemcpy2D; @@ -180,6 +186,7 @@ tcuDevicePrimaryCtxReset *cuDevicePrimaryCtxReset; tcuStreamCreate *cuStreamCreate; + tcuStreamCreateWithPriority *cuStreamCreateWithPriority; tcuStreamQuery *cuStreamQuery; tcuStreamSynchronize *cuStreamSynchronize; tcuStreamDestroy_v2 *cuStreamDestroy; @@ -192,6 +199,7 @@ tcuEventRecord *cuEventRecord; tcuLaunchKernel *cuLaunchKernel; + tcuLaunchHostFunc *cuLaunchHostFunc; tcuLinkCreate *cuLinkCreate; tcuLinkAddData *cuLinkAddData; tcuLinkComplete *cuLinkComplete; @@ -316,6 +324,8 @@ LOAD_SYMBOL(cuDeviceGetName, tcuDeviceGetName, "cuDeviceGetName"); LOAD_SYMBOL(cuDeviceComputeCapability, tcuDeviceComputeCapability, "cuDeviceComputeCapability"); LOAD_SYMBOL(cuCtxCreate, tcuCtxCreate_v2, "cuCtxCreate_v2"); + LOAD_SYMBOL(cuCtxSynchronize, tcuCtxSynchronize, "cuCtxSynchronize"); + LOAD_SYMBOL(cuCtxGetStreamPriorityRange, tcuCtxGetStreamPriorityRange, "cuCtxGetStreamPriorityRange"); LOAD_SYMBOL(cuCtxGetCurrent, tcuCtxGetCurrent, "cuCtxGetCurrent"); LOAD_SYMBOL(cuCtxSetLimit, tcuCtxSetLimit, "cuCtxSetLimit"); LOAD_SYMBOL(cuCtxPushCurrent, tcuCtxPushCurrent_v2, "cuCtxPushCurrent_v2"); @@ -326,6 +336,10 @@ LOAD_SYMBOL(cuMemAllocManaged, tcuMemAllocManaged, "cuMemAllocManaged"); LOAD_SYMBOL(cuMemsetD8Async, tcuMemsetD8Async, "cuMemsetD8Async"); LOAD_SYMBOL(cuMemFree, tcuMemFree_v2, "cuMemFree_v2"); + LOAD_SYMBOL(cuMemHostAlloc, tcuMemHostAlloc, "cuMemHostAlloc"); + LOAD_SYMBOL(cuMemFreeHost, tcuMemFreeHost, "cuMemFreeHost"); + LOAD_SYMBOL(cuMemAllocAsync, tcuMemAllocAsync, "cuMemAllocAsync"); + LOAD_SYMBOL(cuMemFreeAsync, tcuMemFreeAsync, "cuMemFreeAsync"); LOAD_SYMBOL(cuMemcpy, tcuMemcpy, "cuMemcpy"); LOAD_SYMBOL(cuMemcpyAsync, tcuMemcpyAsync, "cuMemcpyAsync"); LOAD_SYMBOL(cuMemcpy2D, tcuMemcpy2D_v2, "cuMemcpy2D_v2"); @@ -347,6 +361,7 @@ LOAD_SYMBOL(cuDevicePrimaryCtxReset, tcuDevicePrimaryCtxReset, "cuDevicePrimaryCtxReset"); LOAD_SYMBOL(cuStreamCreate, tcuStreamCreate, "cuStreamCreate"); + LOAD_SYMBOL(cuStreamCreateWithPriority, tcuStreamCreateWithPriority, "cuStreamCreateWithPriority"); LOAD_SYMBOL(cuStreamQuery, tcuStreamQuery, "cuStreamQuery"); LOAD_SYMBOL(cuStreamSynchronize, tcuStreamSynchronize, "cuStreamSynchronize"); LOAD_SYMBOL(cuStreamDestroy, tcuStreamDestroy_v2, "cuStreamDestroy_v2"); @@ -359,6 +374,7 @@ LOAD_SYMBOL(cuEventRecord, tcuEventRecord, "cuEventRecord"); LOAD_SYMBOL(cuLaunchKernel, tcuLaunchKernel, "cuLaunchKernel"); + LOAD_SYMBOL(cuLaunchHostFunc, tcuLaunchHostFunc, "cuLaunchHostFunc"); LOAD_SYMBOL(cuLinkCreate, tcuLinkCreate, "cuLinkCreate"); LOAD_SYMBOL(cuLinkAddData, tcuLinkAddData, "cuLinkAddData"); LOAD_SYMBOL(cuLinkComplete, tcuLinkComplete, "cuLinkComplete"); |
slack-desc
[code]
| # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. # Line up the first '|' above the ':' following the base package name, and # the '|' on the right side marks the last column you can put a character in. # You must make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| nv-codec-headers: nv-codec-headers (Headers for NVidia's codec APIs) nv-codec-headers: nv-codec-headers: FFmpeg version of headers required to interface with NVidia's codec nv-codec-headers: APIs. nv-codec-headers: nv-codec-headers: nv-codec-headers: nv-codec-headers: nv-codec-headers: nv-codec-headers: nv-codec-headers: |
===
[NEW] 2025/10/27
![deepl-clip.sh で簡単翻訳 [更新:2025-04-29]](https://resize.blogsys.jp/fc265bdb808435596af7a249f59820084c144620/crop1/120x120_ffffff/https://livedoor.blogimg.jp/jw_slackware/imgs/0/d/0d2fff59-s.png)






