[lfs-support] GCC build first pass: mpc build looks for libgmp.la in the wrong place

Bruce Dubbs bruce.dubbs at gmail.com
Tue Oct 22 08:16:53 PDT 2013

Hazel Russman wrote:
> I am trying to build a 64-bit lfs-7.4 system using a host system based
> on Slackware-14. Currently I am having a problem with the first pass of
> building gcc.  During the internal build of libmpc, a search is made for
> /usr/lib64/libgmp.la. It is not found, so the build crashes.
> libtool: link: ar rc .libs/libmpc.a  abs.o acos.o acosh.oo add_ui.o
> arg.o asin.o asinh.o atan.o atanh.o clear.o cmcos.o cosh.o div_2si.o
> div_2ui.o div.o div_fr.o div_ui.o _sub.o get_prec2.o get_prec.o
> get_version.o get_x.o imag.tr.o log.o log10.o mem.o mul_2si.o mul_2ui.o
> mul.o mul_fr_ui.o neg.o norm.o out_str.o pow.o pow_fr.o pow_ld.o
> pow_ow_z.o proj.o real.o urandom.o set.o set_prec.o set_str.oo sin_cos.o
> sinh.o sqr.o sqrt.o strtoc.o sub.o sub_fr.o snh.o uceil_log2.o ui_div.o
> ui_ui_sub.o
> libtool: link: ranlib .libs/libmpc.a
> /bin/sed: can't read /usr/lib64/libgmp.la: No such file or directory
> libtool: link: `/usr/lib64/libgmp.la' is not a valid libtool archive
> make[4]: *** [libmpc.la] Error 1
> make[4]: Leaving directory `/mnt/lfs/sources/gcc-build/mpc/src
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory `/mnt/lfs/sources/gcc-build/mpc
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/mnt/lfs/sources/gcc-build/mpc
> make[1]: *** [all-mpc] Error 2
> make[1]: Leaving directory `/mnt/lfs/sources/gcc-build'
> make: *** [all] Error 2

Did the previous line appear to run OK?

/bin/sh ../libtool --tag=CC   --mode=link gcc  -g -O2  -version-info 
3:0:0 -static-libstdc++ -static-libgcc  -o libmpc.la -rpath /tools/lib 
abs.lo acos.lo acosh.lo add.lo add_fr.lo add_si.lo add_ui.lo arg.lo 
asin.lo asinh.lo atan.lo atanh.lo clear.lo cmp.lo cmp_si_si.lo conj.lo 
cos.lo cosh.lo div_2si.lo div_2ui.lo div.lo div_fr.lo div_ui.lo exp.lo 
fma.lo fr_div.lo fr_sub.lo get_prec2.lo get_prec.lo get_version.lo 
get_x.lo imag.lo init2.lo init3.lo inp_str.lo log.lo log10.lo mem.lo 
mul_2si.lo mul_2ui.lo mul.lo mul_fr.lo mul_i.lo mul_si.lo mul_ui.lo 
neg.lo norm.lo out_str.lo pow.lo pow_fr.lo pow_ld.lo pow_d.lo pow_si.lo 
pow_ui.lo pow_z.lo proj.lo real.lo urandom.lo set.lo set_prec.lo 
set_str.lo set_x.lo set_x_x.lo sin.lo sin_cos.lo sinh.lo sqr.lo sqrt.lo 
strtoc.lo sub.lo sub_fr.lo sub_ui.lo swap.lo tan.lo tanh.lo 
uceil_log2.lo ui_div.lo ui_ui_sub.lo  -lmpfr -lgmp -lm

That's what produces libmpc.la

> I have tried two experimental builds. In the first, I used two
> additional configuration parameters in the hope that they would tell the
> compiler the correct place to look for information on gmp:
> --with_gmp_include=$(pwd)/gmp and --with_gmp_lib=$(pwd)/gmp/.libs. But
> this did not have any effect on the error.
> For the second try, I simply put a symbolic link into /usr/lib64
> pointing to /mnt/lfs/sources/gcc-build/gmp/.libs/libgmp.la. Then the
> build was successful.

This is incorrect.  You shouldn't be using anything from /usr.  It seems 
that something in your setup of the lfs user is incorrect.

> I have not installed this build because it was not done "by the book"
> and I am afraid of polluting my tool chain. Can someone please tell me:
> 1) If it is safe to install it?

I wouldn't do that.

> 2) Why the error occurred, given that the configuration options and
> global edits set out in the book should prevent this kind of
> back-reference to the host system?
> 3) What would be the proper way to correct an error like this? My way
> feels rather kludgy.

The proper way is to start over, double checking section 4.4.

   -- Bruce

More information about the lfs-support mailing list