]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 29 Aug 2007 20:54:53 +0000 (20:54 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 29 Aug 2007 20:54:53 +0000 (20:54 +0000)
(_LT_LANG_CXX_CONFIG) [ linux ]: Add support for IBM XL 8.0
C/C++ (xlc*, xlC*) and IBM XL Fortran 10.1 (xlf*) on GNU/Linux,
tested on ppc, pending a $shlibpath_var related fix.
(_LT_SYS_HIDDEN_LIBDEPS): Double-quote $output_verbose_link_cmd
properly during evaluation, obsoleting $no_glob_subst mangling.
* NEWS: Update.

ChangeLog
NEWS
libltdl/m4/libtool.m4

index 54a126abcbf3a91327e3fbb1e57d75507de4c309..2a85f67ac9b11e0be33d557eaf1b4bb9db6c6c35 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-08-29  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
+       (_LT_LANG_CXX_CONFIG) [ linux ]: Add support for IBM XL 8.0
+       C/C++ (xlc*, xlC*) and IBM XL Fortran 10.1 (xlf*) on GNU/Linux,
+       tested on ppc, pending a $shlibpath_var related fix.
+       (_LT_SYS_HIDDEN_LIBDEPS): Double-quote $output_verbose_link_cmd
+       properly during evaluation, obsoleting $no_glob_subst mangling.
+       * NEWS: Update.
+
 2007-08-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * libltdl/m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]
diff --git a/NEWS b/NEWS
index 909100cc2b923bc7a37c6d80a77a6906d58dc90e..efb79400b3aed9702c40f48450e3f9d784318963 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -73,8 +73,8 @@ New in 2.1a: 2007-??-??; CVS version 2.1a, Libtool team:
   - Improved support for UnixWare.
   - Initial support for RDOS.
   - Initial Support for FC (modern Fortran).
-  - Support for Portland Group compiler and the Sun compiler suite on
-    GNU/Linux.
+  - Support for Portland Group compiler, the Sun compiler suite on GNU/Linux,
+    and initial support for the IBM compiler suite on GNU/Linux/ppc.
   - Support for linux-dietlibc (`diet' as well as `diet-dyn', separately).
   - Building libltdl with a C++ compiler has been undusted.
   - On (AIX?,) HP-UX, and OpenBSD, hardcoding has been changed to prefer
index bc1c80376b4f320c64e9be921a1e95a8291a36a8..a6f473061cd78bac7ae1cd640b96b568cd49d5bc 100644 (file)
@@ -3578,6 +3578,12 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)=
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
            ;;
+         xlC*)
+           # IBM XL 8.0 on PPC
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+           ;;
          *)
            case `$CC -V 2>&1 | sed 5q` in
            *Sun\ C*)
@@ -3845,6 +3851,12 @@ m4_if([$1], [CXX], [
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
+      xl*)
+       # IBM XL C 8.0/Fortran 10.1 on PPC
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+       ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)
@@ -4196,6 +4208,7 @@ _LT_EOF
         && test "$tmp_diet" = no
       then
        tmp_addflag=
+       tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
          _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
@@ -4210,6 +4223,9 @@ _LT_EOF
          tmp_addflag=' -i_dynamic -nofor_main' ;;
        ifc* | ifort*)                  # Intel Fortran compiler
          tmp_addflag=' -nofor_main' ;;
+       xl[[cC]]*)                      # IBM XL C 8.0 on PPC (deal with xlf below)
+         tmp_sharedflag='-qmkshrobj'
+         tmp_addflag= ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
@@ -4218,8 +4234,6 @@ _LT_EOF
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
          tmp_sharedflag='-G' ;;
-       *)
-         tmp_sharedflag='-shared' ;;
        esac
        _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
@@ -4229,6 +4243,22 @@ _LT_EOF
            echo "local: *; };" >> $output_objdir/$libname.ver~
            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
         fi
+
+       case $cc_basename in
+       xlf*)
+         # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         if test "x$supports_anon_versioning" = xyes; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+             echo "local: *; };" >> $output_objdir/$libname.ver~
+             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+         fi
+         ;;
+       esac
       else
         _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -5869,6 +5899,18 @@ if test "$_lt_caught_CXX_error" != yes; then
            # dependencies.
            output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
            ;;
+         xl*)
+           # IBM XL 8.0 on PPC, with GNU ld
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           if test "x$supports_anon_versioning" = xyes; then
+             _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+               echo "local: *; };" >> $output_objdir/$libname.ver~
+               $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+           fi
+           ;;
          *)
            case `$CC -V 2>&1 | sed 5q` in
            *Sun\ C*)
@@ -6317,12 +6359,7 @@ if AC_TRY_EVAL(ac_compile); then
   # the conftest object file.
   pre_test_object_deps_done=no
 
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd=`$ECHO "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
-  for p in `eval $output_verbose_link_cmd`; do
+  for p in `eval "$output_verbose_link_cmd"`; do
     case $p in
 
     -L* | -R* | -l*)