silent libf2c build failures, multilib related?

Robert Lipe robertl@dgii.com
Tue Sep 29 02:49:00 GMT 1998


I've added the group back in the hopes that others can help.



>  so, after repeating 'gmake clean-target-libf2c' there was
> libf2c/libU77/stamp-h left over. I removed that manually and

OK, I have one of those hanging around, too.   It seems to be built
intentionally.

I can't build an Irix cross.  The way I read the config files, irix
should be a multlibbed host, so we should be seeing the same sorts of things
at a block diagram level....

> reissued 'gmake all-target-libf2c'. Same effect as before.
> BUT - looking at the final command to bild the archive, I found:
> 
> true CC='/mnts/d9/tmp/egcs-snapobjs/gcc/xgcc
>  -B/mnts/d9/tmp/egcs-snapobjs/gcc/' CFLAGS='-O4 -g'
>  CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS=''
>  libg2c.a multi-do DO="all libg2c.a"
> 
>  Now, this will of course not generate an archive:-) The

In a mind-numbing display of obfuscation, it actually _is_ part of what
is displayed.


When I do a 'make all-target-libf2c', I see the following as the fini
for each of the multlib options.  Since -fPIC is my last one, that's the
one I'm going to show.  Notice that the third line is essentially the
one you're citing.

