diff options
Diffstat (limited to 'unix')
-rwxr-xr-x | unix/configure | 18 | ||||
-rw-r--r-- | unix/tcl.m4 | 18 | ||||
-rw-r--r-- | unix/tclLoadDl.c | 6 | ||||
-rw-r--r-- | unix/tclLoadDyld.c | 6 |
4 files changed, 30 insertions, 18 deletions
diff --git a/unix/configure b/unix/configure index c24d5bf..af64e51 100755 --- a/unix/configure +++ b/unix/configure @@ -6939,7 +6939,7 @@ fi dgux*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -7480,7 +7480,7 @@ fi MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -7490,7 +7490,7 @@ fi MP-RAS-*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -8251,7 +8251,7 @@ else fi - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="" @@ -8313,7 +8313,7 @@ fi # This may work for all QNX, but it was only reported for v6. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" # dlopen is in -lc on QNX @@ -8338,7 +8338,7 @@ else fi SHLIB_LD="ld -G" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="" @@ -8348,7 +8348,7 @@ fi SINIX*5.4*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -8358,7 +8358,7 @@ fi SunOS-4*) SHLIB_CFLAGS="-PIC" SHLIB_LD="ld" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -8736,7 +8736,7 @@ fi UNIX_SV* | UnixWare-5*) SHLIB_CFLAGS="-KPIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" diff --git a/unix/tcl.m4 b/unix/tcl.m4 index a2e9392..1bbcf3a 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -1251,7 +1251,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ dgux*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -1456,7 +1456,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -1466,7 +1466,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ MP-RAS-*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -1773,7 +1773,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ AS_IF([test "$SHARED_BUILD" = 1], [SHLIB_LD="ld -shared"], [ SHLIB_LD="ld -non_shared" ]) - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="" @@ -1814,7 +1814,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ # This may work for all QNX, but it was only reported for v6. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" # dlopen is in -lc on QNX @@ -1834,7 +1834,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" ]) SHLIB_LD="ld -G" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="" @@ -1844,7 +1844,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ SINIX*5.4*) SHLIB_CFLAGS="-K PIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -1854,7 +1854,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ SunOS-4*) SHLIB_CFLAGS="-PIC" SHLIB_LD="ld" - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" @@ -2005,7 +2005,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ UNIX_SV* | UnixWare-5*) SHLIB_CFLAGS="-KPIC" SHLIB_LD='${CC} -G' - SHLIB_LD_LIBS='${LIBS}' + SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" diff --git a/unix/tclLoadDl.c b/unix/tclLoadDl.c index 24a546b..e38c280 100644 --- a/unix/tclLoadDl.c +++ b/unix/tclLoadDl.c @@ -73,6 +73,9 @@ TclpDlopen( */ native = Tcl_FSGetNativePath(pathPtr); + /* + * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070] + */ handle = dlopen(native, RTLD_NOW | RTLD_LOCAL); if (handle == NULL) { /* @@ -85,6 +88,9 @@ TclpDlopen( char *fileName = Tcl_GetString(pathPtr); native = Tcl_UtfToExternalDString(NULL, fileName, -1, &ds); + /* + * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070] + */ handle = dlopen(native, RTLD_NOW | RTLD_LOCAL); Tcl_DStringFree(&ds); } diff --git a/unix/tclLoadDyld.c b/unix/tclLoadDyld.c index a03bbda..0a36215 100644 --- a/unix/tclLoadDyld.c +++ b/unix/tclLoadDyld.c @@ -196,6 +196,9 @@ TclpDlopen( if (tclMacOSXDarwinRelease >= 8) #endif { + /* + * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070] + */ dlHandle = dlopen(nativePath, RTLD_NOW | RTLD_LOCAL); if (!dlHandle) { /* @@ -206,6 +209,9 @@ TclpDlopen( fileName = Tcl_GetString(pathPtr); nativeFileName = Tcl_UtfToExternalDString(NULL, fileName, -1, &ds); + /* + * Use (RTLD_NOW|RTLD_LOCAL) always, see [Bug #3216070] + */ dlHandle = dlopen(nativeFileName, RTLD_NOW | RTLD_LOCAL); } if (dlHandle) { |