summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMichael Haubenwallner <haubi@gentoo.org>2010-05-20 08:22:16 +0000
committerMichael Haubenwallner <haubi@gentoo.org>2010-05-20 08:22:16 +0000
commit551f2edeb8be239942d1eb43d8474e577ceebfea (patch)
tree2a9c7d080e77c4e8dba4a2f721802d7a0e88448c /eclass
parentx86 stable wrt bug #316539 (diff)
downloadgentoo-2-551f2edeb8be239942d1eb43d8474e577ceebfea.tar.gz
gentoo-2-551f2edeb8be239942d1eb43d8474e577ceebfea.tar.bz2
gentoo-2-551f2edeb8be239942d1eb43d8474e577ceebfea.zip
Change ELT-patches for AIX to use import files as soname-emulator (bug#213277).
This requires switching libtool to force -no-undefined behaviour on AIX. Additionally, get_libname() now does return .so and versions like Linux.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ELT-patches/aix-noundef/1.4d12
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.0d-Ggxx10
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.0d-Gxlc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.0d-Gxlcxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.0d-ifc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.0d-ifcxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.3-casecxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4.3-needversion11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-cmds-c9
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-cmds-cxx10
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-noundef-c9
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-noundef-cxx9
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-postinst15
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-use-rtl-c11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-use-rtl-cxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-with-G-gcc (renamed from eclass/ELT-patches/aixrtl/1.4.0d-Ggcc)6
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-with-G-gxx12
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-with-G-xlc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.4d-with-G-xlcxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5-postinst15
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.00-casertl11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.12-Ggcc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.12-Ggxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.12-with-G-gcc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.12-with-G-gxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-Ggcc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-Ggxx11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-Gxlc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-cmds-c11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-cmds-cxx10
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.22-with-G-xlc11
-rw-r--r--eclass/ELT-patches/aixrtl/1.5.26-needversion11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-Ggxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-Gxlc11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-casecxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-cmds-c11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-cmds-cxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-noundef-c11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-noundef-cxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-use-rtl-cxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-with-G-gxx11
-rw-r--r--eclass/ELT-patches/aixrtl/2.1b-with-G-xlcxx11
-rw-r--r--eclass/libtool.eclass6
-rw-r--r--eclass/multilib.eclass4
44 files changed, 274 insertions, 194 deletions
diff --git a/eclass/ELT-patches/aix-noundef/1.4d b/eclass/ELT-patches/aix-noundef/1.4d
new file mode 100644
index 000000000000..b2b8d09544af
--- /dev/null
+++ b/eclass/ELT-patches/aix-noundef/1.4d
@@ -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
index 4a54cf3c9c72..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.0d-Ggxx
+++ /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
index 979d52ae241c..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.0d-Gxlc
+++ /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
index 3556ea9ab708..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.0d-Gxlcxx
+++ /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
index f2a687bd9862..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.0d-ifc
+++ /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
index 75caac48b6dc..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.0d-ifcxx
+++ /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
index 23c786e9d481..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.3-casecxx
+++ /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
index c5c3b8cd9995..000000000000
--- a/eclass/ELT-patches/aixrtl/1.4.3-needversion
+++ /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
index 000000000000..ec1c8cd7381c
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-cmds-c
@@ -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
index 000000000000..1eb99f97bf53
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-cmds-cxx
@@ -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
index 000000000000..e4fe86e16810
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-noundef-c
@@ -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
index 000000000000..b997057598ff
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-noundef-cxx
@@ -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
index 000000000000..cb6de550dc86
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-postinst
@@ -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
index 000000000000..9b2d227ef465
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-use-rtl-c
@@ -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
index 000000000000..fb223cbc401a
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-use-rtl-cxx
@@ -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
diff --git a/eclass/ELT-patches/aixrtl/1.4.0d-Ggcc b/eclass/ELT-patches/aixrtl/1.4d-with-G-gcc
index 14cfa29c4053..478685ad4dc9 100644
--- a/eclass/ELT-patches/aixrtl/1.4.0d-Ggcc
+++ b/eclass/ELT-patches/aixrtl/1.4d-with-G-gcc
@@ -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
index 000000000000..845438416dbe
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-with-G-gxx
@@ -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
index 000000000000..cfcfb5baf337
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-with-G-xlc
@@ -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
index 000000000000..8d0959098f22
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.4d-with-G-xlcxx
@@ -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
index 000000000000..f6212322acc2
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5-postinst
@@ -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
index d035ea82b6a9..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.00-casertl
+++ /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
index f8954fa4d55a..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.12-Ggcc
+++ /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
index 90017a359e01..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.12-Ggxx
+++ /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
index 000000000000..7fe024ffd6ff
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5.12-with-G-gcc
@@ -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
index 000000000000..c9db9c1cb5e6
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5.12-with-G-gxx
@@ -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
index 798b3b71e2c3..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.22-Ggcc
+++ /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
index 10f3ccc122c4..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.22-Ggxx
+++ /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
index 73e88e82f0aa..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.22-Gxlc
+++ /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
index 000000000000..e90153e2b67c
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5.22-cmds-c
@@ -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
index 000000000000..5154cd546da4
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5.22-cmds-cxx
@@ -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
index 000000000000..e1dcb9ad5504
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/1.5.22-with-G-xlc
@@ -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
index 8d6079fef632..000000000000
--- a/eclass/ELT-patches/aixrtl/1.5.26-needversion
+++ /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
index 9b5f0250641a..000000000000
--- a/eclass/ELT-patches/aixrtl/2.1b-Ggxx
+++ /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
index f513019c29af..000000000000
--- a/eclass/ELT-patches/aixrtl/2.1b-Gxlc
+++ /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
index 198432a1d93d..000000000000
--- a/eclass/ELT-patches/aixrtl/2.1b-casecxx
+++ /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
index 000000000000..9ade6c8db785
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-cmds-c
@@ -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
index 000000000000..b56facc6a712
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-cmds-cxx
@@ -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
index 000000000000..d29b123031bb
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-noundef-c
@@ -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
index 000000000000..d7863daf565b
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-noundef-cxx
@@ -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
index 000000000000..e73aecf52fe2
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-use-rtl-cxx
@@ -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
index 000000000000..04190aa9389f
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-with-G-gxx
@@ -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
index 000000000000..8fba1321800c
--- /dev/null
+++ b/eclass/ELT-patches/aixrtl/2.1b-with-G-xlcxx
@@ -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
diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
index def0f2e840d0..ca65070406ff 100644
--- a/eclass/libtool.eclass
+++ b/eclass/libtool.eclass
@@ -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"
diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass
index 39b30fcd4061..768a3beaa32c 100644
--- a/eclass/multilib.eclass
+++ b/eclass/multilib.eclass
@@ -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