[hellogcc] 关于values-Xa.so

  • From: 咏勤刘 <moximoxiboy@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Wed, 25 Apr 2012 10:47:46 +0800

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$


以上。

Other related posts: