|
Message-ID: <CABitn4PfbuvmuoXOXgX9H7opwabj=2auGtdPFJdxLo4d8HYB=A@mail.gmail.com> Date: Tue, 12 Jan 2021 00:46:40 +0530 From: Sagar Tiwari <fctorial@...il.com> To: Rich Felker <dalias@...c.org> Cc: musl@...ts.openwall.com Subject: Re: printf segfaults on recent musl versions I'm assembling a file with clang and linking it to custom compiled musl with ld. This is the project I'm using: https://drive.google.com/file/d/1RiKZTf_nJUak14fz7kSXbh7egJuDthDk/view?usp=sharing musl 1.1.8 is the last version that works with this project. I used clang 11.0.0 to compile both musl and this project. On 11/01/2021, Rich Felker <dalias@...c.org> wrote: > On Mon, Jan 11, 2021 at 10:31:21PM +0530, Sagar Tiwari wrote: >> Hi, >> >> Apologies if this isn't a support forum for musl. I couldn't find any >> such portal online. >> >> I'm trying to compile a program with musl libc. Dynamically linked >> version of this program works fine, but the statically linked version >> segfaults whenever `printf` is invoked. This is how a debugging >> session looks like: >> >> <pre> >> $ gdb out/sm >> GNU gdb (GDB) 9.2 >> Copyright (C) 2020 Free Software Foundation, Inc. >> License GPLv3+: GNU GPL version 3 or later >> <http://gnu.org/licenses/gpl.html> >> This is free software: you are free to change and redistribute it. >> There is NO WARRANTY, to the extent permitted by law. >> Type "show copying" and "show warranty" for details. >> This GDB was configured as "x86_64-unknown-linux-gnu". >> Type "show configuration" for configuration details. >> For bug reporting instructions, please see: >> <http://www.gnu.org/software/gdb/bugs/>. >> Find the GDB manual and other documentation resources online at: >> <http://www.gnu.org/software/gdb/documentation/>. >> >> For help, type "help". >> Type "apropos word" to search for commands related to "word"... >> Reading symbols from out/sm... >> (gdb) b printf >> Breakpoint 1 at 0x100ac: file src/stdio/printf.c, line 5. >> (gdb) r >> Starting program: /home/fctorial/src/pgs/c/out/sm >> >> Breakpoint 1, printf (fmt=0x1004f <msg1> "hello world from printf\n") >> at src/stdio/printf.c:5 >> 5 { >> (gdb) n >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x000000000001010a in printf (fmt=0x1004f <msg1> "hello world from >> printf\n") at src/stdio/printf.c:5 >> 5 { >> (gdb) quit >> A debugging session is active. >> >> Inferior 1 [process 25984] will be killed. >> >> Quit anyway? (y or n) EOF [assumed Y] >> >> </pre> >> >> This issue appears when linking with recent musl versions (within an >> year). 1.0.0 doesn't have this issue. I can call other functions like >> 'rand', 'strlen' without any issue. `printf` and `puts` are >> segfaulting. > > Can you elaborate on how you compiled/linked (using musl-gcc wrapper? > mcm-built or distro-provided toolchain or one you built yourself? > etc.) > > Judging from the very low address in gdb output, my guess is that you > have a broken toolchain that's trying to link static pie without using > the right link options or start files. > > Rich >
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.