Check-in [af522d011f]
Overview
Comment:Updated to weaken symbols from non-Tcl/Tk related libraries in KitDLL
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:af522d011fff43d1d5bd679f9e4016ffd798ebbb
User & Date: rkeene on 2011-03-07 07:02:39
Other Links: manifest | tags
Context
2011-03-08
03:50
Updated to build with new toolchain check-in: de3aacd495 user: rkeene tags: trunk
2011-03-07
07:02
Updated to weaken symbols from non-Tcl/Tk related libraries in KitDLL check-in: af522d011f user: rkeene tags: trunk
2011-03-04
19:00
Updated documentation and tests to reflect change to remove bundled packages during a minimal build check-in: acdbe69639 user: rkeene tags: trunk
Changes

Modified kitdll/buildsrc/kitdll-0.0/Makefile.in from [024981b5ad] to [54a46a52d1].

     1      1   CC = @CC@
            2  +OBJCOPY = @OBJCOPY@
     2      3   CFLAGS = @CFLAGS@ @SHOBJFLAGS@ -Wall
     3      4   CPPFLAGS = @CPPFLAGS@ @DEFS@ -DKITDLL_MAKE_LOADABLE=1
     4      5   WISH_CFLAGS = @WISH_CFLAGS@
     5      6   LDFLAGS = @LDFLAGS@
     6      7   SHOBJLDFLAGS = @SHOBJLDFLAGS@
     7      8   LIBS = @LIBS@
     8      9   STATICLIBS = @ARCHS@
           10  +STRIPLIBS = @STRIPLIBS@ @EXTRA_OBJS@
     9     11   OBJS = vfs_kitdll_data_tcl.o kitInit.o rechan.o pwb.o zlib.o
    10     12   EXTRA_OBJS = @EXTRA_OBJS@
    11     13   TCLSH_NATIVE = tclsh
    12     14   
    13     15   # Default target
    14     16   all: libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    15     17   
................................................................................
    27     29   ## Extensions
    28     30   rechan.o: rechan.c
    29     31   pwb.o: pwb.c
    30     32   zlib.o: zlib.c
    31     33   
    32     34   ## DLL Build
    33     35   libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@: $(OBJS) $(EXTRA_OBJS)
           36  +	-for striplib in $(STRIPLIBS); do $(OBJCOPY) --weaken "$${striplib}"; done
    34     37   	$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(STATICLIBS) @NOWHOLEARCHIVE@ $(LIBS)
    35     38   
    36     39   # Test driver
    37     40   tclsh.o: tclsh.c
    38     41   tclsh: tclsh.o $(EXTRA_OBJS) libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    39     42   	$(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ -Wl,-rpath,.
    40     43   

Modified kitdll/buildsrc/kitdll-0.0/aclocal.m4 from [57e33ec54f] to [0c2240a08b].

   281    281   	dnl Sun Studio uses -lCstd -lCrun, most platforms use -lstdc++
   282    282   	DC_DO_STATIC_LINK_LIB([C++ Library (Sun Studio)], [-lCstd -lCrun],, [
   283    283   		DC_DO_STATIC_LINK_LIB([C++ Library (UNIX)], [-lstdc++])
   284    284   	])
   285    285   ])
   286    286   
   287    287   AC_DEFUN(DC_FIND_TCLKIT_LIBS, [
          288  +	AC_CHECK_TOOL(OBJCOPY, objcopy, [:])
          289  +
   288    290   	DC_SETUP_TCL_PLAT_DEFS
   289    291   
   290    292   	WISH_CFLAGS=""
   291    293   
   292    294   	dnl We will need this for the Tcl project, which we will always have
   293    295   	DC_CHECK_FOR_WHOLE_ARCHIVE
   294    296   
................................................................................
   298    300   		libdir="../../../${proj}/inst"
   299    301   		libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`"
   300    302   		libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`"
   301    303   
   302    304   		for libfile in ${libfiles}; do
   303    305   			LDFLAGS="${LDFLAGS} -L`dirname "${libfile}"`"
   304    306   		done
          307  +
          308  +		hide_symbols="1"
   305    309   
   306    310   		if test "$proj" = "tcl"; then
   307    311   			DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfilesnostub], [
   308    312   				libfiles="${libfilesnostub}"
   309    313   			], [
   310    314   				DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfiles], [
   311    315   					libfiles="${libfiles}"
   312    316   				])
   313    317   			])
          318  +
          319  +			hide_symbols="0"
   314    320   		fi
   315    321   
   316    322   		if test "${proj}" = "mk4tcl"; then
   317    323   			if test -n "$libfiles"; then
   318    324   				AC_DEFINE(KIT_INCLUDES_MK4TCL, [1], [Specify this if you link against mkt4tcl])
   319    325   				DC_DO_STATIC_LINK_LIBCXX
   320    326   			fi
................................................................................
   336    342   				if test -n "${TK_VERSION}"; then
   337    343   					AC_DEFINE_UNQUOTED(KIT_TK_VERSION, "${TK_VERSION}${TK_PATCH_LEVEL}", [Specify the version of Tk])
   338    344   				fi
   339    345   
   340    346   				if test "$host_os" = "mingw32msvc" -o "$host_os" = "mingw32"; then
   341    347   					WISH_CFLAGS="-mwindows"
   342    348   				fi
          349  +
          350  +				hide_symbols="0"
   343    351   			fi
   344    352   		fi
   345    353   
   346    354   		ARCHS="${ARCHS} ${libfiles}"
   347    355   
   348    356   		AC_MSG_RESULT([${libfiles}])
          357  +
          358  +		if test "${hide_symbols}" = "1"; then
          359  +			STRIPLIBS="${STRIPLIBS} ${libfiles}"
          360  +		fi
          361  +
   349    362   	done
   350    363   
   351    364   	AC_SUBST(WISH_CFLAGS)
   352    365   	AC_SUBST(ARCHS)
          366  +	AC_SUBST(STRIPLIBS)
   353    367   ])
   354    368   
   355    369   AC_DEFUN(DC_CHECK_FOR_ACCEPTABLE_DLADDR, [
   356    370   	AC_CHECK_HEADERS(dlfcn.h)
   357    371   	AC_CHECK_FUNCS(dladdr)
   358    372   
   359    373   	AC_MSG_CHECKING([for acceptable dladdr])