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

Reply via email to