Hi,各位 在编译gcc的时候,因为一个命令写错,导致gcc/config下面的一些头文件被破坏了。 在头文件被破坏的情况下编译gcc,出现了需要values-Xa.so的错误。 google上大概的搜了一下感觉都是跟sparc相关的,可以我是在虚拟机上编译的,应该不是sparc结构的。 这里不是来解决这个问题的,问题已经解决。 不过还是不能明白values-Xa.so是做什么用的,为什么需要这个values-Xa. 所以这封信只是针对values-Xa的讨论和学习。 *下面是编译时候出的错误:* lfs:/mnt/lfs/build/gcc_pass2$ make make[1]: Entering directory `/mnt/lfs/build/gcc_pass2' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/libiberty' make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/libiberty/testsuite' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/libiberty/testsuite' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/libiberty' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/fixincludes' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/fixincludes' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp' make all-recursive make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp' Making all in tests make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests' Making all in . make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests' make[5]: Nothing to be done for `all-am'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests' Making all in devel make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/devel' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/devel' Making all in mpn make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpn' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpn' Making all in mpz make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpz' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpz' Making all in mpq make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpq' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpq' Making all in mpf make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpf' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpf' Making all in rand make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/rand' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/rand' Making all in misc make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/misc' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/misc' Making all in cxx make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/cxx' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/cxx' Making all in mpbsd make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpbsd' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests/mpbsd' make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tests' Making all in mpn make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/mpn' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/mpn' Making all in mpz make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/mpz' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/mpz' Making all in mpq make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/mpq' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/mpq' Making all in mpf make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/mpf' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/mpf' Making all in printf make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/printf' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/printf' Making all in scanf make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/scanf' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/scanf' Making all in cxx make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/cxx' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/cxx' Making all in mpbsd make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/mpbsd' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/mpbsd' Making all in demos make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/demos' Making all in calc make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/demos/calc' make all-am make[6]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/demos/calc' make[6]: Nothing to be done for `all-am'. make[6]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/demos/calc' make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/demos/calc' Making all in expr make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/demos/expr' make[5]: Nothing to be done for `all'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/demos/expr' make[5]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/demos' make[5]: Nothing to be done for `all-am'. make[5]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/demos' make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/demos' Making all in tune make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/tune' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/tune' Making all in doc make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp/doc' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp/doc' make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/gmp' make[4]: Nothing to be done for `all-am'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp' make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/gmp' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/intl' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/intl' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/mpfr' Making all in tests make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/mpfr/tests' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpfr/tests' make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/mpfr' make[3]: Nothing to be done for `all-am'. make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpfr' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpfr' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc' make all-recursive make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc' Making all in src make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc/src' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc/src' Making all in tests make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc/tests' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc/tests' Making all in doc make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc/doc' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc/doc' make[4]: Entering directory `/mnt/lfs/build/gcc_pass2/mpc' make[4]: Nothing to be done for `all-am'. make[4]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc' make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/mpc' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/libiberty' make[3]: Entering directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/libiberty/testsuite' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/libiberty/testsuite' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/libiberty' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/fixincludes' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/build-i686-pc-linux-gnu/fixincludes' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/zlib' true "AR_FLAGS=rc" "CC_FOR_BUILD=i686-lfs-linux-gnu-gcc -B/tools/lib" "CFLAGS=-g -O2" "CXXFLAGS=" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-g -O2" "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" "LDFLAGS=" "LIBCFLAGS=-g -O2" "LIBCFLAGS_FOR_TARGET=-g -O2" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/tools" "infodir=/tools/share/info" "libdir=/tools/lib" "prefix=/tools" "tooldir=/tools/i686-pc-linux-gnu" "AR=i686-lfs-linux-gnu-ar" "AS=as" "CC=i686-lfs-linux-gnu-gcc -B/tools/lib" "CXX=g++" "LD=/mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.5.1/../../../../i686-lfs-linux-gnu/bin/ld" "LIBCFLAGS=-g -O2" "NM=nm" "PICFLAG=" "RANLIB=i686-lfs-linux-gnu-ranlib" "DESTDIR=" DO=all multi-do # make make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/zlib' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/libcpp' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/libcpp' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/libdecnumber' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/libdecnumber' make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/gcc' make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/gcc' Checking multilib configuration for libgcc... make[2]: Entering directory `/mnt/lfs/build/gcc_pass2/i686-pc-linux-gnu/libgcc' # If this is the top-level multilib, build all the other # multilibs. # 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 /mnt/lfs/build/decompress_src/gcc-4.5.1_pass2/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 # /mnt/lfs/build/gcc_pass2/./gcc/xgcc -B/mnt/lfs/build/gcc_pass2/./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 -fomit-frame-pointer -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED directly. # @multilib_dir@ is not really necessary, but sometimes it has # more uses than just a directory name. /bin/sh /mnt/lfs/build/decompress_src/gcc-4.5.1_pass2/libgcc/../mkinstalldirs . /mnt/lfs/build/gcc_pass2/./gcc/xgcc -B/mnt/lfs/build/gcc_pass2/./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 -fomit-frame-pointer -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -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/i686-pc-linux-gnu/bin/ld: values-Xa.o: No such file: No such file or directory collect2: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/mnt/lfs/build/gcc_pass2/i686-pc-linux-gnu/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/mnt/lfs/build/gcc_pass2' make: *** [all] Error 2 lfs:/mnt/lfs/build/gcc_pass2$ *下面是对Build的源码以及生成物进行values-Xa搜索得到的结果:* [pkar@localhost sources]$ find /mnt/lfs/build/ -type f |xargs grep -i 'values-xa' /mnt/lfs/build/gcc_pass2/i686-pc-linux-gnu/libgcc/config.log:/tools/i686-pc-linux-gnu/bin/ld: values-Xa.o: No such file: No such file or directory Binary file /mnt/lfs/build/gcc_pass2/gcc/cpp matches Binary file /mnt/lfs/build/gcc_pass2/gcc/gcc.o matches /mnt/lfs/build/gcc_pass2/gcc/specs:%{!shared: %{!symbolic: %{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}}} %{pg:gcrti.o%s}%{!pg:crti.o%s} %{ansi:values-Xc.o%s} %{!ansi:values-Xa.o%s} crtbegin.o%s Binary file /mnt/lfs/build/gcc_pass2/gcc/xgcc matches Binary file /mnt/lfs/build/gcc_pass2/gcc/g++ matches /mnt/lfs/build/decompress_src/gcc-4.5.1_pass1/gcc/config/svr4.h: or /usr/ccs/lib/values-Xa.o for each final link step (depending /mnt/lfs/build/decompress_src/gcc-4.5.1_pass1/gcc/config/svr4.h: %{!ansi:values-Xa.o%s} \ /mnt/lfs/build/decompress_src/gcc-4.5.1_pass1/gcc/config/sol2.h: %{!ansi:values-Xa.o%s}" /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/ld/configure.host: HOSTING_CRT0='/usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/sparcv9/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/binutils-2.20.1/ld/configure.host: HOSTING_CRT0='/usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/binutils-2.20.1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/binutils-2.20.1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass2/binutils-2.20.1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/sparcv9/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass1/ld/configure.host: HOSTING_CRT0='/usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/binutils-2.20.1_pass1/ld/configure.host: HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/sparcv9/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' /mnt/lfs/build/decompress_src/gcc-4.5.1_pass2/gcc/config/svr4.h: or /usr/ccs/lib/values-Xa.o for each final link step (depending /mnt/lfs/build/decompress_src/gcc-4.5.1_pass2/gcc/config/svr4.h: %{!ansi:values-Xa.o%s} \ /mnt/lfs/build/decompress_src/gcc-4.5.1_pass2/gcc/config/sol2.h: %{!ansi:values-Xa.o%s}" [pkar@localhost sources]$ *下面是使用ldd命令查看的链接的库的结果:* lfs:/mnt/lfs/build/gcc_pass2$ which ldd /tools/bin/ldd lfs:/mnt/lfs/build/gcc_pass2$ ldd /tools/i686-pc-linux-gnu/bin/ld linux-gate.so.1 => (0x00d36000) libc.so.6 => /tools/lib/libc.so.6 (0x001fa000) /tools/lib/ld-linux.so.2 (0x00a2f000) lfs:/mnt/lfs/build/gcc_pass2$ 以上。