mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-26 21:33:59 +08:00
libtool.m4: Sync darwin bits from libtool cvs to build a gcc with shared/dylibed libraries.
2003-11-19 Andreas Tobler <a.tobler@schweiz.ch> * libtool.m4: Sync darwin bits from libtool cvs to build a gcc with shared/dylibed libraries. * ltmain.sh: Likewise. * ltcf-c.sh: Likewise, disable shared library build for OS-X < 10.3. * ltcf-cxx.sh: Likewise. * ltcf-gcj.sh: Likewise. * ltconfig: Likewise. From-SVN: r73729
This commit is contained in:
parent
f7a75b82d2
commit
43d8d958ce
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
|
||||
|
||||
* libtool.m4: Sync darwin bits from libtool cvs to build a gcc with
|
||||
shared/dylibed libraries.
|
||||
* ltmain.sh: Likewise.
|
||||
* ltcf-c.sh: Likewise, disable shared library build for OS-X < 10.3.
|
||||
* ltcf-cxx.sh: Likewise.
|
||||
* ltcf-gcj.sh: Likewise.
|
||||
* ltconfig: Likewise.
|
||||
|
||||
2003-11-17 Stan Cox <scox@redhat.com>
|
||||
|
||||
* MAINTAINERS: Add myself as iq2000 port maintainer.
|
||||
|
5
libtool.m4
vendored
5
libtool.m4
vendored
@ -607,6 +607,7 @@ cygwin* | mingw* |pw32*)
|
||||
;;
|
||||
|
||||
darwin* | rhapsody*)
|
||||
# this will be overwritten by pass_all, but leave it in just in case
|
||||
lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
|
||||
lt_cv_file_magic_cmd='/usr/bin/file -L'
|
||||
case "$host_os" in
|
||||
@ -617,6 +618,7 @@ darwin* | rhapsody*)
|
||||
lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
|
||||
;;
|
||||
esac
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
freebsd* )
|
||||
@ -780,8 +782,9 @@ AC_DEFUN([AC_CHECK_LIBM],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
LIBM=
|
||||
case $host in
|
||||
*-*-beos* | *-*-cygwin* | *-*-pw32*)
|
||||
*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
|
||||
# These system don't have libm
|
||||
# on darwin the libm is a symbolic link to libSystem.dylib
|
||||
;;
|
||||
*-ncr-sysv4.3*)
|
||||
AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
|
||||
|
59
ltcf-c.sh
59
ltcf-c.sh
@ -175,16 +175,6 @@ EOF
|
||||
$CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
|
||||
;;
|
||||
|
||||
darwin* | rhapsody*)
|
||||
allow_undefined_flag='-undefined suppress'
|
||||
archive_cmds='$CC `test .$module = .yes && echo -bundle || echo -dynamiclib` $allow_undefined_flag -o $lib $libobjs $deplibs $linkopts -install_name $rpath/$soname `test -n "$verstring" -a x$verstring != x0.0 && echo $verstring`'
|
||||
# We need to add '_' to the symbols in $export_symbols first
|
||||
#archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
|
||||
hardcode_direct=yes
|
||||
hardcode_shlibpath_var=no
|
||||
whole_archive_flag_spec='-all_load $convenience'
|
||||
;;
|
||||
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
|
||||
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
|
||||
@ -385,9 +375,52 @@ else
|
||||
fix_srcfile_path='`cygpath -w "$srcfile"`'
|
||||
;;
|
||||
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
darwin* | rhapsody*)
|
||||
case "$host_os" in
|
||||
rhapsody* | darwin1.[[012]])
|
||||
allow_undefined_flag='-undefined suppress'
|
||||
;;
|
||||
*) # Darwin 1.3 on
|
||||
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
else
|
||||
case ${MACOSX_DEPLOYMENT_TARGET} in
|
||||
10.[[012]])
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
;;
|
||||
10.*)
|
||||
allow_undefined_flag='-undefined dynamic_lookup'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# Disable shared library build on OS-X older than 10.3.
|
||||
case $host_os in
|
||||
darwin[1-6]*)
|
||||
can_build_shared=no
|
||||
;;
|
||||
darwin7*)
|
||||
can_build_shared=yes
|
||||
;;
|
||||
esac
|
||||
output_verbose_link_cmd='echo'
|
||||
archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
|
||||
module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||
# Don't fix this by using the ld -exported_symbols_list flag,
|
||||
# it doesn't exist in older darwin ld's
|
||||
archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
hardcode_direct=no
|
||||
hardcode_automatic=yes
|
||||
hardcode_shlibpath_var=unsupported
|
||||
whole_archive_flag_spec='-all_load $convenience'
|
||||
link_all_deplibs=yes
|
||||
;;
|
||||
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
|
||||
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
|
||||
# support. Future versions do this automatically, but an explicit c++rt0.o
|
||||
@ -670,7 +703,7 @@ else
|
||||
darwin* | rhapsody*)
|
||||
# PIC is the default on this platform
|
||||
# Common symbols not allowed in MH_DYLIB files
|
||||
lt_cv_prog_cc_pic='-fno-common'
|
||||
ac_cv_prog_cc_pic='-fno-common'
|
||||
;;
|
||||
*djgpp*)
|
||||
# DJGPP does not support shared libraries at all
|
||||
|
47
ltcf-cxx.sh
47
ltcf-cxx.sh
@ -223,6 +223,51 @@ case $host_os in
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
darwin* | rhapsody*)
|
||||
case "$host_os" in
|
||||
rhapsody* | darwin1.[[012]])
|
||||
allow_undefined_flag='-undefined suppress'
|
||||
;;
|
||||
*) # Darwin 1.3 on
|
||||
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
else
|
||||
case ${MACOSX_DEPLOYMENT_TARGET} in
|
||||
10.[[012]])
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
;;
|
||||
10.*)
|
||||
allow_undefined_flag='-undefined dynamic_lookup'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# Disable shared library build on OS-X older than 10.3.
|
||||
case $host_os in
|
||||
darwin[1-6]*)
|
||||
can_build_shared=no
|
||||
;;
|
||||
darwin7*)
|
||||
can_build_shared=yes
|
||||
;;
|
||||
esac
|
||||
output_verbose_link_cmd='echo'
|
||||
archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
||||
module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||
|
||||
# Don't fix this by using the ld -exported_symbols_list flag,
|
||||
# it doesn't exist in older darwin ld's
|
||||
archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
hardcode_direct=no
|
||||
hardcode_automatic=yes
|
||||
hardcode_shlibpath_var=unsupported
|
||||
whole_archive_flag_spec='-all_load $convenience'
|
||||
link_all_deplibs=yes
|
||||
;;
|
||||
|
||||
dgux*)
|
||||
case $cc_basename in
|
||||
ec++)
|
||||
@ -712,7 +757,7 @@ if test "$with_gcc" = yes; then
|
||||
darwin* | rhapsody*)
|
||||
# PIC is the default on this platform
|
||||
# Common symbols not allowed in MH_DYLIB files
|
||||
lt_cv_prog_cc_pic='-fno-common'
|
||||
ac_cv_prog_cc_pic='-fno-common'
|
||||
;;
|
||||
*djgpp*)
|
||||
# DJGPP does not support shared libraries at all
|
||||
|
49
ltcf-gcj.sh
49
ltcf-gcj.sh
@ -378,6 +378,49 @@ else
|
||||
fix_srcfile_path='`cygpath -w "$srcfile"`'
|
||||
;;
|
||||
|
||||
darwin* | rhapsody*)
|
||||
case "$host_os" in
|
||||
rhapsody* | darwin1.[[012]])
|
||||
allow_undefined_flag='-undefined suppress'
|
||||
;;
|
||||
*) # Darwin 1.3 on
|
||||
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
else
|
||||
case ${MACOSX_DEPLOYMENT_TARGET} in
|
||||
10.[[012]])
|
||||
allow_undefined_flag='-flat_namespace -undefined suppress'
|
||||
;;
|
||||
10.*)
|
||||
allow_undefined_flag='-undefined dynamic_lookup'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# Disable shared library build on OS-X older than 10.3.
|
||||
case $host_os in
|
||||
darwin[1-6]*)
|
||||
can_build_shared=no
|
||||
;;
|
||||
darwin7*)
|
||||
can_build_shared=yes
|
||||
;;
|
||||
esac
|
||||
output_verbose_link_cmd='echo'
|
||||
archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
||||
module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
|
||||
archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||
hardcode_direct=no
|
||||
hardcode_automatic=yes
|
||||
hardcode_shlibpath_var=unsupported
|
||||
whole_archive_flag_spec='-all_load $convenience'
|
||||
link_all_deplibs=yes
|
||||
;;
|
||||
|
||||
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
@ -628,6 +671,12 @@ fi
|
||||
# built for inclusion in a dll (and should export symbols for example).
|
||||
ac_cv_prog_cc_pic='-DDLL_EXPORT'
|
||||
;;
|
||||
|
||||
darwin* | rhapsody*)
|
||||
# PIC is the default on this platform
|
||||
# Common symbols not allowed in MH_DYLIB files
|
||||
ac_cv_prog_cc_pic='-fno-common'
|
||||
;;
|
||||
amigaos*)
|
||||
# FIXME: we need at least 68020 code to build shared libraries, but
|
||||
# adding the `-m68020' flag to GCC prevents building anything better,
|
||||
|
23
ltconfig
23
ltconfig
@ -965,6 +965,7 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
|
||||
library_names_spec=
|
||||
libname_spec='lib$name'
|
||||
soname_spec=
|
||||
shrext=".so"
|
||||
postinstall_cmds=
|
||||
postuninstall_cmds=
|
||||
finish_cmds=
|
||||
@ -1102,13 +1103,28 @@ cygwin* | mingw* | pw32*)
|
||||
|
||||
darwin* | rhapsody*)
|
||||
dynamic_linker="$host_os dyld"
|
||||
lt_cv_dlopen="dyld"
|
||||
lt_cv_dlopen_libs=
|
||||
lt_cv_dlopen_self=yes
|
||||
version_type=darwin
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
library_names_spec='${libname}${release}${versuffix}.`test .$module = .yes && echo so || echo dylib` ${libname}${release}${major}.$`test .$module = .yes && echo so || echo dylib` ${libname}.`test .$module = .yes && echo so || echo dylib`'
|
||||
soname_spec='${libname}${release}${major}.`test .$module = .yes && echo so || echo dylib`'
|
||||
# Disable shared library build on OS-X older than 10.3.
|
||||
case $host_os in
|
||||
darwin[1-6]*)
|
||||
can_build_shared=no
|
||||
;;
|
||||
darwin7*)
|
||||
can_build_shared=yes
|
||||
;;
|
||||
esac
|
||||
library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
|
||||
soname_spec='${libname}${release}${major}$shared_ext'
|
||||
shlibpath_overrides_runpath=yes
|
||||
shlibpath_var=DYLD_LIBRARY_PATH
|
||||
shrext='$(test .$module = .yes && echo .so || echo .dylib)'
|
||||
sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
|
||||
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
|
||||
;;
|
||||
|
||||
freebsd1*)
|
||||
@ -2325,6 +2341,9 @@ objext="$objext"
|
||||
# Old archive suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally ".so").
|
||||
shrext='$shrext'
|
||||
|
||||
# Executable file suffix (normally "").
|
||||
exeext="$exeext"
|
||||
|
||||
|
59
ltmain.sh
59
ltmain.sh
@ -1111,6 +1111,19 @@ EOF
|
||||
finalize_command="$finalize_command $wl$qarg"
|
||||
continue
|
||||
;;
|
||||
framework)
|
||||
case $host in
|
||||
*-*-darwin*)
|
||||
case "$deplibs " in
|
||||
*" $qarg.framework "*) ;;
|
||||
*) deplibs="$deplibs $qarg.framework" # this is fixed later
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
prev=
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
eval "$prev=\"\$arg\""
|
||||
prev=
|
||||
@ -1363,6 +1376,10 @@ EOF
|
||||
prev=xlinker
|
||||
continue
|
||||
;;
|
||||
-framework)
|
||||
prev=framework
|
||||
continue
|
||||
;;
|
||||
|
||||
# Some other compiler flag.
|
||||
-* | +*)
|
||||
@ -1841,6 +1858,13 @@ EOF
|
||||
*) . ./$lib ;;
|
||||
esac
|
||||
|
||||
case $host in
|
||||
*-*-darwin*)
|
||||
# Convert "-framework foo" to "foo.framework" in dependency_libs
|
||||
test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.framework/g'`
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "$linkmode,$pass" = "lib,link" ||
|
||||
test "$linkmode,$pass" = "prog,scan" ||
|
||||
{ test $linkmode = oldlib && test $linkmode = obj; }; then
|
||||
@ -2446,6 +2470,7 @@ EOF
|
||||
case $outputname in
|
||||
lib*)
|
||||
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
|
||||
eval shared_ext=\"$shrext\"
|
||||
eval libname=\"$libname_spec\"
|
||||
;;
|
||||
*)
|
||||
@ -2457,6 +2482,7 @@ EOF
|
||||
if test "$need_lib_prefix" != no; then
|
||||
# Add the "lib" prefix for modules if required
|
||||
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
|
||||
eval shared_ext=\"$shrext\"
|
||||
eval libname=\"$libname_spec\"
|
||||
else
|
||||
libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
|
||||
@ -2644,7 +2670,16 @@ EOF
|
||||
# Clear the version info if we defaulted, and they specified a release.
|
||||
if test -z "$vinfo" && test -n "$release"; then
|
||||
major=
|
||||
verstring="0.0"
|
||||
case $version_type in
|
||||
darwin)
|
||||
# we can't check for "0.0" in archive_cmds due to quoting
|
||||
# problems, so we reset it completely
|
||||
verstring=
|
||||
;;
|
||||
*)
|
||||
verstring="0.0"
|
||||
;;
|
||||
esac
|
||||
if test "$need_version" = no; then
|
||||
versuffix=
|
||||
else
|
||||
@ -3020,6 +3055,14 @@ EOF
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Time to change all our "foo.framework" stuff back to "-framework foo"
|
||||
case $host in
|
||||
*-*-darwin*)
|
||||
newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
|
||||
dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
|
||||
;;
|
||||
esac
|
||||
# Done checking deplibs!
|
||||
# Done checking deplibs!
|
||||
deplibs=$newdeplibs
|
||||
fi
|
||||
@ -3088,6 +3131,7 @@ EOF
|
||||
|
||||
# Get the real and link names of the library.
|
||||
eval library_names=\"$library_names_spec\"
|
||||
eval shared_ext=\"$shrext\"
|
||||
set dummy $library_names
|
||||
realname="$2"
|
||||
shift; shift
|
||||
@ -3533,6 +3577,19 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
case $host in
|
||||
*-*-darwin*)
|
||||
# Don't allow lazy linking, it breaks C++ global constructors
|
||||
if test "$tagname" = CXX ; then
|
||||
compile_command="$compile_command ${wl}-bind_at_load"
|
||||
finalize_command="$finalize_command ${wl}-bind_at_load"
|
||||
fi
|
||||
# Time to change all our "foo.framework" stuff back to "-framework foo"
|
||||
compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
|
||||
finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
|
||||
;;
|
||||
esac
|
||||
|
||||
compile_command="$compile_command $compile_deplibs"
|
||||
finalize_command="$finalize_command $finalize_deplibs"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user