$NetBSD: patch-configure,v 1.3 2022/06/19 14:43:28 gdt Exp $ Add support for MirBSD as OpenBSD and DragonFly as FreeBSD. Upstream has support to use the version with or without dots as the shlib suffix, conditioned on TCL_LIB_VERSIONS_OK. This patch forces that to be the "NODOTS" flavor always. \todo Explain the plan; this seems likely to make the build the same on all pkgsrc platforms. Define PVNODOTS and use it to overwrite SHARED_LIB_SUFFIX and define UNSHARED_LIB_SUFFIX. PVNODOTS appears to have the same value as PACKAGE_VERSION_NO_DOTS, that upstream configure already computes. \todo Explain why there is a new variable. Add support for SVR5 and OpenServer 5. Sent upstream by email September 2019. Substitute the already-computed SHLIB_VERSION, for use in Makefile.in. \todo File changes upstream (but upstream is not functioning). --- configure.orig 2018-02-04 10:43:58.000000000 +0000 +++ configure @@ -659,6 +659,7 @@ LD_LIBRARY_PATH_VAR SHLIB_CFLAGS SHLIB_LD_LIBS SHLIB_LD +SHLIB_VERSION STLIB_LD CFLAGS_WARNING CFLAGS_OPTIMIZE @@ -6480,7 +6481,7 @@ fi LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi ;; - OpenBSD-*) + OpenBSD-*|MirBSD-*) SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_SUFFIX=".so" @@ -6563,11 +6564,11 @@ fi ;; esac ;; - FreeBSD-*) + FreeBSD-*|DragonFly-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -shared" - TCL_SHLIB_LD_EXTRAS="-soname \$@" + TCL_SHLIB_LD_EXTRAS="-Wl,-soname \$@" SHLIB_SUFFIX=".so" LDFLAGS="" if test $doRpath = yes; then : @@ -6941,6 +6942,54 @@ fi LD_SEARCH_FLAGS="" ;; SCO_SV-3.2*) + # SCO UNIX/OpenServer 5 gcc use -melf for full feature ELF binanaries. + # gcc is use to link there is no gnu ld. + # native compiler uses ld which comes with OS +if test "$GCC" = yes; then : + + SHLIB_CFLAGS="-fPIC -melf" + LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" + SHLIB_LD="gcc" +else + + SHLIB_CFLAGS="-Kpic -belf" + LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" + SHLIB_LD="ld -G" +fi + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" + ;; + UnixWare-5*|SCO_SV-5*) + # UnixWare gcc uses -pthread Native compiler use -Kpthread + # -Kthread will define _REENTRANT +if test "$GCC" = yes; then : + SHLIB_CFLAGS="-fPIC" + SHLIB_LD='${CC} ${CFLAGS} -shared' +else + SHLIB_CFLAGS="-KPIC" + SHLIB_LD="${CC} ${CFLAGS} -G -z text" +fi + SHLIB_LD_LIBS="-lsocket -lnsl -lz" + SHLIB_SUFFIX=".so" + CC_SEARCH_FLAGS="" + LD_SEARCH_FLAGS="" +if test "${TCL_THREADS}" = "1"; then : + # The -lpthread needs to go in the CFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-lpthread//` + if test "$GCC" = yes; then : + CFLAGS="$CFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + else + CFLAGS="$CFLAGS -Kpthread" + LDFLAGS="$LDFLAGS -Kpthread" + fi +fi + ;; + SunOS-5.[0-6]) + # Careful to not let 5.10+ fall into this case + if test "$GCC" = yes; then : SHLIB_CFLAGS="-fPIC -melf" @@ -7150,7 +7199,7 @@ fi BSD/OS*) ;; CYGWIN_*) ;; IRIX*) ;; - NetBSD-*|FreeBSD-*|OpenBSD-*) ;; + NetBSD-*|FreeBSD-*|OpenBSD-*|DragonFly-*|MirBSD-*) ;; Darwin-*) ;; SCO_SV-3.2*) ;; windows) ;; @@ -9596,15 +9645,7 @@ fi # up the Tcl library. PACKAGE_VERSION_NODOTS="`echo $PACKAGE_VERSION | sed -e 's/\.//g'`" - -if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then - EXP_LIB_VERSION=$PACKAGE_VERSION -else EXP_LIB_VERSION=$PACKAGE_VERSION_NODOTS -fi -if test $iunix -eq 1 ; then - EXP_LIB_VERSION=$PACKAGE_VERSION_NODOTS -fi # also remove dots on systems that don't support filenames > 14 # (are there systems which support shared libs and restrict filename lengths!?) @@ -9659,11 +9700,7 @@ if test "$FRAMEWORK_BUILD" = "1" ; then $as_echo "#define EXP_FRAMEWORK 1" >>confdefs.h else - if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then - EXP_LIB_FLAG="-lexpect${EXP_LIB_VERSION}" - else - EXP_LIB_FLAG="-lexpect`echo ${EXP_LIB_VERSION} | tr -d .`" - fi + EXP_LIB_FLAG="-lexpect`echo ${EXP_LIB_VERSION} | tr -d .`" EXP_BUILD_LIB_SPEC="-L`pwd` ${EXP_LIB_FLAG}" EXP_LIB_SPEC="-L${libdir} ${EXP_LIB_FLAG}" fi @@ -9965,6 +10002,9 @@ rm -f conftest* # substituted. (@@@ Might not be necessary anymore) #-------------------------------------------------------------------- + PVNODOTS=`echo ${PACKAGE_VERSION} | tr -d .` + SHARED_LIB_SUFFIX=${PVNODOTS}.so + UNSHARED_LIB_SUFFIX=${PVNODOTS}.a if test "${TEA_PLATFORM}" = "windows" ; then if test "${SHARED_BUILD}" = "1" ; then # We force the unresolved linking of symbols that are really in