From: Nicholas Piggin <npiggin@gmail.com>
To: Rich Felker <dalias@libc.org>
Cc: Nicholas Piggin via Libc-alpha <libc-alpha@sourceware.org>,
libc-dev@lists.llvm.org, linuxppc-dev@lists.ozlabs.org,
musl@lists.openwall.com, Szabolcs Nagy <nsz@port70.net>
Subject: Re: [musl] Powerpc Linux 'scv' system call ABI proposal take 2
Date: Mon, 20 Apr 2020 12:08:36 +1000 [thread overview]
Message-ID: <1587348046.pwnfbo52iq.astroid@bobo.none> (raw)
In-Reply-To: <20200420012904.GY11469@brightrain.aerifal.cx>
Excerpts from Rich Felker's message of April 20, 2020 11:29 am:
> On Mon, Apr 20, 2020 at 10:27:58AM +1000, Nicholas Piggin wrote:
>> Excerpts from Szabolcs Nagy's message of April 16, 2020 7:58 pm:
>> > * Nicholas Piggin via Libc-alpha <libc-alpha@sourceware.org> [2020-04-16 10:16:54 +1000]:
>> >> Well it would have to test HWCAP and patch in or branch to two
>> >> completely different sequences including register save/restores yes.
>> >> You could have the same asm and matching clobbers to put the sequence
>> >> inline and then you could patch the one sc/scv instruction I suppose.
>> >
>> > how would that 'patch' work?
>> >
>> > there are many reasons why you don't
>> > want libc to write its .text
>>
>> I guess I don't know what I'm talking about when it comes to libraries.
>> Shame if there is no good way to load-time patch libc. It's orthogonal
>> to the scv selection though -- if you don't patch you have to
>> conditional or indirect branch however you implement it.
>
> Patched pages cannot be shared. The whole design of PIC and shared
> libraries is that the code("text")/rodata is immutable and shared and
> that only a minimal amount of data, packed tightly together (the GOT)
> has to exist per-instance.
Yeah the pages which were patched couldn't be shared across exec, which
is a significant downside, unless you could group all patch sites into
their own section and similarly pack it together (which has issues of
being out of line).
>
> Also, allowing patching of executable pages is generally frowned upon
> these days because W^X is a desirable hardening property.
Right, it would want be write-protected after being patched.
Thanks,
Nick
next prev parent reply other threads:[~2020-04-20 2:09 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-15 21:45 Nicholas Piggin
2020-04-15 22:55 ` [musl] " Rich Felker
2020-04-16 0:16 ` Nicholas Piggin
2020-04-16 0:48 ` Rich Felker
2020-04-16 2:24 ` Nicholas Piggin
2020-04-16 2:35 ` Rich Felker
2020-04-16 2:53 ` Nicholas Piggin
2020-04-16 3:03 ` Rich Felker
2020-04-16 3:41 ` Nicholas Piggin
2020-04-16 20:18 ` Florian Weimer
2020-04-16 9:58 ` Szabolcs Nagy
2020-04-20 0:27 ` Nicholas Piggin
2020-04-20 1:29 ` Rich Felker
2020-04-20 2:08 ` Nicholas Piggin [this message]
2020-04-20 21:17 ` Szabolcs Nagy
2020-04-21 9:57 ` Florian Weimer
2020-04-16 15:21 ` Jeffrey Walton
2020-04-16 15:40 ` Rich Felker
2020-04-16 4:48 ` Florian Weimer
2020-04-16 15:35 ` Rich Felker
2020-04-16 16:42 ` Florian Weimer
2020-04-16 16:52 ` Rich Felker
2020-04-16 18:12 ` Florian Weimer
2020-04-16 23:02 ` Segher Boessenkool
2020-04-17 0:34 ` Rich Felker
2020-04-17 1:48 ` Segher Boessenkool
2020-04-17 8:34 ` Florian Weimer
2020-04-16 14:16 ` Adhemerval Zanella
2020-04-16 15:37 ` Rich Felker
2020-04-16 17:50 ` Adhemerval Zanella
2020-04-16 17:59 ` Rich Felker
2020-04-16 18:18 ` Adhemerval Zanella
2020-04-16 18:31 ` Rich Felker
2020-04-16 18:44 ` Rich Felker
2020-04-16 18:52 ` Adhemerval Zanella
2020-04-20 0:46 ` Nicholas Piggin
2020-04-20 1:10 ` Nicholas Piggin
2020-04-20 1:34 ` Rich Felker
2020-04-20 2:32 ` Nicholas Piggin
2020-04-20 4:09 ` Rich Felker
2020-04-20 4:31 ` Nicholas Piggin
2020-04-20 17:27 ` Rich Felker
2020-04-22 6:18 ` Nicholas Piggin
2020-04-22 6:29 ` Nicholas Piggin
2020-04-23 2:36 ` Rich Felker
2020-04-23 12:13 ` Adhemerval Zanella
2020-04-23 16:18 ` Rich Felker
2020-04-23 16:35 ` Adhemerval Zanella
2020-04-23 16:43 ` Rich Felker
2020-04-23 17:15 ` Adhemerval Zanella
2020-04-23 17:42 ` Rich Felker
2020-04-25 3:40 ` Nicholas Piggin
2020-04-25 4:52 ` Rich Felker
2020-04-25 3:30 ` Nicholas Piggin
2020-04-21 12:28 ` David Laight
2020-04-21 14:39 ` Rich Felker
2020-04-21 15:00 ` Adhemerval Zanella
2020-04-21 15:31 ` David Laight
2020-04-22 6:54 ` Nicholas Piggin
2020-04-22 7:15 ` [musl] " Florian Weimer
2020-04-22 7:31 ` Nicholas Piggin
2020-04-22 8:11 ` Florian Weimer
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=1587348046.pwnfbo52iq.astroid@bobo.none \
--to=npiggin@gmail.com \
--cc=dalias@libc.org \
--cc=libc-alpha@sourceware.org \
--cc=libc-dev@lists.llvm.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=musl@lists.openwall.com \
--cc=nsz@port70.net \
/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.
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 read-only IMAP folder(s) and NNTP newsgroup(s).