/play/negcs/gcc/xgcc -B/play/negcs/gcc/ -c -DSkip_f2c_Undefs -I. -I../../../../../egcs/libf2c/libU77 -I../../../../../egcs/libf2c/libU77/../libI77 -I.. -I../../../../../egcs/libf2c/libU77/..  -DHAVE_CONFIG_H -g -O2  -fPIC ../../../../../egcs/libf2c/libU77/datetime_.c
echo timestamp > ../s-libu77
true CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' libg2c.a multi-do DO="all libg2c.a"
rm -f libg2c.a
set -e; \
for i in libI77 libF77 libU77; \
  do (cd $i && make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' LIBG2C=../libg2c.a archive); \
done
ar rc ../libg2c.a VersionI.o backspace.o close.o dfe.o dolio.o due.o endfile.o err.o fmt.o fmtlib.o iio.o ilnw.o inquire.o lread.o lwrite.o open.o rdfmt.o rewind.o rsfe.o rsli.o rsne.o sfe.o sue.o typesize.o uio.o util.o wref.o wrtfmt.o wsfe.o wsle.o wsne.o xwsne.o ftell_.o
ar rc ../libg2c.a F77_aloc.o VersionF.o main.o s_rnge.o abort_.o getarg_.o iargc_.o getenv_.o signal_.o s_stop.o s_paus.o system_.o cabs.o derf_.o derfc_.o erf_.o erfc_.o sig_die.o exit_.o setarg.o setsig.o pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o  pow_ri.o pow_zi.o pow_zz.o pow_qq.o c_abs.o c_cos.o c_div.o c_exp.o c_log.o c_sin.o c_sqrt.o z_abs.o z_cos.o z_div.o z_exp.o z_log.o z_sin.o z_sqrt.o r_abs.o r_acos.o r_asin.o r_atan.o r_atn2.o r_cnjg.o r_cos.o r_cosh.o r_dim.o r_exp.o r_imag.o r_int.o r_lg10.o r_log.o r_mod.o r_nint.o r_sign.o r_sin.o r_sinh.o r_sqrt.o r_tan.o r_tanh.o d_abs.o d_acos.o d_asin.o d_atan.o d_atn2.o d_cnjg.o d_cos.o d_cosh.o d_dim.o d_exp.o d_imag.o d_int.o d_lg10.o d_log.o d_mod.o d_nint.o d_prod.o d_sign.o d_sin.o d_sinh.o d_sqrt.o d_tan.o d_tanh.o i_abs.o i_dim.o i_dnnt.o i_indx.o i_len.o i_mod.o i_nint.o i_sign.o h_abs.o h_dim.o h_dnnt.o h_indx.o h_len.o h_mod.o  h_nint.o h_sign.o l_ge.o l_gt.o l_le.o l_lt.o hl_ge.o hl_gt.o hl_le.o hl_lt.o ef1a!
sc_.o ef1cmc_.o s_cat.o s_cmp.o s_copy.o lbitbits.o lbitshft.o qbitbits.o qbitshft.o
ar rc ../libg2c.a VersionU.o gerror_.o perror_.o ierrno_.o itime_.o time_.o unlink_.o fnum_.o getpid_.o getuid_.o getgid_.o kill_.o rand_.o srand_.o irand_.o sleep_.o idate_.o ctime_.o etime_.o dtime_.o  isatty_.o ltime_.o fstat_.o stat_.o lstat_.o access_.o link_.o getlog_.o ttynam_.o getcwd_.o symlnk_.o vxttime_.o vxtidate_.o gmtime_.o fdate_.o secnds_.o bes.o dbes.o chdir_.o chmod_.o lnblnk_.o hostnm_.o rename_.o fgetc_.o fputc_.o umask_.o sys_clock_.o date_.o second_.o flush1_.o mclock_.o alarm_.o datetime_.o
objs=""; for i in abort derf derfc ef1asc ef1cmc erf erfc exit getarg getenv iargc signal system flush ftell fseek access besj0 besj1 besjn besy0 besy1 besyn chdir chmod ctime date dbesj0 dbesj1 dbesjn dbesy0 dbesy1 dbesyn dtime etime fdate fgetc fget flush1 fnum fputc fput fstat gerror getcwd getgid getlog getpid getuid gmtime hostnm idate ierrno irand isatty itime kill link lnblnk lstat ltime mclock perror rand rename secnds second sleep srand stat symlnk time ttynam umask unlink vxtidt vxttim alarm; do objs="$objs libE77/L$i.o"; done; \
  ar rc libg2c.a $objs
true libg2c.a





If I cd {triplet}/libf2c and do a 'make', I see this.  The first set of
builds is for the default case, then it loops over the multilib ("coff
pic") cases.   Can you see where yours differs?


cd libI77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[1]: Nothing to be done for `all'.
cd libF77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[1]: Nothing to be done for `all'.
cd libU77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[1]: Nothing to be done for `all'.
make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' libg2c.a multi-do DO="all libg2c.a"
make[1]: `libg2c.a' is up to date.
if [ -z "coff pic" ]; then \
  true; \
else \
  rootpre=`pwd`/; export rootpre; \
  srcrootpre=`cd ../../../egcs/libf2c; pwd`/; export srcrootpre; \
  lib=`echo ${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
  compiler="/play/negcs/gcc/xgcc -B/play/negcs/gcc/"; \
  for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
    dir=`echo $i | sed -e 's/;.*$//'`; \
    if [ "${dir}" = "." ]; then \
      true; \
    else \
      if [ -d ../${dir}/${lib} ]; then \
	flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
	if (cd ../${dir}/${lib}; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' \
			CFLAGS="-g -O2 ${flags}" \
			CXXFLAGS=" ${flags}" \
			LIBCFLAGS=" ${flags}" \
			LIBCXXFLAGS=" ${flags}" \
			LDFLAGS=" ${flags}" \
			all libg2c.a); then \
	  true; \
	else \
	  exit 1; \
	fi; \
      else true; \
      fi; \
    fi; \
  done; \
fi
cd libI77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -mcoff' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
cd libF77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -mcoff' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
cd libU77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -mcoff' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
true CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -mcoff' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' libg2c.a multi-do DO="all libg2c.a"
make[2]: `libg2c.a' is up to date.
cd libI77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
cd libF77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
cd libU77; make CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' all
make[3]: Nothing to be done for `all'.
true CC='/play/negcs/gcc/xgcc -B/play/negcs/gcc/' CFLAGS='-g -O2  -fPIC' CPPFLAGS='' AR='ar' RANLIB='true' PICFLAG='' RUNTESTFLAGS='' libg2c.a multi-do DO="all libg2c.a"
make[2]: `libg2c.a' is up to date.



More information about the Gcc mailing list