Change ELT-patches for AIX to use import files as soname-emulator (bug#213277).
authorMichael Haubenwallner <haubi@gentoo.org>
Thu, 20 May 2010 08:22:16 +0000 (08:22 +0000)
committerMichael Haubenwallner <haubi@gentoo.org>
Thu, 20 May 2010 08:22:16 +0000 (08:22 +0000)
This requires switching libtool to force -no-undefined behaviour on AIX.
Additionally, get_libname() now does return .so and versions like Linux.

44 files changed:
eclass/ELT-patches/aix-noundef/1.4d [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4.0d-Ggxx [deleted file]
eclass/ELT-patches/aixrtl/1.4.0d-Gxlc [deleted file]
eclass/ELT-patches/aixrtl/1.4.0d-Gxlcxx [deleted file]
eclass/ELT-patches/aixrtl/1.4.0d-ifc [deleted file]
eclass/ELT-patches/aixrtl/1.4.0d-ifcxx [deleted file]
eclass/ELT-patches/aixrtl/1.4.3-casecxx [deleted file]
eclass/ELT-patches/aixrtl/1.4.3-needversion [deleted file]
eclass/ELT-patches/aixrtl/1.4d-cmds-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-cmds-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-noundef-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-noundef-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-postinst [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-use-rtl-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-use-rtl-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-with-G-gcc [moved from eclass/ELT-patches/aixrtl/1.4.0d-Ggcc with 50% similarity]
eclass/ELT-patches/aixrtl/1.4d-with-G-gxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-with-G-xlc [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.4d-with-G-xlcxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5-postinst [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.00-casertl [deleted file]
eclass/ELT-patches/aixrtl/1.5.12-Ggcc [deleted file]
eclass/ELT-patches/aixrtl/1.5.12-Ggxx [deleted file]
eclass/ELT-patches/aixrtl/1.5.12-with-G-gcc [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.12-with-G-gxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.22-Ggcc [deleted file]
eclass/ELT-patches/aixrtl/1.5.22-Ggxx [deleted file]
eclass/ELT-patches/aixrtl/1.5.22-Gxlc [deleted file]
eclass/ELT-patches/aixrtl/1.5.22-cmds-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.22-cmds-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.22-with-G-xlc [new file with mode: 0644]
eclass/ELT-patches/aixrtl/1.5.26-needversion [deleted file]
eclass/ELT-patches/aixrtl/2.1b-Ggxx [deleted file]
eclass/ELT-patches/aixrtl/2.1b-Gxlc [deleted file]
eclass/ELT-patches/aixrtl/2.1b-casecxx [deleted file]
eclass/ELT-patches/aixrtl/2.1b-cmds-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-cmds-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-noundef-c [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-noundef-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-use-rtl-cxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-with-G-gxx [new file with mode: 0644]
eclass/ELT-patches/aixrtl/2.1b-with-G-xlcxx [new file with mode: 0644]
eclass/libtool.eclass
eclass/multilib.eclass

diff --git a/eclass/ELT-patches/aix-noundef/1.4d b/eclass/ELT-patches/aix-noundef/1.4d
new file mode 100644 (file)
index 0000000..b2b8d09
--- /dev/null
@@ -0,0 +1,12 @@
+--- ltmain.sh.orig     2009-12-06 22:35:17 +0100
++++ ltmain.sh  2009-12-06 22:35:44 +0100
+@@ -1111,6 +1111,9 @@
+       # that all symbols are satisfied, otherwise we get a static library.
+       allow_undefined=yes
+       ;;
++    *-aix*)
++      allow_undefined=no
++      ;;
+     *)
+       allow_undefined=yes
+       ;;
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-Ggxx b/eclass/ELT-patches/aixrtl/1.4.0d-Ggxx
deleted file mode 100644 (file)
index 4a54cf3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- configure
-+++ configure
-@@ -4657,6 +4657,7 @@
-       fi
-      esac
-      shared_flag='-shared'
-+      shared_flag="$shared_flag "'${wl}-G'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-Gxlc b/eclass/ELT-patches/aixrtl/1.4.0d-Gxlc
deleted file mode 100644 (file)
index 979d52a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -4664,7 +4664,7 @@
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-Gxlcxx b/eclass/ELT-patches/aixrtl/1.4.0d-Gxlcxx
deleted file mode 100644 (file)
index 3556ea9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -2494,7 +2494,7 @@
-       # chokes on -Wl,-G. The following line is correct:
-       shared_flag='-G'
-       else
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-         shared_flag='${wl}-G'
-       else
-         shared_flag='${wl}-bM:SRE'
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-ifc b/eclass/ELT-patches/aixrtl/1.4.0d-ifc
deleted file mode 100644 (file)
index f2a687b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -2444,7 +2444,7 @@
-       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-       for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
--          aix_use_runtimelinking=yes
-+#         aix_use_runtimelinking=yes
-           break
-         fi
-       done
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-ifcxx b/eclass/ELT-patches/aixrtl/1.4.0d-ifcxx
deleted file mode 100644 (file)
index 75caac4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -4614,7 +4614,7 @@
-       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
--          aix_use_runtimelinking=yes
-+#         aix_use_runtimelinking=yes
-           break
-         fi
-         done
diff --git a/eclass/ELT-patches/aixrtl/1.4.3-casecxx b/eclass/ELT-patches/aixrtl/1.4.3-casecxx
deleted file mode 100644 (file)
index 23c786e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -1466,7 +1466,7 @@
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
--          aix_use_runtimelinking=yes
-+#         aix_use_runtimelinking=yes
-           break
-         ;;
-         esac
diff --git a/eclass/ELT-patches/aixrtl/1.4.3-needversion b/eclass/ELT-patches/aixrtl/1.4.3-needversion
deleted file mode 100644 (file)
index c5c3b8c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -1964,7 +1964,7 @@
- aix4* | aix5*)
-   version_type=linux
-   need_lib_prefix=no
--  need_version=no
-+  need_version=yes
-   hardcode_into_libs=yes
-   if test "$host_cpu" = ia64; then
-     # AIX 5 supports IA64
diff --git a/eclass/ELT-patches/aixrtl/1.4d-cmds-c b/eclass/ELT-patches/aixrtl/1.4d-cmds-c
new file mode 100644 (file)
index 0000000..ec1c8cd
--- /dev/null
@@ -0,0 +1,9 @@
+--- configure
++++ configure
+@@ -4678,5 +4688,5 @@
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+-      archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++      archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~$RM $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'linknames=\"\$''linknames \$''1\"'; shift; done"
+        else
+       if test "$host_cpu" = ia64; then
+         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/1.4d-cmds-cxx b/eclass/ELT-patches/aixrtl/1.4d-cmds-cxx
new file mode 100644 (file)
index 0000000..1eb99f9
--- /dev/null
@@ -0,0 +1,10 @@
+--- configure
++++ configure
+@@ -2508,6 +2508,6 @@
+       hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ 
+-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++      archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~$RM $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'linknames=\"\$''linknames \$''1\"'; shift; done"
+      else
+       if test "$host_cpu" = ia64; then
+       hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/1.4d-noundef-c b/eclass/ELT-patches/aixrtl/1.4d-noundef-c
new file mode 100644 (file)
index 0000000..e4fe86e
--- /dev/null
@@ -0,0 +1,9 @@
+--- configure
++++ configure
+@@ -4678,5 +4678,5 @@
+       if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+-      allow_undefined_flag='-berok'
++      allow_undefined_flag=unsupported
+        # Determine the default libpath from the value encoded in an empty executable.
diff --git a/eclass/ELT-patches/aixrtl/1.4d-noundef-cxx b/eclass/ELT-patches/aixrtl/1.4d-noundef-cxx
new file mode 100644 (file)
index 0000000..b997057
--- /dev/null
@@ -0,0 +1,9 @@
+--- configure
++++ configure
+@@ -2508,5 +2508,5 @@
+     if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+-      allow_undefined_flag_CXX='-berok'
++      allow_undefined_flag_CXX=unsupported
+       # Determine the default libpath from the value encoded in an empty executable.
diff --git a/eclass/ELT-patches/aixrtl/1.4d-postinst b/eclass/ELT-patches/aixrtl/1.4d-postinst
new file mode 100644 (file)
index 0000000..cb6de55
--- /dev/null
@@ -0,0 +1,15 @@
+--- configure
++++ configure
+@@ -1029,7 +1029,11 @@
+       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+       # instead of lib<name>.a to let people know that these are not
+       # typical AIX shared libraries.
+-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
++      library_names_spec='${libname}${release}${shared_ext}${versuffix}.a ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++      soname_spec='${libname}${release}${shared_ext}$major'
++      # we ship the shared object as part of the import archive,
++      # and unpack the shared object for standalone access.
++      postinstall_cmds='rm -f $destdir/$dlname~$AR x $destdir/$realname $destdir/$dlname'
+     else
+       # We preserve .a as extension for shared libraries through AIX4.2
+       # and later when we are not doing run time linking.
diff --git a/eclass/ELT-patches/aixrtl/1.4d-use-rtl-c b/eclass/ELT-patches/aixrtl/1.4d-use-rtl-c
new file mode 100644 (file)
index 0000000..9b2d227
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -4606,7 +4606,7 @@
+       else
+         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+       fi
+-      aix_use_runtimelinking=no
++      aix_use_runtimelinking=yes
+ 
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
diff --git a/eclass/ELT-patches/aixrtl/1.4d-use-rtl-cxx b/eclass/ELT-patches/aixrtl/1.4d-use-rtl-cxx
new file mode 100644 (file)
index 0000000..fb223cb
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -2436,7 +2436,7 @@
+       exp_sym_flag='-Bexport'
+       no_entry_flag=""
+     else
+-      aix_use_runtimelinking=no
++      aix_use_runtimelinking=yes
+ 
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
similarity index 50%
rename from eclass/ELT-patches/aixrtl/1.4.0d-Ggcc
rename to eclass/ELT-patches/aixrtl/1.4d-with-G-gcc
index 14cfa29c405381d4c8f9e5cc6625033f0797d78c..478685ad4dc9df7dd7aee967d8225fc8c3e1bd5b 100644 (file)
@@ -1,10 +1,12 @@
 --- configure
 +++ configure
-@@ -4657,6 +4657,7 @@
+@@ -4657,6 +4657,9 @@
          fi
        esac
        shared_flag='-shared'
-+      shared_flag="$shared_flag "'${wl}-G'
++      if test "$aix_use_runtimelinking" = yes; then
++        shared_flag="$shared_flag "'${wl}-G ${wl}-bernotok'
++      fi
        else
        # not using gcc
        if test "$host_cpu" = ia64; then
diff --git a/eclass/ELT-patches/aixrtl/1.4d-with-G-gxx b/eclass/ELT-patches/aixrtl/1.4d-with-G-gxx
new file mode 100644 (file)
index 0000000..8454384
--- /dev/null
@@ -0,0 +1,12 @@
+--- configure
++++ configure
+@@ -2487,6 +2487,9 @@
+       fi
+       esac
+       shared_flag='-shared'
++      if test "$aix_use_runtimelinking" = yes; then
++      shared_flag="$shared_flag "'${wl}-G ${wl}-bernotok'
++      fi
+     else
+       # not using gcc
+       if test "$host_cpu" = ia64; then
diff --git a/eclass/ELT-patches/aixrtl/1.4d-with-G-xlc b/eclass/ELT-patches/aixrtl/1.4d-with-G-xlc
new file mode 100644 (file)
index 0000000..cfcfb5b
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -4665,7 +4665,7 @@
+         shared_flag='-G'
+       else
+       if test "$aix_use_runtimelinking" = yes; then
+-          shared_flag='${wl}-G'
++          shared_flag='${wl}-G ${wl}-bernotok'
+         else
+           shared_flag='${wl}-bM:SRE'
+       fi
diff --git a/eclass/ELT-patches/aixrtl/1.4d-with-G-xlcxx b/eclass/ELT-patches/aixrtl/1.4d-with-G-xlcxx
new file mode 100644 (file)
index 0000000..8d09590
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -2495,7 +2495,7 @@
+       shared_flag='-G'
+       else
+       if test "$aix_use_runtimelinking" = yes; then
+-        shared_flag='${wl}-G'
++        shared_flag='${wl}-G ${wl}-bernotok'
+       else
+         shared_flag='${wl}-bM:SRE'
+       fi
diff --git a/eclass/ELT-patches/aixrtl/1.5-postinst b/eclass/ELT-patches/aixrtl/1.5-postinst
new file mode 100644 (file)
index 0000000..f621232
--- /dev/null
@@ -0,0 +1,15 @@
+--- configure
++++ configure
+@@ -1156,7 +1156,11 @@
+       # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+       # instead of lib<name>.a to let people know that these are not
+       # typical AIX shared libraries.
+-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++      library_names_spec='${libname}${release}${shared_ext}${versuffix}.a ${libname}${release}${shared_ext}$major $libname${shared_ext}'
++      soname_spec='${libname}${release}${shared_ext}$major'
++      # we ship the shared object as part of the import archive,
++      # and unpack the shared object for standalone access.
++      postinstall_cmds='rm -f $destdir/$dlname~$AR x $destdir/$realname $destdir/$dlname'
+     else
+       # We preserve .a as extension for shared libraries through AIX4.2
+       # and later when we are not doing run time linking.
diff --git a/eclass/ELT-patches/aixrtl/1.5.00-casertl b/eclass/ELT-patches/aixrtl/1.5.00-casertl
deleted file mode 100644 (file)
index d035ea8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.aixrtl   2007-04-03 11:08:36 +0200
-+++ configure  2007-04-03 11:13:25 +0200
-@@ -15941,7 +15941,7 @@
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
--          aix_use_runtimelinking=yes
-+#         aix_use_runtimelinking=yes
-           break
-           ;;
-         esac
diff --git a/eclass/ELT-patches/aixrtl/1.5.12-Ggcc b/eclass/ELT-patches/aixrtl/1.5.12-Ggcc
deleted file mode 100644 (file)
index f8954fa..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -5402,7 +5402,7 @@
-         fi
-       esac
-       shared_flag='-shared'
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
-       fi
-       else
diff --git a/eclass/ELT-patches/aixrtl/1.5.12-Ggxx b/eclass/ELT-patches/aixrtl/1.5.12-Ggxx
deleted file mode 100644 (file)
index 90017a3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -2796,7 +2796,7 @@
-       fi
-       esac
-       shared_flag='-shared'
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-       shared_flag="$shared_flag "'${wl}-G'
-       fi
-     else
diff --git a/eclass/ELT-patches/aixrtl/1.5.12-with-G-gcc b/eclass/ELT-patches/aixrtl/1.5.12-with-G-gcc
new file mode 100644 (file)
index 0000000..7fe024f
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5403,7 +5403,7 @@
+       esac
+       shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+-        shared_flag="$shared_flag "'${wl}-G'
++        shared_flag="$shared_flag "'${wl}-G ${wl}-bernotok'
+       fi
+       else
+       # not using gcc
diff --git a/eclass/ELT-patches/aixrtl/1.5.12-with-G-gxx b/eclass/ELT-patches/aixrtl/1.5.12-with-G-gxx
new file mode 100644 (file)
index 0000000..c9db9c1
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -2797,7 +2797,7 @@
+       esac
+       shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+-      shared_flag="$shared_flag "'${wl}-G'
++      shared_flag="$shared_flag "'${wl}-G ${wl}-bernotok'
+       fi
+     else
+       # not using gcc
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-Ggcc b/eclass/ELT-patches/aixrtl/1.5.22-Ggcc
deleted file mode 100644 (file)
index 798b3b7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -5726,7 +5726,7 @@
-         ;;
-       esac
-       shared_flag='-shared'
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
-       fi
-       else
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-Ggxx b/eclass/ELT-patches/aixrtl/1.5.22-Ggxx
deleted file mode 100644 (file)
index 10f3ccc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -2932,7 +2932,7 @@
-       ;;
-       esac
-       shared_flag='-shared'
--      if test "$aix_use_runtimelinking" = yes; then
-+      if true || test "$aix_use_runtimelinking" = yes; then
-       shared_flag="$shared_flag "'${wl}-G'
-       fi
-     else
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-Gxlc b/eclass/ELT-patches/aixrtl/1.5.22-Gxlc
deleted file mode 100644 (file)
index 73e88e8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -12902,7 +12902,7 @@
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
--        if test "$aix_use_runtimelinking" = yes; then
-+        if true || test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-cmds-c b/eclass/ELT-patches/aixrtl/1.5.22-cmds-c
new file mode 100644 (file)
index 0000000..e90153e
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure.orig     2009-12-04 17:59:31 +0100
++++ configure  2009-12-04 18:02:29 +0100
+@@ -8603,7 +8603,7 @@
+ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+-      archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++      archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~rm -f $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'linknames=\"\$''linknames \$''1\"'; shift; done"
+        else
+       if test "$host_cpu" = ia64; then
+         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-cmds-cxx b/eclass/ELT-patches/aixrtl/1.5.22-cmds-cxx
new file mode 100644 (file)
index 0000000..5154cd5
--- /dev/null
@@ -0,0 +1,10 @@
+--- configure
++++ configure
+@@ -2956,6 +2956,6 @@
+       hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ 
+-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++      archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~$RM $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'linknames=\"\$''linknames \$''1\"'; shift; done"
+      else
+       if test "$host_cpu" = ia64; then
+       hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/1.5.22-with-G-xlc b/eclass/ELT-patches/aixrtl/1.5.22-with-G-xlc
new file mode 100644 (file)
index 0000000..e1dcb9a
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5737,7 +5741,7 @@
+         shared_flag='-G'
+       else
+         if test "$aix_use_runtimelinking" = yes; then
+-          shared_flag='${wl}-G'
++          shared_flag='${wl}-G ${wl}-bernotok'
+         else
+           shared_flag='${wl}-bM:SRE'
+         fi
diff --git a/eclass/ELT-patches/aixrtl/1.5.26-needversion b/eclass/ELT-patches/aixrtl/1.5.26-needversion
deleted file mode 100644 (file)
index 8d6079f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -1371,7 +1371,7 @@
- aix[[4-9]]*)
-   version_type=linux
-   need_lib_prefix=no
--  need_version=no
-+  need_version=yes
-   hardcode_into_libs=yes
-   if test "$host_cpu" = ia64; then
-     # AIX 5 supports IA64
diff --git a/eclass/ELT-patches/aixrtl/2.1b-Ggxx b/eclass/ELT-patches/aixrtl/2.1b-Ggxx
deleted file mode 100644 (file)
index 9b5f025..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -5478,7 +5478,7 @@
-         fi
-           esac
-           shared_flag='-shared'
--        if test "$aix_use_runtimelinking" = yes; then
-+        if true || test "$aix_use_runtimelinking" = yes; then
-           shared_flag="$shared_flag "'${wl}-G'
-         fi
-         else
diff --git a/eclass/ELT-patches/aixrtl/2.1b-Gxlc b/eclass/ELT-patches/aixrtl/2.1b-Gxlc
deleted file mode 100644 (file)
index f513019..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -5488,7 +5488,7 @@
-         # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-           else
--          if test "$aix_use_runtimelinking" = yes; then
-+          if true || test "$aix_use_runtimelinking" = yes; then
-             shared_flag='${wl}-G'
-           else
-             shared_flag='${wl}-bM:SRE'
diff --git a/eclass/ELT-patches/aixrtl/2.1b-casecxx b/eclass/ELT-patches/aixrtl/2.1b-casecxx
deleted file mode 100644 (file)
index 198432a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure
-+++ configure
-@@ -5431,7 +5431,7 @@
-           for ld_flag in $LDFLAGS; do
-             case $ld_flag in
-             *-brtl*)
--              aix_use_runtimelinking=yes
-+#             aix_use_runtimelinking=yes
-               break
-               ;;
-             esac
diff --git a/eclass/ELT-patches/aixrtl/2.1b-cmds-c b/eclass/ELT-patches/aixrtl/2.1b-cmds-c
new file mode 100644 (file)
index 0000000..9ade6c8
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -4622,7 +4622,7 @@
+ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 
+         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~$RM $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'func_append linknames \" \$''1\"'; shift; done"
+       else
+       if test "$host_cpu" = ia64; then
+         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/2.1b-cmds-cxx b/eclass/ELT-patches/aixrtl/2.1b-cmds-cxx
new file mode 100644 (file)
index 0000000..b56facc
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5567,7 +5567,7 @@
+ 
+           hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ 
+-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
++          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"'~${STRIP} -e $output_objdir/$soname~{ echo "#!$soname"; cat $export_symbols; } > $output_objdir/$libname.imp~$RM $output_objdir/$realname; $AR $AR_FLAGS $output_objdir/$realname $output_objdir/$libname.imp $output_objdir/$soname~set dummy $linknames; linknames=; shift; '"while eval 'test \$''# -gt 0'; do eval 'test \"x\$''1\" = \"x\$soname\"' || eval 'func_append linknames \" \$''1\"'; shift; done"
+         else
+           if test "$host_cpu" = ia64; then
+           hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
diff --git a/eclass/ELT-patches/aixrtl/2.1b-noundef-c b/eclass/ELT-patches/aixrtl/2.1b-noundef-c
new file mode 100644 (file)
index 0000000..d29b123
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -4622,7 +4622,7 @@
+       if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+-      allow_undefined_flag='-berok'
++      allow_undefined_flag=unsupported
+         # Determine the default libpath from the value encoded in an
+         # empty executable.
+         cat >conftest.$ac_ext <<_ACEOF
diff --git a/eclass/ELT-patches/aixrtl/2.1b-noundef-cxx b/eclass/ELT-patches/aixrtl/2.1b-noundef-cxx
new file mode 100644 (file)
index 0000000..d7863da
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5567,7 +5567,7 @@
+         if test "$aix_use_runtimelinking" = yes; then
+           # Warning - without using the other runtime loading flags (-brtl),
+           # -berok will link without error, but may produce a broken library.
+-          allow_undefined_flag_CXX='-berok'
++          allow_undefined_flag_CXX=unsupported
+           # Determine the default libpath from the value encoded in an empty
+           # executable.
+           cat >conftest.$ac_ext <<_ACEOF
diff --git a/eclass/ELT-patches/aixrtl/2.1b-use-rtl-cxx b/eclass/ELT-patches/aixrtl/2.1b-use-rtl-cxx
new file mode 100644 (file)
index 0000000..e73aecf
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5488,7 +5488,7 @@
+           exp_sym_flag='-Bexport'
+           no_entry_flag=""
+         else
+-          aix_use_runtimelinking=no
++          aix_use_runtimelinking=yes
+ 
+           # Test if we are trying to use run time linking or normal
+           # AIX style linking. If -brtl is somewhere in LDFLAGS, we
diff --git a/eclass/ELT-patches/aixrtl/2.1b-with-G-gxx b/eclass/ELT-patches/aixrtl/2.1b-with-G-gxx
new file mode 100644 (file)
index 0000000..04190aa
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5479,7 +5479,7 @@
+           esac
+           shared_flag='-shared'
+         if test "$aix_use_runtimelinking" = yes; then
+-          shared_flag="$shared_flag "'${wl}-G'
++          shared_flag="$shared_flag "'${wl}-G ${wl}-bernotok'
+         fi
+         else
+           # not using gcc
diff --git a/eclass/ELT-patches/aixrtl/2.1b-with-G-xlcxx b/eclass/ELT-patches/aixrtl/2.1b-with-G-xlcxx
new file mode 100644 (file)
index 0000000..8fba132
--- /dev/null
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -5554,7 +5554,7 @@
+         shared_flag='-G'
+           else
+           if test "$aix_use_runtimelinking" = yes; then
+-            shared_flag='${wl}-G'
++            shared_flag='${wl}-G ${wl}-bernotok'
+           else
+             shared_flag='${wl}-bM:SRE'
+           fi
index def0f2e840d041bb7c75c195f01b12fca6461e66..ca65070406ff5c90b670a7a566fd6a6e979edd3b 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.88 2010/05/11 04:45:48 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.89 2010/05/20 08:22:15 haubi Exp $
 #
 # Maintainer: base-system@gentoo.org
 #
@@ -170,8 +170,8 @@ elibtoolize() {
                elt_patches="${elt_patches} uclibc-conf uclibc-ltconf"
 
        case "${CHOST}" in
-               *-aix*)
-                       elt_patches="${elt_patches} hardcode aixrtl"
+               *-aix*) # see bug #213277
+                       elt_patches="${elt_patches} hardcode aixrtl aix-noundef"
                ;;
                *-darwin*)
                        elt_patches="${elt_patches} darwin-ltconf darwin-ltmain darwin-conf"
index 39b30fcd4061974ddd71c5eda597d659fd81ef9d..768a3beaa32c89849bc22ef8a110c73f5ea80c05 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2008 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.77 2009/10/08 20:10:56 grobian Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.78 2010/05/20 08:22:15 haubi Exp $
 
 # @ECLASS: multilib.eclass
 # @MAINTAINER:
@@ -532,7 +532,6 @@ get_libname() {
        case ${CHOST} in
                *-cygwin|mingw*|*-mingw*) libname="dll";;
                *-darwin*)                libname="dylib";;
-               *-aix*)                   libname="a";;
                *-mint*)                  libname="irrelevant";;
                hppa*-hpux*)              libname="sl";;
                *)                        libname="so";;
@@ -544,7 +543,6 @@ get_libname() {
                for ver in "$@" ; do
                        case ${CHOST} in
                                *-darwin*) echo ".${ver}.${libname}";;
-                               *-aix*)    echo ".${libname}";;
                                *-mint*)   echo ".${libname}";;
                                *)         echo ".${libname}.${ver}";;
                        esac