[COMMITTED] NPTL: Clean up gratuitous Linuxism in libpthread.so entry point.
Commit Message
There was never any reason either to microoptimize or to avoid possibly
setting errno, in __nptl_main. It's only ever called when one runs
libpthread.so as a command. While I was there, I noticed the copyright
year had not been updated in a long time.
Thanks,
Roland
* nptl/version.c (__nptl_main): Use normal __write rather than
INTERNAL_SYSCALL.
(banner): Update copyright years.
Comments
On Mon, 20 Oct 2014, Roland McGrath wrote:
> * nptl/version.c (__nptl_main): Use normal __write rather than
> INTERNAL_SYSCALL.
> (banner): Update copyright years.
I'm seeing elf/check-localplt failing on x86_64 with
Extra PLT reference: libpthread.so: __write
(I haven't checked that this patch is responsible, but it seems likely;
__write only uses libc_hidden_proto in include/unistd.h so an internal
symbol name won't be used here, and __write is exported from libpthread).
On 10/21/2014 02:44 AM, Joseph S. Myers wrote:
> On Mon, 20 Oct 2014, Roland McGrath wrote:
>
>> * nptl/version.c (__nptl_main): Use normal __write rather than
>> INTERNAL_SYSCALL.
>> (banner): Update copyright years.
>
> I'm seeing elf/check-localplt failing on x86_64 with
>
> Extra PLT reference: libpthread.so: __write
Same on s390/s390x
>
> (I haven't checked that this patch is responsible, but it seems likely;
> __write only uses libc_hidden_proto in include/unistd.h so an internal
> symbol name won't be used here, and __write is exported from libpthread).
>
This failure was introduced with this commit.
@@ -1,4 +1,5 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
+/* Entry point for libpthread DSO.
+ Copyright (C) 2002-2014 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -22,7 +23,7 @@
static const char banner[] =
#include "banner.h"
-"Copyright (C) 2006 Free Software Foundation, Inc.\n\
+"Copyright (C) 2006-2014 Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions.\n\
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
PARTICULAR PURPOSE.\n"
@@ -32,13 +33,11 @@ PARTICULAR PURPOSE.\n"
;
-extern void __nptl_main (void) __attribute__ ((noreturn));
+/* This is made the e_entry of libpthread.so by LDFLAGS-pthread.so. */
+__attribute__ ((noreturn))
void
__nptl_main (void)
{
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (write, err, 3, STDOUT_FILENO, (const char *) banner,
- sizeof banner - 1);
-
+ __write (STDOUT_FILENO, (const char *) banner, sizeof banner - 1);
_exit (0);
}