[PATCH 1/2] Add private_function for private functions within glibc
Florian Weimer
fweimer@redhat.com
Thu Jun 22 13:40:00 GMT 2017
On 06/17/2017 03:59 PM, H.J. Lu wrote:
> Here parameters are passed to _dl_init in registers. I want to minimize
> changes to avoid any potential issues.
Well, as a rule of thumb, if we do something that breaks our own code,
it is pretty much guaranteed to wreak havoc across the board (because
our test coverage is somewhat poor).
I see a lot of use of regparm (3). For example:
$ echo '#include <Qt/qchar.h>' | g++ -m32 -E -x c++ - | grep regparm
static Category __attribute__((regparm(3))) category(uint ucs4);
static Category __attribute__((regparm(3))) category(ushort ucs2);
static Direction __attribute__((regparm(3))) direction(uint ucs4);
static Direction __attribute__((regparm(3))) direction(ushort ucs2);
static Joining __attribute__((regparm(3))) joining(uint ucs4);
â¦
I think these calls actually cross DSO boundaries.
So I really think you should make the use of %ecx conditional on whether
shadow stacks are enabled.
Thanks,
Florian
More information about the Libc-alpha
mailing list