pkgsrc/devel/libtool/patches/patch-ab
bad 1a86a78db2 On a.out systems link shared libraries against c++rt0.o only if there
actually are CTORS/DTORS in the objects that go into the library.

This makes pkgsrc under 1.3.x not blow up on C libraries that were built
with libtool.  E.g. everything that linked against -lintl would dump core.
2001-01-09 18:37:46 +00:00

75 lines
2 KiB
Text

$NetBSD: patch-ab,v 1.13 2001/01/09 18:37:46 bad Exp $
--- ltmain.in.orig0 Sat May 27 03:53:15 2000
+++ ltmain.in Tue Jan 9 19:21:17 2001
@@ -819,6 +819,7 @@
old_convenience=
deplibs=
linkopts=
+ wllinkopts=
if test -n "$shlibpath_var"; then
# get the directories listed in $shlibpath_var
@@ -1154,6 +1155,25 @@
continue
;;
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case "$flag" in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ linkopts="$linkopts $flag"
+ wllinkopts="$wllinkopts $wl$flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
# Some other compiler flag.
-* | +*)
# Unknown arguments in both finalize_command and compile_command need
@@ -1772,7 +1792,7 @@
fi
# Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
+ if test "$avoid_version" = yes; then
major=
versuffix=
verstring=""
@@ -1799,6 +1819,9 @@
# rhapsody is a little odd...
deplibs="$deplibs -framework System"
;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
*)
# Add libc to deplibs on all other systems.
deplibs="$deplibs -lc"
@@ -2146,6 +2169,17 @@
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
eval flag=\"$thread_safe_flag_spec\"
linkopts="$linkopts $flag"
+ wllinkopts="$wllinkopts $wl$flag"
+ fi
+
+ # Check whether we need to link in c++rt0.o on a.out because of
+ # constructors/destructors
+ if test -n "$ctor_check_cmd"; then
+ eval cmd=\"$ctor_check_cmd\"
+ #$show "$cmd"
+ if $run eval "$cmd" ; then
+ cppopts="$cpprt0"
+ fi
fi
# Do each of the archive commands.