onward branch

Dean Takemori deant at hawaii.rr.com
Sun Feb 28 02:12:59 PST 2010


Trying to upgrade to the newest updates to the onward book:

I'm having trouble with gcc pass 2;  I just updated with the
latest fomit_pointer and optimize_linking patches, but I did
not change what I had been doing which is building the 
Temporary GCC Pass2 with gmp and mpfr.

Here's the end of the log:


> make[4]: Entering directory `/mnt/HLFS/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/i686-pc-linux-gnu/libgcc'
> if [ -z "" ]; then \
> 	  true; \
> 	else \
> 	  rootpre=`${PWDCMD-pwd}`/; export rootpre; \
> 	  srcrootpre=`cd ../../../libgcc; ${PWDCMD-pwd}`/; export srcrootpre; \
> 	  lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
> 	  compiler="/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/xgcc -B/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/ -B/tools/i686-pc-linux-gnu/bin/ -B/tools/i686-pc-linux-gnu/lib/ -isystem /tools/i686-pc-linux-gnu/include -isystem /tools/i686-pc-linux-gnu/sys-include"; \
> 	  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 "AR=ar" "AR_FLAGS=rc" "CC=/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/xgcc -B/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/ -B/tools/i686-pc-linux-gnu/bin/ -B/tools/i686-pc-linux-gnu/lib/ -isystem /tools/i686-pc-linux-gnu/include -isystem /tools/i686-pc-linux-gnu/sys-include" "CFLAGS=-g -O2" "DESTDIR=" "EXTRA_OFILES=" "HDEFINES=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "LDFLAGS=" "LOADLIBES=" "RANLIB=ranlib" "SHELL=/bin/sh" "prefix=/tools" "exec_prefix=/tools" "libdir=/tools/lib" "libsubdir=/tools/lib/gcc/i686-pc-linux-gnu/4.4.3" "tooldir=/tools/i686-pc-linux-gnu" \
> 				CFLAGS="-g -O2 ${flags}" \
> 				CCASFLAGS=" ${flags}" \
> 				FCFLAGS=" ${flags}" \
> 				FFLAGS=" ${flags}" \
> 				ADAFLAGS=" ${flags}" \
> 				prefix="/tools" \
> 				exec_prefix="/tools" \
> 				GCJFLAGS=" ${flags}" \
> 				CXXFLAGS="-g -O2   ${flags}" \
> 				LIBCFLAGS="-g -O2   ${flags}" \
> 				LIBCXXFLAGS="-D_GNU_SOURCE -fno-implicit-templates   ${flags}" \
> 				LDFLAGS=" ${flags}" \
> 				MULTIFLAGS="${flags}" \
> 				DESTDIR="" \
> 				INSTALL="/usr/bin/install -c" \
> 				INSTALL_DATA="/usr/bin/install -c -m 644" \
> 				INSTALL_PROGRAM="/usr/bin/install -c" \
> 				INSTALL_SCRIPT="/usr/bin/install -c" \
> 				all); then \
> 		  true; \
> 		else \
> 		  exit 1; \
> 		fi; \
> 	      else true; \
> 	      fi; \
> 	    fi; \
> 	  done; \
> 	fi
> make[4]: Leaving directory `/mnt/HLFS/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/i686-pc-linux-gnu/libgcc'
> # Early copyback; see "all" above for the rationale.  The
> # early copy is necessary so that the gcc -B options find
> # the right startup files when linking shared libgcc.
> /bin/sh ../../../libgcc/../mkinstalldirs ../.././gcc
> parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtprec32.o crtprec64.o crtprec80.o crtfastmath.o";					\
> 	for file in $parts; do					\
> 	  rm -f ../.././gcc/$file;		\
> 	  /usr/bin/install -c -m 644 $file ../.././gcc/;	\
> 	done
> # @multilib_flags@ is still needed because this may use
> # /tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/xgcc -B/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/ -B/tools/i686-pc-linux-gnu/bin/ -B/tools/i686-pc-linux-gnu/lib/ -isystem /tools/i686-pc-linux-gnu/include -isystem /tools/i686-pc-linux-gnu/sys-include and -O2  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -fno-stack-protector -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -fno-PIE directly.
> # @multilib_dir@ is not really necessary, but sometimes it has
> # more uses than just a directory name.
> /bin/sh ../../../libgcc/../mkinstalldirs .
> /tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/xgcc -B/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/./gcc/ -B/tools/i686-pc-linux-gnu/bin/ -B/tools/i686-pc-linux-gnu/lib/ -isystem /tools/i686-pc-linux-gnu/include -isystem /tools/i686-pc-linux-gnu/sys-include -O2  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -fno-stack-protector -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -fno-PIE -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _enable_execute_stack_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o tf-signs_s.o unwind-dw2_s.o unwind-dw2-fde-glibc_s.o unwind-sjlj_s.o gthr-gnat_s.o unwind-c_s.o emutls_s.o -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
> /tools/bin/ld: crti.o: No such file: No such file or directory
> collect2:ld returned 1 exit status
> make[3]: *** [libgcc_s.so] Error 1
> make[3]: Leaving directory `/mnt/HLFS/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj/i686-pc-linux-gnu/libgcc'
> make[2]: *** [all-stage1-target-libgcc] Error 2
> make[2]: Leaving directory `/mnt/HLFS/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj'
> make [1]: *** [stage1-bubble] Error 2
> make[1]: Leaving directory `/mnt/HLFS/tools/Build/Temporary/06-gcc_pass2/gcc-4.4.3/obj'
> make: *** [all] Error 2

Strange especially since

> /tools/bin/ld --verbose | grep SEARCH
> SEARCH_DIR("/tools/i686-pc-linux-gnu/lib"); SEARCH_DIR("/tools/lib");

and

> file /tools/lib/crti.o
> /tools/lib/crti.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

The first pass GCC seems to be OK

> gcc -v
> Reading specs from /mnt/HLFS/tools/bin../lib/gcc/i686-pc-linux-gnu/4.4.3/specs
> Configured with: ../configure --prefix=/tools --with-local-prefix=/tools --libexecdir=/tools/lib --enable-shared --enable-languages=c --enable-threads=posix --disable-nls --disable-multilib --disable-libssp --disable-integer-float --disable-mudflap --disable-libgomp --disable-decimal-float --infodir=/tools/Build/Temporary/02-gcc_pass1/gcc-4.4.3/obj/DESTDIR --mandir=/tools/Build/Temporary/02-gcc_pass1/gcc-4.4.3/obj/DESTDIR
> Thread model: posix
> gcc version 4.4.3 (HLFS Temp-Pass1 PIC)

> echo "main(){;}" | gcc -o foo -Wl,--verbose -x c - | grep crti
> attempt to open /mnt/HLFS/tools/bin/../lib/gcc/i686-pc-linux-gnu/4.4.3/../../../crti.o succeeded
> /mnt/HLFS/tools/bin/../lib/gcc/i686-pc-linux-gnu/4.4.3/../../../crti.o

Any ideas?  

The scripts I had were working before I made the changes, which were mainly (no particular order)
1) New HLFS patches
2) remove explicit host,build,target=i486-pc-linux-gnu from binutils-pass1, gcc-pass1, glibc, gcc-pass2
3) remove --with-cpu=i486 --with-arch=i486 from GCC
4) add --disable-multilib
5) different configparms in glib

I'm going to start reverting some of the changes (thank goodness for subversion1),
but I'm hoping someone can point in the right direction.

-dean takemori


More information about the hlfs-dev mailing list