LFS-Hash-Style

Luca liliana.perossa at fastwebnet.it
Fri Dec 1 22:02:38 PST 2006


Hi to everyone!

I've started the build of LFS-hash-style since Bruce said he was interested.
Actually I've just installed gcc-pass1 in toolchain; building on a
native Reiser4 file-system.

Host-system: LFS-SVN-20060906 (with some updates).

Version-check:
bash, version 3.2.5(1)-release
Binutils: version 2.17
bzip2,  Version 1.0.3, 15-Feb-2005.
Coreutils:  6.4
diff (GNU diffutils) 2.8.1
GNU find version 4.2.28
GNU Awk 3.1.5
gcc (GCC) 4.1.1
GNU C Library development release version 2.4,
grep (grep GNU) 2.5.1
gzip 1.3.5
Linux version 2.6.18.3 (gcc version 4.1.1)
GNU Make 3.81
patch 2.5.4
GNU sed version 4.1.5
tar (GNU tar) 1.15.1

Actual list of packages used for toolchain:

Kernel-Headers-2.6.19; # Added some definitions removed
Binutils-cvs-2.17.50-20061129;
Glibc-cvs-2.5.90-20061109; # Applied Glibc-2.5-strlcpy_strlcat-1.patch
Gcc-cvs-4.3.0-20061201; # Applied hash-style patch
Gmp-4.2.1; # Needed for gcc compilation
Mpfr-2.2.1; # Needed for gcc compilation

Note1: Since the Reiser4 partition I first installed glibc-headers so no
complaining about nss.h missing file.
Note2: Gcc built in the hash-style needs a glibc supporting DT_GNU_HASH.
General-Notes: Gcc needs binutils supporting: -pie, omits dot symbols
and overlaps .opd (ppc64), -msecure-plt (ppc), .weakref,
--hash-style=gnu; mffgpr/mftgpr.
Pthread should not contain __thread tokens.
Glibc must support stack protector.
Glibc must support TFmode long double (ppc, ppc64, s390, s390x, sparc,
sparcv9, alpha).
For IA64 required: libunwind >= 0.98.
Needed: .eh_frame ld optimizations, visibility,
--as-needed/--no-as-needed; binutils that owns c++filt.
gdb < 5.1 (gdb must understand DW_FORM_strp).
Elfutils >= 0.72.

For Gcc-testsuite autogen is required (I installed 5.8.7); in native
build "bootstrap" is default; for gcc compilation needed gmp/mpfr.

Build-Order I used for now:
Kernel-Headers; Binutils-Pass1; Glibc-Headers; Glibc-Pass1; Gmp; Mpfr;
 Gcc-Pass1.

gcc -v:
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/tools
--with-local-prefix=/tools --disable-nls --enable-shared
--enable-languages=c --with-mpfr=/tools --with-gmp=/tools
--with-mpfr-include=/tools/include --with-mpfr-lib=/tools/lib
--with-gmp-include=/tools/include --with-gmp-lib=/tools/lib
Thread model: posix
gcc version 4.3.0 20061201 (experimental)

gcc -dumpspecs:
*asm:
%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

*asm_debug:
%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}

*asm_final:


*asm_options:
%a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}

*invoke_as:
%{!S:-o %|.s |
 as %(asm_options) %|.s %A }

*cpp:
%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}

*cpp_options:
%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*}
%{w} %{f*} %{g*:%{!g0:%{!fno-working-directory:-fworking-directory}}}
%{O*} %{undef} %{save-temps:-fpch-preprocess}

*cpp_debug_options:
%{d*}

*cpp_unique_options:
%{C|CC:%{!E:%eGCC does not support -C or -CC without -E}} %{!Q:-quiet}
%{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I %{MD:-MD
%{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM}
%{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ
%*}}}}} %{remap} %{g3:-dD} %{H} %C %{D*&U*&A*} %{i*} %Z %i
%{fmudflap:-D_MUDFLAP -include mf-runtime.h} %{fmudflapth:-D_MUDFLAP
-D_MUDFLAPTH -include mf-runtime.h} %{E|M|MM:%W{o*}}

*trad_capable_cpp:
cc1 -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}

