This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] libc.so: Replace nscd_hash.os with libc-nscd_hash.os [BZ #22459]


On 11/20/2017 02:02 PM, H.J. Lu wrote:
On Mon, Nov 20, 2017 at 1:02 AM, Florian Weimer <fweimer@redhat.com> wrote:
On 11/19/2017 08:44 PM, H.J. Lu wrote:

nscd_hash.os is needed both libc.so as well as nscd.  Since nscd_hash.os
is compiled as the part of nscd, when -fstack-protector-all is used,
nscd_hash.os calls __stack_chk_fail via PLT, which leads to

FAIL: elf/check-localplt
Extra PLT reference: libc.so: __stack_chk_fail

This patch replaces nscd_hash.os with libc-nscd_hash.os in libc_pic.a
to avoid calling __stack_chk_fail via PLT inside of libc.so.

Any comments?


Considering that nscd/nscd_hash.c is itself another #include wrapper, I
think it is time to clean this up.

The hash function algorithm is already part of the public ABI because the
nscd mappings require it, so we might as well export it, which is
implemented in the attached patch.

Do we need to export it in GLIBC_2.27 space?  I prefer GLIBC_PRIVATE.
> Otherwise, it looks good to me.

The libnsl symbol isn't GLIBC_PRIVATE, but perhaps should have been.

I'm somewhat in favor of exporting this because independent nscd implementations will need to implement the exact same hash function.

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]