Hans van Kranenburg
2022-Jan-23 21:22 UTC
[Pkg-xen-devel] Bug#1004269: Linker segfault while building src:xen
Package: src:binutils
Version: 2.37.50.20220106-2
X-Debbugs-CC: pkg-xen-devel at lists.alioth.debian.org
Hi,
With the last binutils version src:xen starts to FTBFS.
---- >8 ---- Xen 4.16 for experimental ---- >8 ----
* Last passed build, using binutils 2.37-10.
Job overview:
https://salsa.debian.org/xen-team/debian-xen/-/pipelines/329021
Full log:
https://salsa.debian.org/xen-team/debian-xen/-/jobs/2290845/raw
* First failed build, using the same source code, and using binutils
2.37.50.20220106-2:
Job overview:
https://salsa.debian.org/xen-team/debian-xen/-/pipelines/338409
Full log:
https://salsa.debian.org/xen-team/debian-xen/-/jobs/2375744/raw
At the end of the full log, the failure can be observed:
x86_64-linux-gnu-ld -mi386pep --subsystem=10
--image-base=0xffff82d040000000 --stack=0,0 --heap=0,0
--section-alignment=0x200000 --file-alignment=0x20
--major-image-version=4 --minor-image-version=16 --major-os-version=2
--minor-os-version=0 --major-subsystem-version=2
--minor-subsystem-version=0 --no-insert-timestamp --build-id=sha1 -T
efi.lds -N prelink.o
/builds/xen-team/debian-xen/debian/output/source_dir/xen/common/symbols-dummy.o
-b pe-x86-64 efi/buildid.o -o
/builds/xen-team/debian-xen/debian/output/source_dir/xen/.xen.efi.0xffff82d040000000.0
&& :
Segmentation fault (core dumped)
The above logs are for src:xen 4.16.0-1~exp1 which we were about to
upload to experimental.
---- >8 ---- Xen 4.14 currently in unstable ---- >8 ----
I also triggered a CI run again for the current src:xen
4.14.3+32-g9de3671772-1. The same segfault happens there, and both for
the amd64 and i386 build test (i386 is no longer included for Xen 4.16).
Job overview:
https://salsa.debian.org/xen-team/debian-xen/-/pipelines/340556
Full logs:
https://salsa.debian.org/xen-team/debian-xen/-/jobs/2394079/raw
https://salsa.debian.org/xen-team/debian-xen/-/jobs/2394080/raw
---- >8 ----
So, this is what we observe. In the Debian Xen team, there's not a great
amount of knowledge about the exact internals of what happens here.
* At least, we can let you know there's a regression.
* Currently progress on our Xen 4.16 upload is blocked, and we also
can't do updates of the current Xen 4.14 packages (e.g. because of
security fixes).
* We're available to help debugging this issue if needed. We'll need
guidance, so it will mean that we'll work based on your instructions.
* After sending this report and getting the confirmation from the BTS,
I'll send a reply with the upstream Xen development mailing list in Cc.
Thanks in advance,
Hans van Kranenburg
Maximilian Engelhardt
2022-Jan-26 20:12 UTC
[Pkg-xen-devel] Bug#1004269: Linker segfault while building src:xen
Control: found -1 2.37.90.20220123-2
Control: affects -1 src:xen
Hi,
this bug is still present in my sbuild chroot (updated about an hour ago) when
compiling xen 4.14.3+32-g9de3671772-1 from unstable. I managed to run
x86_64-linux-gnu-ld inside gdb to catch the segmentation fault. Please see the
output below. I hope this is helpful to somebody tracking down the problem.
Please note for the xen case:
in
https://sources.debian.org/src/xen/4.14.3+32-g9de3671772-1/xen/arch/x86/Makefile/?hl=185#L185
the linker is checked for PE support. If it segfaults during this check the
build system will disable building some parts below in this Makefile. So in
this case it might never try to call the command from my gdb output below.
In my sbuild this check command randomly completes with return code 0 or with
a segmentation fault using the following command:
$ x86_64-linux-gnu-ld -mi386pep --subsystem=10 --image-base=0x100000000
--stack=0,0 --heap=0,0 --strip-debug --section-alignment=0x200000
--file-alignment=0x20 --major-image-version=4 --minor-image-version=14
--major-os-version=2 --minor-os-version=0 --major-subsystem-version=2
--minor-subsystem-version=0 -o efi/check.efi efi/check.o
$ gdb -batch -n -ex 'set pagination off' -ex 'run -mi386pep
--subsystem=10 --image-base=0xffff82d040000000 --stack=0,0 --heap=0,0
--strip-debug --section-alignment=0x200000 --file-alignment=0x20
--major-image-version=4 --minor-image-version=14 --major-os-version=2
--minor-os-version=0 --major-subsystem-version=2 --minor-subsystem-version=0
--no-insert-timestamp --build-id=sha1 -T efi.lds -N prelink-efi.o
efi/relocs-dummy.o
/build/xen-Hf5EN0/xen-4.14.3+32-g9de3671772/xen/common/symbols-dummy.o -b
pe-x86-64 efi/buildid.o -o
/build/xen-Hf5EN0/xen-4.14.3+32-g9de3671772/xen/.xen.efi.0xffff82d040000000.0
&& x86_64-linux-gnu-ld -mi386pep --subsystem=10
--image-base=0xffff82d080000000 --stack=0,0 --heap=0,0 --strip-debug
--section-alignment=0x200000 --file-alignment=0x20 --major-image-version=4
--minor-image-version=14 --major-os-version=2 --minor-os-version=0
--major-subsystem-version=2 --minor-subsystem-version=0 --no-insert-timestamp
--build-id=sha1 -T efi.lds -N prelink-efi.o efi/relocs-dummy.o
/build/xen-Hf5EN0/xen-4.14.3+32-g9de3671772/xen/common/symbols-dummy.o -b
pe-x86-64 efi/buildid.o -o
/build/xen-Hf5EN0/xen-4.14.3+32-g9de3671772/xen/.xen.efi.0xffff82d080000000.0'
-ex bt -ex 'bt full' --args x86_64-linux-gnu-ld
Program received signal SIGSEGV, Segmentation fault.
__strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
120 ../sysdeps/x86_64/multiarch/../strlen.S: No such file or directory.
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
#1 0x00007ffff7f6bbac in coff_write_auxent_fname.isra.0 (str=0x23527e
<error: Cannot access memory at address 0x23527e>, auxent=auxent at
entry=0x7fffffffe208, string_size_p=string_size_p at entry=0x7fffffffe2d8,
abfd=<optimized out>, abfd=<optimized out>) at
../../bfd/coffgen.c:856
#2 0x00007ffff7f3806d in coff_write_symbol (abfd=0x555555701b20,
symbol=0x7ffff7973780, native=native at entry=0x7fffffffe1c0,
written=0x7fffffffe2d0, string_size_p=0x7fffffffe2d8,
debug_string_section_p=debug_string_section_p at entry=0x0,
debug_string_size_p=0x0) at ../../bfd/coffgen.c:1043
#3 0x00007ffff7f3834e in coff_write_alien_symbol (abfd=<optimized out>,
symbol=<optimized out>, isym=0x7fffffffe310, iaux=0x7fffffffe2e0,
written=<optimized out>, string_size_p=<optimized out>,
debug_string_section_p=0x0, debug_string_size_p=0x0) at ../../bfd/coffgen.c:1154
#4 0x00007ffff7f2e74a in _bfd_coff_final_link (abfd=<optimized out>,
info=0x5555556fa3c0 <link_info>) at ../../bfd/cofflink.c:928
#5 0x000055555559b53f in ldwrite () at ../../ld/ldwrite.c:545
#6 main (argc=<optimized out>, argv=<optimized out>) at
../../ld/ldmain.c:513
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
No locals.
#1 0x00007ffff7f6bbac in coff_write_auxent_fname.isra.0 (str=0x23527e
<error: Cannot access memory at address 0x23527e>, auxent=auxent at
entry=0x7fffffffe208, string_size_p=string_size_p at entry=0x7fffffffe2d8,
abfd=<optimized out>, abfd=<optimized out>) at
../../bfd/coffgen.c:856
str_length = <optimized out>
filnmlen = <optimized out>
#2 0x00007ffff7f3806d in coff_write_symbol (abfd=0x555555701b20,
symbol=0x7ffff7973780, native=native at entry=0x7fffffffe1c0,
written=0x7fffffffe2d0, string_size_p=0x7fffffffe2d8,
debug_string_section_p=debug_string_section_p at entry=0x0,
debug_string_size_p=0x0) at ../../bfd/coffgen.c:1043
auxesz = 18
j = <optimized out>
numaux = 1
type = <optimized out>
n_sclass = <optimized out>
output_section = <optimized out>
buf = 0x5555558abf00
symesz = <optimized out>
#3 0x00007ffff7f3834e in coff_write_alien_symbol (abfd=<optimized out>,
symbol=<optimized out>, isym=0x7fffffffe310, iaux=0x7fffffffe2e0,
written=<optimized out>, string_size_p=<optimized out>,
debug_string_section_p=0x0, debug_string_size_p=0x0) at ../../bfd/coffgen.c:1154
native = 0x7fffffffe1c0
dummy = {{offset = 1, fix_value = 0, fix_tag = 0, fix_end = 0,
fix_scnlen = 0, fix_line = 0, u = {auxent = {x_sym = {x_tagndx = {l =
435610543662, p = 0x656c69662e}, x_misc = {x_lnsz = {x_lnno = 46240, x_size =
63456}, x_fsize = 140737352086688}, x_fcnary = {x_fcn = {x_lnnoptr =
140737350733261, x_endndx = {l = 4294967294, p = 0xfffffffe}}, x_ary = {x_dimen
= {3533, 63436, 32767, 0}}}, x_tvndx = 359}, x_file = {x_n = {x_fname =
".file\000\000\000\240\264\340\367\377\177\000\000\315\r\314",
<incomplete sequence \367>, x_n = {x_zeroes = 435610543662, x_offset =
140737352086688}}, x_ftype = 254 '\376'}, x_scn = {x_scnlen =
435610543662, x_nreloc = 46240, x_nlinno = 63456, x_checksum = 140737350733261,
x_associated = 65534, x_comdat = 255 '\377'}, x_tv = {x_tvfill =
435610543662, x_tvlen = 46240, x_tvran = {63456, 32767}}, x_csect = {x_scnlen =
{l = 435610543662, p = 0x656c69662e}, x_parmhash = 140737352086688, x_snhash =
3533, x_smtyp = 204 '\314', x_smclas = 247 '\367', x_stab =
4294967294, x_snstab = 359}, x_sect = {x_scnlen = 435610543662, x_nreloc =
140737352086688}}, syment = {_n = {_n_name = ".file\000\000", _n_n =
{_n_zeroes = 435610543662, _n_offset = 140737352086688}, _n_nptr = {0x656c69662e
<error: Cannot access memory at address 0x656c69662e>, 0x7ffff7e0b4a0
<_IO_file_jumps> ""}}, n_value = 140737350733261, n_scnum = -2,
n_flags = 0, n_type = 0, n_sclass = 103 'g', n_numaux = 1
'\001'}}, is_sym = true, extrap = 0x0}, {offset = 1433813712, fix_value
= 1, fix_tag = 0, fix_end = 1, fix_scnlen = 0, fix_line = 1, u = {auxent =
{x_sym = {x_tagndx = {l = 7074994964478652259, p = 0x622f6e6f6d6d6f63}, x_misc =
{x_lnsz = {x_lnno = 29801, x_size = 24941}, x_fsize = 27917082900132969},
x_fcnary = {x_fcn = {x_lnnoptr = 140737352630272, x_endndx = {l =
140737353778592, p = 0x7ffff7fa85a0 <cache_iovec>}}, x_ary = {x_dimen =
{0, 63465, 32767, 0}}}, x_tvndx = 6944}, x_file = {x_n = {x_fname =
"common/bitmap.c\000\000\000\351", <incomplete sequence \367>,
x_n = {x_zeroes = 7074994964478652259, x_offset = 27917082900132969}}, x_ftype =
160 '\240'}, x_scn = {x_scnlen = 7074994964478652259, x_nreloc = 29801,
x_nlinno = 24941, x_checksum = 140737352630272, x_associated = 34208, x_comdat =
250 '\372'}, x_tv = {x_tvfill = 7074994964478652259, x_tvlen = 29801,
x_tvran = {24941, 11888}}, x_csect = {x_scnlen = {l = 7074994964478652259, p =
0x622f6e6f6d6d6f63}, x_parmhash = 27917082900132969, x_snhash = 0, x_smtyp = 233
'\351', x_smclas = 247 '\367', x_stab = 140737353778592,
x_snstab = 6944}, x_sect = {x_scnlen = 7074994964478652259, x_nreloc =
27917082900132969}}, syment = {_n = {_n_name = "common/b", _n_n =
{_n_zeroes = 7074994964478652259, _n_offset = 27917082900132969}, _n_nptr =
{0x622f6e6f6d6d6f63 <error: Cannot access memory at address
0x622f6e6f6d6d6f63>, 0x632e70616d7469 <error: Cannot access memory at
address 0x632e70616d7469>}}, n_value = 140737352630272, n_scnum = -134576736,
n_flags = 32767, n_type = 0, n_sclass = 32 ' ', n_numaux = 27
'\033'}}, is_sym = false, extrap = 0x23527e}}
output_section = <optimized out>
link_info = <optimized out>
ret = <optimized out>
#4 0x00007ffff7f2e74a in _bfd_coff_final_link (abfd=<optimized out>,
info=0x5555556fa3c0 <link_info>) at ../../bfd/cofflink.c:928
sym = 0x7ffff7973780
isym = {_n = {_n_name = "\000\000\000\000\000\000\000", _n_n =
{_n_zeroes = 0, _n_offset = 926}, _n_nptr = {0x0, 0x39e <error: Cannot access
memory at address 0x39e>}}, n_value = 32768, n_scnum = 6, n_flags = 0, n_type
= 0, n_sclass = 3 '\003', n_numaux = 0 '\000'}
string_size = 0
written = 0
hash = <optimized out>
pos = 2314878
iaux = {x_sym = {x_tagndx = {l = 122245043283304, p = 0x6f2e64616568},
x_misc = {x_lnsz = {x_lnno = 0, x_size = 0}, x_fsize = 0}, x_fcnary = {x_fcn =
{x_lnnoptr = 0, x_endndx = {l = 0, p = 0x0}}, x_ary = {x_dimen = {0, 0, 0, 0}}},
x_tvndx = 0}, x_file = {x_n = {x_fname = "head.o", '\000'
<repeats 13 times>, x_n = {x_zeroes = 122245043283304, x_offset = 0}},
x_ftype = 0 '\000'}, x_scn = {x_scnlen = 122245043283304, x_nreloc = 0,
x_nlinno = 0, x_checksum = 0, x_associated = 0, x_comdat = 0 '\000'},
x_tv = {x_tvfill = 122245043283304, x_tvlen = 0, x_tvran = {0, 0}}, x_csect =
{x_scnlen = {l = 122245043283304, p = 0x6f2e64616568}, x_parmhash = 0, x_snhash
= 0, x_smtyp = 0 '\000', x_smclas = 0 '\000', x_stab = 0,
x_snstab = 0}, x_sect = {x_scnlen = 122245043283304, x_nreloc = 0}}
indx = <optimized out>
rewrite = false
i = 233
symesz = <optimized out>
flaginfo = {info = 0x5555556fa3c0 <link_info>, output_bfd =
0x555555701b20, failed = 32, global_to_static = false, strtab = 0x555555801490,
section_info = 0x0, last_file_index = 0, last_file = {_n = {_n_name =
".file\000\000", _n_n = {_n_zeroes = 435610543662, _n_offset = 0},
_n_nptr = {0x656c69662e <error: Cannot access memory at address
0x656c69662e>, 0x0}}, n_value = 0, n_scnum = -2, n_flags = 0, n_type = 0,
n_sclass = 103 'g', n_numaux = 1 '\001'}, last_bf_index = -1,
last_bf = {x_sym = {x_tagndx = {l = 93824992519136, p = 0x55555559a3e0
<build_link_order>}, x_misc = {x_lnsz = {x_lnno = 41135, x_size = 63466},
x_fsize = 140737352736943}, x_fcnary = {x_fcn = {x_lnnoptr = 93824993998944,
x_endndx = {l = 140737352736974, p = 0x7ffff7eaa0ce
<bfd_new_link_order+14>}}, x_ary = {x_dimen = {14432, 21872, 21845, 0}}},
x_tvndx = 33048}, x_file = {x_n = {x_fname =
"\340\243YUUU\000\000\257\240\352\367\377\177\000\000`8pU", x_n =
{x_zeroes = 93824992519136, x_offset = 140737352736943}}, x_ftype = 206
'\316'}, x_scn = {x_scnlen = 93824992519136, x_nreloc = 41135, x_nlinno
= 63466, x_checksum = 93824993998944, x_associated = 41166, x_comdat = 234
'\352'}, x_tv = {x_tvfill = 93824992519136, x_tvlen = 41135, x_tvran =
{63466, 32767}}, x_csect = {x_scnlen = {l = 93824992519136, p = 0x55555559a3e0
<build_link_order>}, x_parmhash = 140737352736943, x_snhash = 14432,
x_smtyp = 112 'p', x_smclas = 85 'U', x_stab = 140737352736974,
x_snstab = 33048}, x_sect = {x_scnlen = 93824992519136, x_nreloc =
140737352736943}}, debug_merge = {root = {table = 0x5555558bcae0, newfunc =
0x7ffff7f2cb00 <_bfd_coff_debug_merge_hash_newfunc>, memory =
0x5555557fe4e0, size = 4051, count = 0, entsize = 32, frozen = 0}},
internal_syms = 0x555555701a10, sec_ptrs = 0x5555557fe7e0, sym_indices =
0x555555801890, outsyms = 0x5555557642d0 "", linenos = 0x5555558ac640
"\020\237\340\367\377\177", contents = 0x7ffff7715010 "",
external_relocs = 0x5555558c5990 "p\223\022", internal_relocs =
0x7ffff7620010}
debug_merge_allocated = true
long_section_names = <optimized out>
o = <optimized out>
p = <optimized out>
max_sym_count = <optimized out>
max_lineno_count = <optimized out>
max_reloc_count = <optimized out>
max_output_reloc_count = <optimized out>
max_contents_size = <optimized out>
rel_filepos = <optimized out>
relsz = <optimized out>
line_filepos = <optimized out>
linesz = <optimized out>
sub = 0x555555703f30
external_relocs = 0x0
strbuf = "\000\000\000"
amt = <optimized out>
error_return = <optimized out>
#5 0x000055555559b53f in ldwrite () at ../../ld/ldwrite.c:545
No locals.
#6 main (argc=<optimized out>, argv=<optimized out>) at
../../ld/ldmain.c:513
emulation = <optimized out>
start_time = 1382
Thanks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL:
<http://alioth-lists.debian.net/pipermail/pkg-xen-devel/attachments/20220126/a9b6ba92/attachment.sig>