*cc1:
%(cc1_cpu) %{profile:-p}

*cc1_options:
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are
incompatible}} %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}
%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}
%{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version}
%{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{--help:--help}
%{--target-help:--target-help} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o
%b.s}}} %{fsyntax-only:-o %j} %{-param*}
%{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants}
%{coverage:-fprofile-arcs -ftest-coverage}

*cc1plus:


*link_gcc_c_sequence:
%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}

*link_ssp:
%{fstack-protector:}

*endfile:
%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}   
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s

*link:
%{!static:--eh-frame-hdr} -m %(link_emulation) --hash-style=gnu
%{shared:-shared}   %{!shared:     %{!ibcs:       %{!static:   
%{rdynamic:-export-dynamic}    %{!dynamic-linker:-dynamic-linker
%(dynamic_linker)}}    %{static:-static}}}

*lib:
%{pthread:-lpthread}    %{shared:-lc}    %{!shared:%{mieee-fp:-lieee}
%{profile:-lc_p}%{!profile:-lc}}

*mfwrap:
 %{static: %{fmudflap|fmudflapth:  --wrap=malloc --wrap=free
--wrap=calloc --wrap=realloc --wrap=mmap --wrap=munmap --wrap=alloca}
%{fmudflapth: --wrap=pthread_create}} %{fmudflap|fmudflapth: --wrap=main}

*mflib:
%{fmudflap|fmudflapth: -export-dynamic}

*link_gomp:


*libgcc:
%{static|static-libgcc:-lgcc
-lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed
-lgcc_s --no-as-needed}%{shared-libgcc:-lgcc_s%{!shared: -lgcc}}}}

*startfile:
%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}   
crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}

*switches_need_spaces:


*cross_compile:
0

*version:
4.3.0

*multilib:
. ;

*multilib_defaults:


*multilib_extra:


*multilib_matches:


*multilib_exclusions:


*multilib_options:


*linker:
collect2

*link_libgcc:
%D

*md_exec_prefix:


*md_startfile_prefix:


*md_startfile_prefix_1:


*startfile_prefix_spec:
/tools/lib/

*sysroot_spec:
--sysroot=%R

*sysroot_suffix_spec:


*sysroot_hdrs_suffix_spec:


*cc1_cpu:
%{!mtune*: %{m386:mtune=i386 %n`-m386' is deprecated. Use `-march=i386'
or `-mtune=i386' instead.
} %{m486:-mtune=i486 %n`-m486' is deprecated. Use `-march=i486' or
`-mtune=i486' instead.
} %{mpentium:-mtune=pentium %n`-mpentium' is deprecated. Use
`-march=pentium' or `-mtune=pentium' instead.
} %{mpentiumpro:-mtune=pentiumpro %n`-mpentiumpro' is deprecated. Use
`-march=pentiumpro' or `-mtune=pentiumpro' instead.
} %{mcpu=*:-mtune=%* %n`-mcpu=' is deprecated. Use `-mtune=' or
'-march=' instead.
}} %<mcpu=* %{mintel-syntax:-masm=intel %n`-mintel-syntax' is
deprecated. Use `-masm=intel' instead.
} %{mno-intel-syntax:-masm=att %n`-mno-intel-syntax' is deprecated. Use
`-masm=att' instead.
}%{march=native:%<march=native %:local_cpu_detect(arch)}
%{mtune=native:%<mtune=native %:local_cpu_detect(tune)}

*link_emulation:
elf_i386

*dynamic_linker:
%{muclibc:%{mglibc:%e-mglibc and -muclibc used
together}/lib/ld-uClibc.so.0;:/tools/lib/ld-linux.so.2}

*link_command:
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:    %(linker) %l %{pie:-pie}
%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}    %{s} %{t} %{u*} %{x}
%{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}    %{static:} %{L*}
%(mfwrap) %(link_libgcc) %o   
%{fopenmp:%:include(libgomp.spec)%(link_gomp)} %(mflib)   
%{fprofile-arcs|fprofile-generate|coverage:-lgcov}   
%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}   
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}


Friendly,
Luca

More when finishing Toolchain, or if someone is interested in something
specific in toolchain just ask.



More information about the lfs-dev mailing list