$NetBSD: patch-ab,v 1.40 2012/03/31 01:27:27 ryoon Exp $ --- unix/configure.orig 2008-02-06 15:38:26.000000000 +0000 +++ unix/configure @@ -2567,6 +2567,7 @@ fi # Step 3: set configuration options based on system name and version. do64bit_ok=no + TCL_LIB_SPEC_RPATH="" LDFLAGS_ORIG="$LDFLAGS" TCL_EXPORT_FILE_SUFFIX="" UNSHARED_LIB_SUFFIX="" @@ -2991,6 +2992,21 @@ fi LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi ;; + Interix-3.*) + SHLIB_CFLAGS="" + SHLIB_LD='${TCL_CC} -shared' + SHLIB_LD_LIBS="" + SHLIB_SUFFIX=".so" + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,-E" + CC_SEARCH_FLAGS='-Wl,-R${LIB_RUNTIME_DIR}' + LD_SEARCH_FLAGS='-Wl,-R${LIB_RUNTIME_DIR}' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so', + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_SPEC_RPATH="-Wl,-R${exec_prefix}/lib" + TCL_LIB_VERSIONS_OK=nodots + ;; IRIX-4.*) SHLIB_CFLAGS="-G 0" SHLIB_SUFFIX=".a" @@ -3012,6 +3028,9 @@ fi DL_LIBS="" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots ;; IRIX-6.*) SHLIB_CFLAGS="" @@ -3037,6 +3056,9 @@ fi esac LDFLAGS="$LDFLAGS -n32" fi + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots ;; IRIX64-6.*) SHLIB_CFLAGS="" @@ -3060,6 +3082,9 @@ fi LDFLAGS="$LDFLAGS -64" fi fi + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots ;; Linux*) SHLIB_CFLAGS="-fPIC" @@ -3176,6 +3201,9 @@ echo "$ac_t""$tcl_cv_cc_m64" 1>&6 EOF + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots ;; GNU*) SHLIB_CFLAGS="-fPIC" @@ -3267,6 +3295,9 @@ fi LD_SEARCH_FLAGS="" ;; NetBSD-*|FreeBSD-[1-2].*) + if test "X${COMPILER_OPTIMIZATION_BUG}" = "XYES"; then + CFLAGS_OPTIMIZE=-O0 + fi # Not available on all versions: check for include file. ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 @@ -3299,15 +3330,13 @@ if eval "test \"`echo '$ac_cv_header_'$a # NetBSD/SPARC needs -fPIC, -fpic will not do. SHLIB_CFLAGS="-fPIC" - SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" DL_LIBS="" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' - LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' echo $ac_n "checking for ELF""... $ac_c" 1>&6 -echo "configure:3311: checking for ELF" >&5 +echo "configure:3340: checking for ELF" >&5 if eval "test \"`echo '$''{'tcl_cv_ld_elf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3334,6 +3363,8 @@ rm -f conftest* fi echo "$ac_t""$tcl_cv_ld_elf" 1>&6 + SHLIB_LD='${TCL_CC} -shared -Wl,-x' + LD_SEARCH_FLAGS='-Wl,-R${LIB_RUNTIME_DIR}' if test $tcl_cv_ld_elf = yes; then SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' else @@ -3361,7 +3392,7 @@ fi UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' TCL_LIB_VERSIONS_OK=nodots ;; - OpenBSD-*) + OpenBSD-*|MirBSD-*) case `arch -s` in m88k|vax) SHLIB_CFLAGS="" @@ -3431,7 +3462,7 @@ echo "$ac_t""$tcl_cv_ld_elf" 1>&6 UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' TCL_LIB_VERSIONS_OK=nodots ;; - FreeBSD-*) + FreeBSD-*|DragonFly-*) # FreeBSD 3.* and greater have ELF. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" @@ -3449,12 +3480,18 @@ echo "$ac_t""$tcl_cv_ld_elf" 1>&6 LDFLAGS="$LDFLAGS -pthread" fi case $system in - FreeBSD-3.*) - # FreeBSD-3 doesn't handle version numbers with dots. + FreeBSD-*) + # "nodots" required to confirm to pkgsrc lang/tcl PLIST UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' TCL_LIB_VERSIONS_OK=nodots ;; + DragonFly-*) + # "nodots" required to confirm to pkgsrc lang/tcl PLIST + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + TCL_LIB_VERSIONS_OK=nodots + ;; esac ;; Darwin-*) @@ -4003,6 +4040,9 @@ EOF CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' fi + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' + UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' + TCL_LIB_VERSIONS_OK=nodots ;; ULTRIX-4.*) SHLIB_CFLAGS="-G 0" @@ -4273,7 +4313,7 @@ fi ;; IRIX*) ;; - NetBSD-*|FreeBSD-*|OpenBSD-*) + NetBSD-*|FreeBSD-*|OpenBSD-*|MirBSD-*) ;; Darwin-*) ;; @@ -4299,8 +4339,8 @@ fi if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then LIB_SUFFIX=${SHARED_LIB_SUFFIX} - MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}' - INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' + MAKE_LIB='${SHLIB_LD} -o ${@:C/\.so.*/.la/} ${OBJS:.o=.lo} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} -version-info 1:0' + INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE:C/\.so.*/.la/) $(LIB_INSTALL_DIR)/$(LIB_FILE)' else LIB_SUFFIX=${UNSHARED_LIB_SUFFIX} @@ -9247,7 +9287,7 @@ else TCL_LIB_FLAG="-ltcl`echo ${TCL_VERSION} | tr -d .`\${TCL_DBGX}" fi TCL_BUILD_LIB_SPEC="-L`pwd` ${TCL_LIB_FLAG}" - TCL_LIB_SPEC="-L${libdir} ${TCL_LIB_FLAG}" + TCL_LIB_SPEC="${TCL_LIB_SPEC_RPATH} -L${libdir} ${TCL_LIB_FLAG}" else TCL_BUILD_EXP_FILE="lib.exp" eval "TCL_EXP_FILE=libtcl${TCL_EXPORT_FILE_SUFFIX}" @@ -9278,14 +9318,24 @@ VERSION=${TCL_VERSION} #-------------------------------------------------------------------- if test "$FRAMEWORK_BUILD" = "1" ; then - test -z "$TCL_PACKAGE_PATH" && \ - TCL_PACKAGE_PATH="~/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks" + test -z "$TCL_PACKAGE_PATH_ADD" && \ + TCL_PACKAGE_PATH_ADD="~/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks" elif test "$prefix" != "$exec_prefix"; then - TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" + TCL_PACKAGE_PATH_ADD="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" else - TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" + TCL_PACKAGE_PATH_ADD="${prefix}/lib ${TCL_PACKAGE_PATH}" fi +for dir in ${TCL_PACKAGE_PATH_ADD}; do + if test -z "${TCL_PACKAGE_PATH}"; then + TCL_PACKAGE_PATH="$dir" + else + TCL_PACKAGE_PATH="${TCL_PACKAGE_PATH} $dir" + fi +done + + + #-------------------------------------------------------------------- # The statements below define various symbols relating to Tcl # stub support. @@ -9442,34 +9492,15 @@ trap 'rm -f $CONFIG_STATUS conftest*; ex # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs # Without the "./", some shells look in PATH for config.status.