Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Tue, 28 Apr 2015 23:22:42 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] force LTO to be disabled when compiling dlstart.lo

On Tue, Apr 28, 2015 at 10:23:37PM +0300, Alexander Monakov wrote:
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703
> > 
> > I have an interesting solution to this problem: get rid of the
> > top-level asm and instead put it inside the function with 2 additional
> > lines:
> > 
> > - At the top, "jmp 9f" or equivalent.
> > - At the bottom, "9:".
> > 
> > Now the asm can't be separated from the function because it's part of
> > it. Would that work?
> 
> I think it would avoid the LTO partitioning issue, but it would also be a step
> back in terms of solving their original problem, which was to avoid duplicates
> of syscall entry sequence being potentially emitted.

Syscall entry sequences? I don't follow. Even if you meant "ELF entry
points" which sounds more plausible I'm still not sure how duplicates
would be emitted. I guess the concern is that if it's in a function
the asm block, even if it's volatile, could be emitted in more than
one place (e.g. a ptr-is-aligned branch and a ptr-is-misaligned
branch); it just has to execute the right number of times. So yes, if
this is what you mean, then I agree my solution is problematic and
probably best avoided.

> As another GCC
> discussion mentions, they started using toplevel asm there after they found
> they couldn't instruct Clang not do duplicate that function, unlike they could,
> with function attributes, tame GCC.

Interesting.

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.