After my wrong accuse of GNU file as part of the openpkg package to cause problems during the gcc build on IRIX, I finally found the real reason: The packaging process within gcc.spec is breaking the multilib support on IRIX (and maybe on other platforms as well) . The "make install" distributes the libraries for the three supported MABIs 32, n32 and 64 on the directories lib, lib32 and lib64. The internal gcc-stuff goes to lib/gcc%{V_comp}/${triple}/4.0.2, ../32 and ../64 (the order is there n32, 32, 64!) The current packaging now messes this up by moving all libraries /lib/lib*.a to the lib/gcc%{V_comp}/${triple}/4.0.2. But e.g. libstdc++.a and libsupc++.a should stay in lib (mabi=32).
Find attached my patch to fix this behaviour for all multilib platforms. I can use g++ on IRIX again:-) --- gcc.spec.orig Mon Feb 20 09:01:30 2006 +++ gcc.spec Mon Feb 20 17:24:41 2006 @@ -258,8 +258,18 @@ ) || exit $? # cleanup installation tree - mv $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.a \ - $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}/${triple}/[0-9]*/ + for multilib in `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc --print-multi-lib`; do + subdir=`echo "$multilib" | sed -e 's/;.*$//'` + [ ".$subdir" = .. ] || break + done + if [ ".$subdir" != .. -a -d "$RPM_BUILD_ROOT %{l_prefix}/lib/$subdir" ]; then + ( cd $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir + for lib in lib*.a; do + mv -f $RPM_BUILD_ROOT%{l_prefix}/lib/${lib} \ + $RPM_BUILD_ROOT%{l_prefix}/lib/gcc %{V_comp}/${triple}/[0-9]*/ + done + ) + fi dirs="" for multilib in `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc --print-multi-lib`; do subdir=`echo "$multilib" | sed -e 's/;.*$//'` @@ -283,7 +293,7 @@ rm -rf $RPM_BUILD_ROOT%{l_prefix}/${triple} rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man7 >/dev/null 2>&1 || true - rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la >/dev/null 2>&1 || true + # rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la >/dev/null 2>&1 || true rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-gcc* >/dev/null 2>&1 || true %if "%{with_cxx}" == "yes" rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-c++ >/dev/null 2>&1 || true Cheers, J"org -- Joerg Lehrke GnuPG-KeyID: C66844AC Pi-BI: 2593079121 The Knoc http://k.noc.de/ Skype callto://skypedzanq Bgm.-Haffner-Str. 7, D-87600 Kaufbeuren, Germany Tel +49 179 7882842 GNU -- Protect your freedom! ______________________________________________________________________ The OpenPKG Project www.openpkg.org Developer Communication List openpkg-dev@openpkg.org