Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ltcf-cxx.sh')
-rw-r--r--ltcf-cxx.sh249
1 files changed, 161 insertions, 88 deletions
diff --git a/ltcf-cxx.sh b/ltcf-cxx.sh
index ab9e62721..d7cdf6909 100644
--- a/ltcf-cxx.sh
+++ b/ltcf-cxx.sh
@@ -114,50 +114,110 @@ else
wlarc=
fi
-# In general, the C++ compiler should always link C++ objects.
-case $target in
-*aix3* | *aix4*)
- # AIX just has to be different, doesn't it? :-\
- LD=makeC++SharedLib_r
- LDFLAGS="$LDFLAGS -p 0"
- ;;
-*)
- LD="$CC"
- LDFLAGS="$LDFLAGS"
- ;;
-esac
-
-
# PORTME: fill in a description of your system's C++ link characteristics
-case "$host_os" in
+case $host_os in
aix3*)
# FIXME: insert proper C++ library support
ld_shlibs=no
-
- # We don't want to build shared libraries on unknown CPU types.
- case $host_cpu in
- powerpc | rs6000) ;;
- *) ld_shlibs=no ;;
- esac
;;
- aix4*)
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- # -bexpall does not export symbols beginning with underscore (_)
+ aix4* | aix5*)
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+ if test "$with_gcc" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # Test if we are trying to use run time linking, or normal AIX style linking.
+ # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
+ aix_use_runtimelinking=no
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
always_export_symbols=yes
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec=' '
- build_libtool_need_lc=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ allow_undefined_flag=' -Wl,-G'
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}-brtl \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags, -berok will
+ # link without error, but may produce a broken library.
+ no_undefined_flag='${wl}-bnoerok'
+ allow_undefined_flag='${wl}-berok"
+ # -bexpall does not export symbols beginning with underscore (_)
+ always_export_symbols=yes
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec=' '
+ build_libtool_need_lc=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
;;
chorus*)
- case "$cc_basename" in
+ case $cc_basename in
*)
# FIXME: insert proper C++ library support
ld_shlibs=no
;;
- esac
+ esac
;;
dgux*)
- case "$cc_basename" in
+ case $cc_basename in
ec++)
# FIXME: insert proper C++ library support
ld_shlibs=no
@@ -179,23 +239,23 @@ case "$host_os" in
ld_shlibs=no
;;
hpux*)
- case "$cc_basename" in
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+
+ case $cc_basename in
CC)
# FIXME: insert proper C++ library support
ld_shlibs=no
;;
aCC)
- case "$host_os" in
+ case $host_os in
hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;;
esac
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_minus_L=yes # Not in the search PATH, but as the default
- # location of the library.
- export_dynamic_flag_spec='${wl}-E'
-
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
@@ -207,13 +267,20 @@ case "$host_os" in
output_verbose_link_cmds='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
;;
*)
- # FIXME: insert proper C++ library support
- ld_shlibs=no
+ if test $with_gcc = yes; then
+ case "$host_os" in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;;
+ esac
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs=no
+ fi
;;
esac
;;
irix5* | irix6*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# SGI C++
archive_cmds='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
@@ -229,7 +296,7 @@ case "$host_os" in
if test "$with_gnu_ld" = no; then
archive_cmds='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
else
- archive_cmds='$LD -shared $predep_objects $libobjs $deplibs $postdep_objects $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
+ archive_cmds='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
fi
fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -239,7 +306,7 @@ case "$host_os" in
esac
;;
linux*)
- case "$cc_basename" in
+ case $cc_basename in
KCC)
# Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -296,7 +363,7 @@ case "$host_os" in
ld_shlibs=no
;;
mvs*)
- case "$cc_basename" in
+ case $cc_basename in
cxx)
# FIXME: insert proper C++ library support
ld_shlibs=no
@@ -305,7 +372,7 @@ case "$host_os" in
# FIXME: insert proper C++ library support
ld_shlibs=no
;;
- esac
+ esac
;;
netbsd*)
# NetBSD uses g++ - do we need to do anything?
@@ -324,7 +391,7 @@ case "$host_os" in
output_verbose_link_cmds='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"'
fi
- case "$cc_basename" in
+ case $cc_basename in
KCC)
# Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -383,7 +450,7 @@ case "$host_os" in
output_verbose_link_cmds='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | egrep "\-L"'
fi
- case "$cc_basename" in
+ case $cc_basename in
KCC)
# Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -405,10 +472,10 @@ case "$host_os" in
ld_shlibs=no
;;
cxx)
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+ hardcode_libdir_flag_spec='-rpath $libdir'
hardcode_libdir_separator=:
# Commands to make compiler produce verbose output that lists
@@ -432,7 +499,7 @@ case "$host_os" in
ld_shlibs=no
;;
sco*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# FIXME: insert proper C++ library support
ld_shlibs=no
@@ -444,7 +511,7 @@ case "$host_os" in
esac
;;
sunos4*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# Sun C++ 4.x
# FIXME: insert proper C++ library support
@@ -462,7 +529,7 @@ case "$host_os" in
esac
;;
solaris*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# Sun C++ 4.2, 5.x and Centerline C++
no_undefined_flag=' -ztext'
@@ -472,7 +539,7 @@ case "$host_os" in
hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no
- case "$host_os" in
+ case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
# The C++ compiler is used as linker so we must use $wl
@@ -511,9 +578,9 @@ case "$host_os" in
# GNU C++ compiler with Solaris linker
if test "$with_gcc" = yes && test "$with_gnu_ld" = no; then
if $CC --version | egrep -v '^2\.7' > /dev/null; then
- archive_cmds='$LD -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
+ archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
@@ -522,9 +589,9 @@ case "$host_os" in
else
# g++ 2.7 appears to require `-G' NOT `-shared' on this
# platform.
- archive_cmds='$LD -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
+ archive_cmds='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
@@ -535,10 +602,10 @@ case "$host_os" in
hardcode_libdir_flag_spec='${wl}-R $wl$libdir'
fi
;;
- esac
+ esac
;;
tandem*)
- case "$cc_basename" in
+ case $cc_basename in
NCC)
# NonStop-UX NCC 3.20
# FIXME: insert proper C++ library support
@@ -548,7 +615,7 @@ case "$host_os" in
# FIXME: insert proper C++ library support
ld_shlibs=no
;;
- esac
+ esac
;;
unixware*)
# FIXME: insert proper C++ library support
@@ -583,18 +650,18 @@ if test "$with_gcc" = yes; then
ac_cv_prog_cc_wl='-Wl,'
ac_cv_prog_cc_static='-static'
- case "$host_os" in
+ case $host_os in
beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
aix*)
- # Below there is a dirty hack to force normal static linking with -ldl
- # The problem is because libdl dynamically linked with both libc and
- # libC (AIX C++ library), which obviously doesn't included in libraries
- # list by gcc. This cause undefined symbols with -static flags.
- # This hack allows C programs to be linked with "-static -ldl", but
- # we not sure about C++ programs.
- ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC"
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
;;
cygwin* | mingw* | os2*)
# This hack is so that the source file can tell whether it is being
@@ -617,20 +684,26 @@ if test "$with_gcc" = yes; then
;;
esac
else
- case "$host_os" in
- aix4*)
+ case $host_os in
+ aix4* | aix5*)
# All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
;;
chorus*)
- case "$cc_basename" in
+ case $cc_basename in
cxch68)
# Green Hills C++ Compiler
# ac_cv_prog_cc_static="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
;;
- esac
+ esac
;;
dgux*)
- case "$cc_basename" in
+ case $cc_basename in
ec++)
ac_cv_prog_cc_pic='-KPIC'
;;
@@ -646,7 +719,7 @@ else
# FreeBSD uses GNU C++
;;
hpux9* | hpux10* | hpux11*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
ac_cv_prog_cc_wl='-Wl,'
ac_cv_prog_cc_static="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
@@ -662,7 +735,7 @@ else
esac
;;
irix5* | irix6*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
ac_cv_prog_cc_wl='-Wl,'
ac_cv_prog_cc_static='-non_shared'
@@ -673,7 +746,7 @@ else
esac
;;
linux*)
- case "$cc_basename" in
+ case $cc_basename in
KCC)
# KAI C++ Compiler
ac_cv_prog_cc_wl='--backend -Wl,'
@@ -695,18 +768,18 @@ else
m88k*)
;;
mvs*)
- case "$cc_basename" in
+ case $cc_basename in
cxx)
ac_cv_prog_cc_pic='-W c,exportall'
;;
*)
;;
- esac
+ esac
;;
netbsd*)
;;
osf3* | osf4* | osf5*)
- case "$cc_basename" in
+ case $cc_basename in
KCC)
ac_cv_prog_cc_wl='--backend -Wl,'
;;
@@ -729,7 +802,7 @@ else
psos*)
;;
sco*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
ac_cv_prog_cc_pic='-fPIC'
;;
@@ -738,7 +811,7 @@ else
esac
;;
solaris*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# Sun C++ 4.2, 5.x and Centerline C++
ac_cv_prog_cc_pic='-KPIC'
@@ -751,10 +824,10 @@ else
;;
*)
;;
- esac
+ esac
;;
sunos4*)
- case "$cc_basename" in
+ case $cc_basename in
CC)
# Sun C++ 4.x
ac_cv_prog_cc_pic='-pic'
@@ -769,14 +842,14 @@ else
esac
;;
tandem*)
- case "$cc_basename" in
+ case $cc_basename in
NCC)
# NonStop-UX NCC 3.20
ac_cv_prog_cc_pic='-KPIC'
;;
*)
;;
- esac
+ esac
;;
unixware*)
;;