well gcc 3.4.4 is working perfectly on AIX 5.2 PASE but this problem at install time prevent me to have a RPM ;(
Reading specs from /QOpenSys/usr/local/gcc-3.4.4/bin/../lib/gcc/powerpc-ibm-aix5.2.0.0/3.4.4/specs Configured with: ../configure --with-as=/tmp/as --prefix=/usr/local/gcc-3.4.4 --with-ld=/QOpenSys/usr/bin/ld --disable-nls --enable-languages=c,c++ --enable-threads --enable-version-specific-runtime-libs Thread model: aix gcc version 3.4.4 My 3.4.4 gcc give as result for gcc --print-multi-lib : .; pthread;@pthread ppc64;@maix64 pthread/ppc64;@[EMAIL PROTECTED] On an iSeries LPAR with Linux SLES 9 (gcc 3.3.3) I got : .;@[EMAIL PROTECTED] 64;@[EMAIL PROTECTED]@mstrict-align On an Intel box with Suse SLES 9 (gcc 3.3.3) I got : .; Question, what could we do now ? 18 Jul 2005 23:33:55 +0200, Simon J Mudd <[EMAIL PROTECTED]>: > Doug Summers <[EMAIL PROTECTED]> writes: > > > Simon J Mudd wrote: > > > Doug Summers <[EMAIL PROTECTED]> writes: > > > > > >>Henri - I got the exact same results with GCC 3.3.6 (from CURRENT). It > > >>seems that the compile works fine, but the spec file is wrong. Just > > >>before it crashes these commands are executed: > > >> > > >>+ mv /openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread/libiberty.a > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread/libstdc++.a > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread/libsupc++.a > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/gcc33-lib/powerpc-ibm-aix5.1.0.0/3.3.6/pthread/ > > >>+ rm -rf /openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread > > >> >>>> this line is the culprit <<<< > > >> > > >>And here's where it fails: > > >> > > >>+ mv > > >>'/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread/power/lib*.a' > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/gcc33-lib/powerpc-ibm-aix5.1.0.0/3.3.6/pthread/power/ > > >>mv: cannot rename > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/pthread/power/lib*.a to > > >>/openpkg/RPM/TMP/gcc33-3.3.6-root/openpkg/lib/gcc33-lib/powerpc-ibm-aix5.1.0.0/3.3.6/pthread/power//lib*.a: > > >>No such file or directory > > >> >>>> of course there's no files - <<<< > > >> >>>> the above rm -rf command killed them <<<< > > >> > > >>I wish I knew more about .spec files but I'm not sure how to fix this. > > > This comes from the spec file entry (%install) section > > > (see http://cvs.openpkg.org/getfile/openpkg-src/gcc33/gcc33.spec) > > > %install > > > rm -rf $RPM_BUILD_ROOT > > > # fetch GNU platform triple > > > triple=`./config.guess` > > > # perform the standard installation procedure > > > ( cd obj > > > %{l_make} %{l_mflags} install \ > > > INSTALL="%{l_shtool} install -c" \ > > > DESTDIR=$RPM_BUILD_ROOT > > > ) || exit $? > > > # cleanup installation tree > > > mv $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.a \ > > > > > > $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}-lib/${triple}/%{V_full}/ > > > for multilib in `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc > > > --print-multi-lib`; do > > > subdir=`echo "$multilib" | sed -e 's/;.*$//'` > > > [ ".$subdir" = .. ] && continue > > > mv $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir/lib*.a \ > > > > > > $RPM_BUILD_ROOT%{l_prefix}/lib/gcc%{V_comp}-lib/${triple}/%{V_full}/$subdir/ > > > rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/$subdir > > > done > > > ... > > > The mv above is failing. > > > The %install section is used to "copy" the correctly built software > > > into the "right location" for the final package. The directory tree > > > has a temporary prefix $RPM_BUILD_ROOT, but everything is otherwise > > > ok. It looks like the gcc "libraries" are being "relocated" because > > > they can NOT be put in /lib,/usr/lib on the target platform, and are > > > so put under %{l_prefix}. > > > The question really comes down to is "where are the lib*.a files" as > > > if the mv fails they are NOT in the expected location of > > > $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.a. > > > I'll see if I can get the compile to run on a box I have access to > > > and > > > see where the libraries really are. > > > Regards, > > > Simon > > > ______________________________________________________________________ > > > The OpenPKG Project www.openpkg.org > > > User Communication List openpkg-users@openpkg.org > > The only reason the mv is failing is because an earlier cleanup killed > > the parent directory. The pthread directory is being removed before > > the pthread/power files are moved. > > In that case the evaluation of > `$RPM_BUILD_ROOT%{l_prefix}/bin/gcc --print-multi-lib` > > seems to be providing the directory list in the wrong order and some > libraries are getting removed before they are copied. > > That's what I think. Ralf must have written this and should know > better. I'm pretty familiar with RPMs but have never looked at the > gcc build process which is obviously non-trivial. > > I'm going to try building gcc 3.4 without binutils and if that fails > (I think you said that it did not work) just try and build a normal > gcc from the tar ball. The compiler running on my 5.1 box is > > $ gcc -v > Reading specs from > /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.3.2/specs > Configured with: ../configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld > --disable-nls --enable-languages=c,c++ --prefix=/opt/freeware > --enable-threads --enable-version-specific-runtime-libs > --host=powerpc-ibm-aix5.1.0.0 > Thread model: aix > gcc version 3.3.2 > > I'd like to build a newer gcc. It's a shame that IBM don't provide the > spec files for the rpms they provide on their website as maybe we > could see what "tricks" they had to apply (if any) to get "their" gcc > to build successfully. > > Regards, > > Simon > ______________________________________________________________________ > The OpenPKG Project www.openpkg.org > User Communication List openpkg-users@openpkg.org > ______________________________________________________________________ The OpenPKG Project www.openpkg.org User Communication List openpkg-users@openpkg.org