mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Patrick Oppenlander <patrick.oppenlander@gmail.com>
To: musl@lists.openwall.com
Subject: [musl] armv7-m musl 1.2.0 toolchain crash
Date: Mon, 16 Mar 2020 16:41:17 +1100	[thread overview]
Message-ID: <CAEg67GkemNP6M6T1Fr1EcQpubgbgcXT6c5oKDKcEVAGVjXmkgw@mail.gmail.com> (raw)

After the update to musl 1.2.0 (1.1.24 was fine) ld crashes when
trying to link a C++ executable. C executables successfully link. The
toolchain was built as at commit
5086175f29021e3bebb7d9f5d83c4a796d96ebbd of musl-cross-make with the
following configuration:

TARGET = armv7m-linux-musleabihf
GCC_CONFIG += --with-cpu=cortex-m7  # easier than arch/fpu/tune
GCC_CONFIG += --enable-languages=c,c++
GCC_CONFIG += --disable-libquadmath --disable-decimal-float
GCC_CONFIG += --enable-default-pie
GCC_CONFIG += --enable-cxx-flags="-ffunction-sections"
MUSL_CONFIG += --enable-debug
COMMON_CONFIG += CFLAGS="-g0 -Os" CXXFLAGS="-g0 -Os"
COMMON_CONFIG += --disable-nls
COMMON_CONFIG += --with-debug-prefix-map=\$(CURDIR)=

Host compiler is arch linux gcc 9.3.0-1.

This results in a toolchain which does the following:
% cat test.c
int main() { return 0; }
% armv7m-linux-musleabi-gcc test.c
% armv7m-linux-musleabi-g++ test.c
collect2: fatal error: ld terminated with signal 11 [Segmentation
fault], core dumped
compilation terminated.

The crash is a null pointer dereference in ld here (sym_hashes is 0):

(gdb) bt
#0  cmse_scan (input_bfd=0x555555e3a110, htab=0x55555578a260,
out_attr=0x5555557885c0, sym_hashes=0x0,
cmse_stub_created=0x7fffffffd4c8)
    at ../../src_binutils/bfd/elf32-arm.c:6016
#1  0x00005555555de1e7 in elf32_arm_size_stubs
(output_bfd=0x555555788100, stub_bfd=0x55555579c8c0,
info=0x55555574c4a0 <link_info>, group_size=1,
    add_stub_section=0x5555555a9ecd <elf32_arm_add_stub_section>,
layout_sections_again=0x5555555aa049 <gldarm_layout_sections_again>)
    at ../../src_binutils/bfd/elf32-arm.c:6542
#2  0x00005555555aa43b in gldarmelf_linux_eabi_after_allocation () at
earmelf_linux_eabi.c:481
#3  0x00005555555a2351 in ldemul_after_allocation () at
../../src_binutils/ld/ldemul.c:76
#4  0x0000555555597a6d in lang_process () at ../../src_binutils/ld/ldlang.c:7693
#5  0x000055555559bce5 in main (argc=35, argv=0x7fffffffd8b8) at
../../src_binutils/ld/ldmain.c:441

Looks like a change in musl have exposed an ld bug.

Happy to provide more debugging if it helps.

Kind regards,

Patrick

             reply	other threads:[~2020-03-16  5:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-16  5:41 Patrick Oppenlander [this message]
2020-03-16 17:54 ` Rich Felker
2020-03-17  0:40   ` Patrick Oppenlander
2020-03-18 19:10 ` Szabolcs Nagy
2020-03-18 22:43   ` Patrick Oppenlander

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEg67GkemNP6M6T1Fr1EcQpubgbgcXT6c5oKDKcEVAGVjXmkgw@mail.gmail.com \
    --to=patrick.oppenlander@gmail.com \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).