summaryrefslogtreecommitdiff
path: root/recipes/tcltk/files/tk-add-soname.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/tcltk/files/tk-add-soname.patch')
-rw-r--r--recipes/tcltk/files/tk-add-soname.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/recipes/tcltk/files/tk-add-soname.patch b/recipes/tcltk/files/tk-add-soname.patch
new file mode 100644
index 0000000000..f1f132f2a4
--- /dev/null
+++ b/recipes/tcltk/files/tk-add-soname.patch
@@ -0,0 +1,64 @@
+Patch by Chris Waters removes -rpath from search flags and adds -soname
+to library build options.
+
+Also, it fixes Makefile.in to put correct Tk library filename to pkgIndex.tcl
+
+--- tk8.4-8.4.19.orig/unix/configure
++++ tk8.4-8.4.19/unix/configure
+@@ -2568,12 +2568,15 @@
+ # get rid of the warnings.
+ #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
++ # following line added by CW for Debian GNU/Linux
++ TK_SHLIB_LD_EXTRAS="-Wl,-soname,\${TK_LIB_FILE}.0"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
+--- tk8.4-8.4.19.orig/unix/Makefile.in
++++ tk8.4-8.4.19/unix/Makefile.in
+@@ -635,7 +635,7 @@
+ relative=`echo | awk '{ORS=" "; split("$(TK_PKG_DIR)",a,"/"); for (f in a) {print ".."}}'`;\
+ echo "if {[package vcompare [package provide Tcl] $(TCLVERSION)] != 0} { return }";\
+ echo "package ifneeded Tk $(MAJOR_VERSION).$(MINOR_VERSION)\
+- [list load [file join \$$dir $${relative}$(TK_LIB_FILE)] Tk]";\
++ [list load [file join $(LIB_RUNTIME_DIR) $(TK_LIB_FILE).0] Tk]";\
+ ) > $(PKG_INDEX); \
+ fi
+ @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
+--- tk8.4-8.4.19.orig/unix/tcl.m4
++++ tk8.4-8.4.19/unix/tcl.m4
+@@ -1346,20 +1346,23 @@
+ # get rid of the warnings.
+ #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
++ # following line added by CW for Debian GNU/Linux
++ TK_SHLIB_LD_EXTRAS="-Wl,-soname,\${TK_LIB_FILE}.0"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+- LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
++ CC_SEARCH_FLAGS=""
++ LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"
+ else
+ AC_CHECK_HEADER(dld.h, [
+ SHLIB_LD="ld -shared"
+ DL_OBJS="tclLoadDld.o"
+ DL_LIBS="-ldld"
+ CC_SEARCH_FLAGS=""
+- LD_SEARCH_FLAGS=""])
++ LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"])
+ fi
+ if test "`uname -m`" = "alpha" ; then
+ CFLAGS="$CFLAGS -mieee"