Re: LFS build of File-5.45 problem stops on compilation of seccomp.c

"dave kohler" ([email protected] via lfs-support Mailing List) <[email protected]>
Newsgroups gmane.linux.lfs.support
Message-ID <CAE62XYoyE=T46AqmY9BB6UtQtKyXyc=pXOCH2KCMSi1wiR-ZJA@mail.gmail.com>
sorry that last gcc command did not run properly. I will send you the
correct output shortly


On Wed, Feb 19, 2025 at 3:31 PM dave kohler <[email protected]> wrote:

> From my .bashrc in the lfs home directory I have set the
> LFS=/mnt/lfs
> LFS_TGT=$(uname -m)-lfs-linux-gnu
>
> thus $LFS_TGT is not defined to the system root, but $LFS is.
>
> lfs:/mnt/lfs$ env
> PWD=/mnt/lfs
> HOME=/home/lfs
> MAKEFLAGS=-j12
> TERM=xterm-256color
> SHLVL=1
> PS1=\u:\w\$
> LFS_TGT=x86_64-lfs-linux-gnu
> LC_ALL=POSIX
> LFS=/mnt/lfs
> CONFIG_SITE=/mnt/lfs/user/share/config.site
> PATH=/mnt/lfs/tools/bin:/usr/bin
> OLDPWD=/home/lfs
> _=/usr/bin/env
> lfs:/mnt/lfs$
>
> Here is the linker /gcc info you requested:
> lfs:/mnt/lfs$ echo "int main(){}" | gcc -x c - -Wl,--verbose
> GNU ld (GNU Binutils) 2.44
>  Supported emulations:
>   elf_x86_64
>   elf32_x86_64
>   elf_i386
>   elf_iamcu
>   i386pep
>   i386pe
>   elf64bpf
> using internal linker script:
> ==================================================
> /* Script for -pie -z combreloc -z separate-code */
> /* Copyright (C) 2014-2025 Free Software Foundation, Inc.
>   Copying and distribution of this script, with or without modification,
>   are permitted in any medium without royalty provided the copyright
>   notice and this notice are preserved.  */
> OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
> OUTPUT_ARCH(i386:x86-64)
> ENTRY(_start)
> SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64"); SEARCH_DIR("/usr/lib");
> SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/usr
> /x86_64-pc-linux-gnu/lib");
> SECTIONS
> {
>  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0));
>  . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
>  /* Place the build-id as close to the ELF headers as possible.  This
>     maximises the chance the build-id will be present in core files,
>     which GDB can then use to locate the associated debuginfo file.  */
>  .note.gnu.build-id  : { *(.note.gnu.build-id) }
>  .interp         : { *(.interp) }
>  .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) }
>  .rela.dyn       :
>    {
>      *(.rela.init)
>      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
>      *(.rela.fini)
>      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
>      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
>      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
>      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
>      *(.rela.ctors)
>      *(.rela.dtors)
>      *(.rela.got)
>      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
>      *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
>      *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
>      *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
>      *(.rela.ifunc)
>    }
>  .rela.plt       :
>    {
>      *(.rela.plt)
>      *(.rela.iplt)
>    }
>  .relr.dyn : { *(.relr.dyn) }
>  /* Align the text segment.  */
>  . = ALIGN(CONSTANT (MAXPAGESIZE));
>  /* Start of the executable code region.  */
>  .init           :
>  {
>    KEEP (*(SORT_NONE(.init)))
>  }
>  .plt            : { *(.plt) *(.iplt) }
> .plt.got        : { *(.plt.got) }
> .plt.sec        : { *(.plt.sec) }
>  .text           :
>  {
>    *(.text.unlikely .text.*_unlikely .text.unlikely.*)
>    *(.text.exit .text.exit.*)
>    *(.text.startup .text.startup.*)
>    *(.text.hot .text.hot.*)
>    *(SORT(.text.sorted.*))
>    *(.text .stub .text.* .gnu.linkonce.t.*)
>    /* .gnu.warning sections are handled specially by elf.em.  */
>    *(.gnu.warning)
>  }
>  .fini           :
>  {
>    KEEP (*(SORT_NONE(.fini)))
>  }
>  PROVIDE (__etext = .);
>  PROVIDE (_etext = .);
>  PROVIDE (etext = .);
>  /* Align the text segment.  */
>  . = ALIGN(CONSTANT (MAXPAGESIZE));
>  /* Start of the Read Only Data region.  */
>  /* Adjust the address for the rodata segment.  We want to adjust up to
>     the same address within the page on the next page up.  */
>  . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. &
> (CONSTANT (MAXPAGESIZE) - 1)));
>  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
>  .rodata1        : { *(.rodata1) }
>  .eh_frame_hdr   : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*)
> }
>  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }
>  .sframe         : ONLY_IF_RO { *(.sframe) *(.sframe.*) }
>  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table
> .gcc_except_table.*) }
>  .gnu_extab   : ONLY_IF_RO { *(.gnu_extab*) }
>  /* These sections are generated by the Sun/Oracle C++ compiler.  */
>  .exception_ranges   : ONLY_IF_RO { *(.exception_ranges*) }
>  /* Various note sections.  Placed here so that they are always included
>     in the read-only segment and not treated as orphan sections.  The
>     current orphan handling algorithm does place note sections after R/O
>     data, but this is not guaranteed to always be the case.  */
>  .note.build-id :      { *(.note.build-id) }
>  .note.GNU-stack :     { *(.note.GNU-stack) }
>  .note.gnu-property :  { *(.note.gnu-property) }
>  .note.ABI-tag :       { *(.note.ABI-tag) }
>  .note.package :       { *(.note.package) }
>  .note.dlopen :        { *(.note.dlopen) }
>  .note.netbsd.ident :  { *(.note.netbsd.ident) }
>  .note.openbsd.ident : { *(.note.openbsd.ident) }
>  /* Start of the Read Write Data region.  */
>  /* Adjust the address for the data segment.  We want to adjust up to
>     the same address within the page on the next page up.  */
>  . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT
> (COMMONPAGESIZE));
>  /* Exception handling.  */
>  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) }
>  .sframe         : ONLY_IF_RW { *(.sframe) *(.sframe.*) }
>  .gnu_extab      : ONLY_IF_RW { *(.gnu_extab) }
>  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table
> .gcc_except_table.*) }
>  .exception_ranges   : ONLY_IF_RW { *(.exception_ranges*) }
>  /* Thread Local Storage sections.  */
>  .tdata          :
>   {
>     PROVIDE_HIDDEN (__tdata_start = .);
>     *(.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_BY_INIT_PRIORITY(.init_array.*)
> SORT_BY_INIT_PRIORITY(.ctors.*)))
>    KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o
> *crtend?.o ) .ctors))
>    PROVIDE_HIDDEN (__init_array_end = .);
>  }
>  .fini_array    :
>  {
>    PROVIDE_HIDDEN (__fini_array_start = .);
>    KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*)
> SORT_BY_INIT_PRIORITY(.dtors.*)))
>    KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o
> *crtend?.o ) .dtors))
>    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 .data.rel.ro.* .gnu.linkonce
> .d.rel.ro.*) }
>  .dynamic        : { *(.dynamic) }
>  .got            : { *(.got) *(.igot) }
>  . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
>  .got.plt        : { *(.got.plt) *(.igot.plt) }
>  .data           :
>  {
>    *(.data .data.* .gnu.linkonce.d.*)
>    SORT(CONSTRUCTORS)
>  }
>  .data1          : { *(.data1) }
>  _edata = .;
>  PROVIDE (edata = .);
>  . = ALIGN(ALIGNOF(NEXT_SECTION));
>  __bss_start = .;
>  .bss            :
>  {
>    *(.dynbss)
>    *(.bss .bss.* .gnu.linkonce.b.*)
>    *(COMMON)
>    /* Align here to ensure that in the common case of there only being one
>       type of .bss section, the 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 do not
>       pad the .data section.  */
>      . = ALIGN(. != 0 ? 64 / 8 : 1);
>  }
>    .lbss   :
>    {
>      *(.dynlbss)
>      *(.lbss .lbss.* .gnu.linkonce.lb.*)
>      *(LARGE_COMMON)
>    }
>  . = ALIGN(64 / 8);
>  /* Start of the Large Data region.  */
>  . = SEGMENT_START("ldata-segment", .);
>  .lrodata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) -
> 1)) :
>  {
>    *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
>  }
>  .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) -
> 1)) :
>  {
>    *(.ldata .ldata.* .gnu.linkonce.l.*)
>      . = ALIGN(. != 0 ? 64 / 8 : 1);
>  }
>  . = ALIGN(64 / 8);
>  _end = .;
>  PROVIDE (end = .);
>  . = DATA_SEGMENT_END (.);
>  /* Start of the Tiny Data region.  */
>  /* 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 (INFO) : { *(.comment); LINKER_VERSION; }
>  .gnu.build.attributes : { *(.gnu.build.attributes
> .gnu.build.attributes.*) }
>  /* 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) }
>  .debug_sfnames  0 : { *(.debug_sfnames) }
>  /* DWARF 1.1 and DWARF 2.  */
>  .debug_aranges  0 : { *(.debug_aranges) }
>  .debug_pubnames 0 : { *(.debug_pubnames) }
>  /* DWARF 2.  */
>  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
>  .debug_abbrev   0 : { *(.debug_abbrev) }
>  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
>  .debug_frame    0 : { *(.debug_frame) }
>  .debug_str      0 : { *(.debug_str) }
>  .debug_loc      0 : { *(.debug_loc) }
>  .debug_macinfo  0 : { *(.debug_macinfo) }
>  /* SGI/MIPS DWARF 2 extensions.  */
>  .debug_weaknames 0 : { *(.debug_weaknames) }
>  .debug_funcnames 0 : { *(.debug_funcnames) }
>  .debug_typenames 0 : { *(.debug_typenames) }
>  .debug_varnames  0 : { *(.debug_varnames) }
>  /* DWARF 3.  */
>  .debug_pubtypes 0 : { *(.debug_pubtypes) }
>  .debug_ranges   0 : { *(.debug_ranges) }
>  /* DWARF 5.  */
>  .debug_addr     0 : { *(.debug_addr) }
>  .debug_line_str 0 : { *(.debug_line_str) }
>  .debug_loclists 0 : { *(.debug_loclists) }
>  .debug_macro    0 : { *(.debug_macro) }
>  .debug_names    0 : { *(.debug_names) }
>  .debug_rnglists 0 : { *(.debug_rnglists) }
>  .debug_str_offsets 0 : { *(.debug_str_offsets) }
>  .debug_sup      0 : { *(.debug_sup) }
>  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
>  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*)
> *(.gnu_object_only) }
> }
>
>
> ==================================================
> /usr/bin/ld: mode elf_x86_64
> /usr/bin/ld: cannot open output file a.out: Permission denied
> collect2: error: ld returned 1 exit status
> lfs:/mnt/lfs$
>
>
>
>
> On Wed, Feb 19, 2025 at 1:59 PM Xi Ruoyao <[email protected]> wrote:
>
>> On Wed, 2025-02-19 at 13:29 -0600, dave kohler wrote:
>> > Here is the config log for the failed configure step. thanks for being
>> > patient.
>>
>> So things goes wrong as:
>>
>> configure:16156: checking for seccomp_init in -lseccomp
>> configure:16185: x86_64-lfs-linux-gnu-gcc -o conftest -g -O2   conftest.c
>> -lseccomp  -lzstd -llzma -lbz2 -lz  >&5
>> configure:16185: $? = 0
>> configure:16197: result: yes
>>
>> This shouldn't happen.  The cross compiler shouldn't be able to find the
>> host libraries.
>>
>> I can see two possibilities here, either there are some environment
>> variables affecting the linker behavior, or $LFS_TGT-ld isn't configured
>> with a proper sysroot.
>>
>> So can you paste the output of the two commands (running them as the lfs
>> user):
>>
>>     env
>>
>> and
>>
>>     echo "int main(){}" | gcc -x c - -Wl,--verbose
>>
>> --
>> Xi Ruoyao <[email protected]>
>> School of Aerospace Science and Technology, Xidian University
>>
>

-- 
http://lists.linuxfromscratch.org/sympa/info/lfs-support
Unsubscribe: See the above information page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.