Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 24 Dec 2019 10:03:31 -0500
From: Rich Felker <dalias@...c.org>
To: Youren Shen <shenyouren@...il.com>
Cc: musl@...ts.openwall.com
Subject: Re: [BUG] Force to use a dynamic linker in musl-clang wapper
 cause a crash for static-pie c++ programs.

On Tue, Dec 24, 2019 at 10:38:49PM +0800, Youren Shen wrote:
> Hey, there,
> Recently I'm trying to build a non-gnu toolchain with musl, clang, llvm,
> libc++, compiler-rt. While static-pie feature is very useful in our
> project, musl-clang force to link a dynamic linker into the binary. This
> behavior will cause a crash in c++ programs with compiler-rt and libc++.
> For more details and reproduction of this bug, you can read my previous
> email to llvm-dev mail lists.[1]
> I spend a few days to find the reason -- in function _dlstart_c, the
> program will get a "base" of relocation in /lib/ld-musl-x86_64.so.1, which
> is not right when it tries to relocate .rel.dyn section in the binary.
> Overall, the static-pie program does not need a dynamic linker at all. So
> maybe we should remove this argument in wrapper when static-pie is enabled.
> 
> Thank you very much.
> 
> [1]. https://groups.google.com/forum/#!msg/llvm-dev/XPrSPqD2zjM/YtH6Fi2YAgAJ

I don't think the wrappers (gcc or clang one) have been updated with
logic for static pie since it was added, and I'm not sure how easy it
is to add. I'd welcome patches for review, though.

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.