[SOLVED] LFS Book 6.8 Chapter 6.10 Re-adjusting the toolchain
Linux From ScratchThis Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
how can i post the dummy.log , i'm using the live-cd and inside the chroot environment i can't mount a usb... and it's an other computer...
You don't need to be inside the chrooted environment. Mount the USB stick outside the chrooted environment and copy the log file to it.
If the log file is at the following location (seen from inside the chrooted env): /sources, it should be accessable from outside by prepending $LFS to that path (assuming LFS=/mnt/lfs): /mnt/lfs/sources
I'm not going into the actual error just now, we do need specifics which are inside the log file.
Reading specs from /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/specs
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/tools/libexec/gcc/i686-pc-linux-gnu/4.5.2/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --prefix=/tools --with-local-prefix=/tools --enable-clocale=gnu --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --disable-libstdcxx-pch --disable-multilib --disable-bootstrap --disable-libgomp --with-gmp-include=/mnt/lfs/sources/gcc-4.5.2/gmp --with-gmp-lib=/mnt/lfs/sources/gcc-4.5.2/gmp/.libs --without-ppl --without-cloog
Thread model: posix
gcc version 4.5.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
/tools/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -quiet -v -isystem /usr/include dummy.c -quiet -dumpbase dummy.c -mtune=generic -march=pentiumpro -auxbase dummy -version -o /tmp/ccYIC0Fg.s
GNU C (GCC) version 4.5.2 (i686-pc-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include
/tools/include
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/include
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/include-fixed
End of search list.
GNU C (GCC) version 4.5.2 (i686-pc-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: b4f0e6ede0e90024ed376e32bcdff477
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/as -V -Qy --32 -o /tmp/ccRZfhnU.o /tmp/ccYIC0Fg.s
GNU assembler version 2.21 (i686-pc-linux-gnu) using BFD version (GNU Binutils) 2.21
COMPILER_PATH=/tools/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/tools/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/tools/libexec/gcc/i686-pc-linux-gnu/:/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/:/tools/lib/gcc/i686-pc-linux-gnu/:/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/
LIBRARY_PATH=/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/:/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
/tools/libexec/gcc/i686-pc-linux-gnu/4.5.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtbegin.o -L/tools/lib/gcc/i686-pc-linux-gnu/4.5.2 -L/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib /tmp/ccRZfhnU.o --verbose -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtend.o /usr/lib/crtn.o
GNU ld (GNU Binutils) 2.21
Supported emulations:
elf_i386
i386linux
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(_start)
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib"); SEARCH_DIR("usr/lib"); SEARCH_DIR("/lib");
SECTIONS
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS;
.interp : { *(.interp) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.dyn :
{
*(.rel.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rel.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rel.dtors)
*(.rel.got)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
*(.rel.ifunc)
}
.rel.plt :
{
*(.rel.plt)
PROVIDE_HIDDEN (__rel_iplt_start = .);
*(.rel.iplt)
PROVIDE_HIDDEN (__rel_iplt_end = .);
}
.init :
{
KEEP (*(.init))
} =0x90909090
.plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0x90909090
.fini :
{
KEEP (*(.fini))
} =0x90909090
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.eh_frame_hdr : { *(.eh_frame_hdr) }
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
/* Exception handling */
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
/* Thread Local Storage sections */
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
.preinit_array :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
}
.init_array :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
}
.fini_array :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
}
.ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin.o(.ctors))
KEEP (*crtbegin?.o(.ctors))
/* We don't want to include the .ctor section from
the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.jcr : { KEEP (*(.jcr)) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.got : { *(.got) *(.igot) }
. = DATA_SEGMENT_RELRO_END (12, .);
.got.plt : { *(.got.plt) *(.igot.plt) }
.data :
{
*(.data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
_edata = .; PROVIDE (edata = .);
__bss_start = .;
.bss :
{
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.
FIXME: Why do we need it? When there is no .bss section, we don't
pad the .data section. */
. = ALIGN(. != 0 ? 32 / 8 : 1);
}
. = ALIGN(32 / 8);
. = ALIGN(32 / 8);
_end = .; PROVIDE (end = .);
. = DATA_SEGMENT_END (.);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo .zdebug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames .zdebug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges .zdebug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames .zdebug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.* .zdebug_info) }
.debug_abbrev 0 : { *(.debug_abbrev .zdebug_abbrev) }
.debug_line 0 : { *(.debug_line .zdebug_line) }
.debug_frame 0 : { *(.debug_frame .zdebug_frame) }
.debug_str 0 : { *(.debug_str .zdebug_str) }
.debug_loc 0 : { *(.debug_loc .zdebug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo .zdebug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames .zdebug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames .zdebug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames .zdebug_typenames) }
.debug_varnames 0 : { *(.debug_varnames .zdebug_varnames) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes .zdebug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges .zdebug_ranges) }
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}
==================================================
attempt to open /usr/lib/crt1.o succeeded
/usr/lib/crt1.o
attempt to open /usr/lib/crti.o succeeded
/usr/lib/crti.o
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtbegin.o succeeded
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtbegin.o
attempt to open /tmp/ccRZfhnU.o succeeded
/tmp/ccRZfhnU.o
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc.a succeeded
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open /tools/i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open usr/lib/libgcc_s.so failed
attempt to open usr/lib/libgcc_s.a failed
attempt to open /lib/libgcc_s.so failed
attempt to open /lib/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libc.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libc.a failed
attempt to open /tools/i686-pc-linux-gnu/lib/libc.so failed
attempt to open /tools/i686-pc-linux-gnu/lib/libc.a failed
attempt to open usr/lib/libc.so failed
attempt to open usr/lib/libc.a failed
attempt to open /lib/libc.so failed
attempt to open /lib/libc.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc.a succeeded
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open /tools/i686-pc-linux-gnu/lib/libgcc_s.so failed
attempt to open /tools/i686-pc-linux-gnu/lib/libgcc_s.a failed
attempt to open usr/lib/libgcc_s.so failed
attempt to open usr/lib/libgcc_s.a failed
attempt to open /lib/libgcc_s.so failed
attempt to open /lib/libgcc_s.a failed
attempt to open /tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtend.o succeeded
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/crtend.o
attempt to open /usr/lib/crtn.o succeeded
/usr/lib/crtn.o/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgcc_s
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lc
/tools/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
i didn't make a typo i triple-checked i copy paste the command i gave from the terminal...
and these are the contents of /usr/lib
As you might have seen, the file that is looked for _is_ present in /usr/lib and the output of the dummy file does _not_ look in /usr/lib but in a none existing usr/lib directory. I do assume that the ls -la /usr/lib command is given inside the chrooted environment.
Whatever the reason, something went wrong with the gcc -dumpspecs | sed ... step (only place something is done with /usr/lib).
i tried to compile glibc again but i encountered a problem concerning libc_cv_forced_unwind=no error , i didn't know what it was
so i decided to go all over the build again this time by copy pasting the commands in case of a typo error....
(Now that i'm building again i kinda understood what it was but hey! Isn't the purpose to learn ? So i'm learning... When i reach this chapter i will let you know (I'm in Chapter 5.7 now...)
Thanks for the help and i will come back to this (I hope not!!! haha)
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.