$NetBSD: patch-ai,v 1.46 2023/01/28 09:28:30 taca Exp $ 1) Add shlib definitions for NetBSD 5; the build system must be hard-coded per OS per version. Not yet reported upstream. 2) Make this pkgsrc friendly. 3) Add support for FreeBSD 13. 4) Add blocklist(3) support. --- makedefs.orig 2023-01-15 23:29:39.000000000 +0000 +++ makedefs @@ -339,6 +339,15 @@ case "$SYSTEM.$RELEASE" in : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} : ${PLUGIN_LD="${CC} -shared"} ;; + FreeBSD.13*) SYSTYPE=FREEBSD13 + : ${CC=cc} + : ${SHLIB_SUFFIX=.so} + : ${SHLIB_CFLAGS=-fPIC} + : ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'} + : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} + : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} + : ${PLUGIN_LD="${CC} -shared"} + ;; DragonFly.*) SYSTYPE=DRAGONFLY ;; OpenBSD.2*) SYSTYPE=OPENBSD2 @@ -376,49 +385,7 @@ case "$SYSTEM.$RELEASE" in ;; ekkoBSD.1*) SYSTYPE=EKKOBSD1 ;; - NetBSD.1*) SYSTYPE=NETBSD1 - ;; - NetBSD.2*) SYSTYPE=NETBSD2 - ;; - NetBSD.3*) SYSTYPE=NETBSD3 - ;; - NetBSD.4*) SYSTYPE=NETBSD4 - ;; - NetBSD.5*) SYSTYPE=NETBSD5 - ;; - NetBSD.6*) SYSTYPE=NETBSD6 - : ${SHLIB_SUFFIX=.so} - : ${SHLIB_CFLAGS=-fPIC} - : ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'} - : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; - NetBSD.7*) SYSTYPE=NETBSD7 - : ${SHLIB_SUFFIX=.so} - : ${SHLIB_CFLAGS=-fPIC} - : ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'} - : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; - NetBSD.8*) SYSTYPE=NETBSD8 - : ${SHLIB_SUFFIX=.so} - : ${SHLIB_CFLAGS=-fPIC} - : ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'} - : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; - NetBSD.9*) SYSTYPE=NETBSD9 - : ${SHLIB_SUFFIX=.so} - : ${SHLIB_CFLAGS=-fPIC} - : ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'} - : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} - : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"} - : ${PLUGIN_LD="${CC-gcc} -shared"} - ;; - NetBSD.10*) SYSTYPE=NETBSD10 + NetBSD*) SYSTYPE=NETBSD : ${SHLIB_SUFFIX=.so} : ${SHLIB_CFLAGS=-fPIC} : ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'} @@ -493,13 +460,6 @@ case "$SYSTEM.$RELEASE" in esac ;; ULTRIX.4*) SYSTYPE=ULTRIX4 - if [ -f /usr/local/lib/libdb.a ]; then - SYSLIBS="$SYSLIBS -ldb" - CCARGS="$CCARGS -DHAS_DB" - if [ -d /usr/local/include/db ]; then - CCARGS="$CCARGS -I/usr/local/include/db" - fi - fi for l in syslog resolv; do if [ -f /usr/local/lib/lib$l.a ]; then SYSLIBS="$SYSLIBS -l$l" @@ -541,33 +501,8 @@ case "$SYSTEM.$RELEASE" in esac;; # Tested with RedHat 3.03 on 20020729. Linux.1*) SYSTYPE=LINUX1 - case "$CCARGS" in - *-DNO_DB*) ;; - *-DHAS_DB*) ;; - *) SYSLIBS="-ldb";; - esac ;; Linux.2*) SYSTYPE=LINUX2 - case "$CCARGS" in - *-DNO_DB*) ;; - *-DHAS_DB*) ;; - *) if [ -f /usr/include/db.h ] - then - : we are all set - elif [ -f /usr/include/db/db.h ] - then - CCARGS="$CCARGS -I/usr/include/db" - else - # No, we're not going to try db1 db2 db3 etc. - # On a properly installed system, Postfix builds - # by including and by linking with -ldb - echo "No include file found." 1>&2 - echo "Install the appropriate db*-devel package first." 1>&2 - exit 1 - fi - SYSLIBS="-ldb" - ;; - esac for name in nsl resolv $GDBM_LIBS do for lib in /usr/lib64 /lib64 /usr/lib /lib @@ -667,24 +602,6 @@ Linux.[3456].*) SYSTYPE=LINUX$RELEASE_MA ;; GNU.0*|GNU/kFreeBSD.[567]*) SYSTYPE=GNU0 - case "$CCARGS" in - *-DNO_DB*) ;; - *) if [ -f /usr/include/db.h ] - then - : we are all set - elif [ -f /usr/include/db/db.h ] - then - CCARGS="$CCARGS -I/usr/include/db" - else - # On a properly installed system, Postfix builds - # by including and by linking with -ldb - echo "No include file found." 1>&2 - echo "Install the appropriate db*-devel package first." 1>&2 - exit 1 - fi - SYSLIBS="-ldb" - ;; - esac for name in nsl resolv do for lib in /usr/lib64 /lib64 /usr/lib /lib @@ -715,26 +632,14 @@ Linux.[3456].*) SYSTYPE=LINUX$RELEASE_MA HP-UX.A.09.*) SYSTYPE=HPUX9 SYSLIBS=-ldbm CCARGS="$CCARGS -DMISSING_USLEEP -DNO_SNPRINTF" - if [ -f /usr/lib/libdb.a ]; then - CCARGS="$CCARGS -DHAS_DB" - SYSLIBS="$SYSLIBS -ldb" - fi ;; HP-UX.B.10.*) SYSTYPE=HPUX10 CCARGS="$CCARGS `nm /usr/lib/libc.a 2>/dev/null | (grep usleep >/dev/null || echo '-DMISSING_USLEEP')`" CCARGS="$CCARGS -DNO_SNPRINTF" - if [ -f /usr/lib/libdb.a ]; then - CCARGS="$CCARGS -DHAS_DB" - SYSLIBS=-ldb - fi ;; HP-UX.B.11.*) SYSTYPE=HPUX11 SYSLIBS=-lnsl - if [ -f /usr/lib/libdb.a ]; then - CCARGS="$CCARGS -DHAS_DB" - SYSLIBS="$SYSLIBS -ldb" - fi ;; ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix543 RANLIB=echo @@ -782,12 +687,12 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix5 esac : ${SHLIB_CFLAGS=-fPIC} : ${SHLIB_SUFFIX=.dylib} - : ${SHLIB_LD="cc -shared -Wl,-flat_namespace ${NOFIXUP}-Wl,-undefined,dynamic_lookup "'-Wl,-install_name,@rpath/${LIB}'} + : ${SHLIB_LD='${CC} '"-shared -Wl,-flat_namespace ${NOFIXUP}-Wl,-undefined,dynamic_lookup "'-Wl,-install_name,@rpath/${LIB}'} : ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'} # In MacOS/X 10.11.x /bin/sh unsets DYLD_LIBRARY_PATH, so we # have export it into postfix-install indirectly! : ${SHLIB_ENV="DYLD_LIBRARY_PATH=`pwd`/lib SHLIB_ENV_VAR=DYLD_LIBRARY_PATH SHLIB_ENV_VAL=`pwd`/lib"} - : ${PLUGIN_LD="cc -shared -Wl,-flat_namespace ${NOFIXUP}-Wl,-undefined,dynamic_lookup"} + : ${PLUGIN_LD='${CC} '"-shared -Wl,-flat_namespace ${NOFIXUP}-Wl,-undefined,dynamic_lookup"} ;; dcosx.1*) SYSTYPE=DCOSX1 RANLIB=echo @@ -811,6 +716,21 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix5 esac # +# Support for blocklist(3) or blacklist(3). +# +case "$CCARGS" in + *-DUSE_BLOCKLIST*) + if test -f /usr/include/blocklist.h; then + CCARGS="$CCARGS -DHAVE_BLOCKLIST" + SYSLIBS="$SYSLIBS -lblocklist" + elif test -f /usr/include/blacklist.h; then + CCARGS="$CCARGS -DHAVE_BLACKLIST" + SYSLIBS="$SYSLIBS -lblacklist" + fi + ;; +esac + +# # sigsetjmp()/siglongjmp() can be "better" than setjmp()/longjmp() # if used wisely (that is: almost never, just like signals). # Unfortunately some implementations have been buggy in the past.