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

Reply via email to