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 [email protected]