aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nptl/Banner2
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/Makefile11
-rw-r--r--nptl/version.c40
4 files changed, 56 insertions, 3 deletions
diff --git a/nptl/Banner b/nptl/Banner
index 558f6d83aa..aaca2401a2 100644
--- a/nptl/Banner
+++ b/nptl/Banner
@@ -1 +1 @@
-nptl 0.15 by Ulrich Drepper
+NPTL 0.16 by Ulrich Drepper
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 20e4c7ac35..a3692f77a4 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2003-01-13 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile (libpthread-routines): Add version. Add rules to build
+ version.os and banner.h.
+ * version.c: New file.
+
2003-01-13 Jakub Jelinek <jakub@redhat.com>
* pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
diff --git a/nptl/Makefile b/nptl/Makefile
index 487e58ac33..e106172e54 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -32,7 +32,7 @@ routines = alloca_cutoff forward libc-lowlevellock libc-lowlevelmutex \
libc-cancellation
shared-only-routines = forward
-libpthread-routines = init events \
+libpthread-routines = init events version \
pthread_create pthread_exit pthread_detach \
pthread_join pthread_tryjoin pthread_timedjoin \
pthread_self pthread_equal pthread_yield \
@@ -109,7 +109,7 @@ libpthread-routines = init events \
herrno res pt-allocrtsig \
pthread_kill_other_threads
-libpthread-shared-only-routines = pt-allocrtsig
+libpthread-shared-only-routines = version pt-allocrtsig
libpthread-nonshared = pthread_atfork
@@ -263,6 +263,13 @@ $(objpfx)crti.o: $(objpfx)crti.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
generated += crti.S defs.h pt-initfini.s
+
+$(objpfx)version.os: $(objpfx)banner.h
+$(objpfx)banner.h: Banner
+ sed 's/\(.*\)/"\1\\n"/' $< > $@
+generated += banner.h
+# Give libpthread.so an entry point and make it directly runnable itself.
+LDFLAGS-pthread.so += -e __nptl_main
endif
ifeq (no,$(cross-compiling))
diff --git a/nptl/version.c b/nptl/version.c
new file mode 100644
index 0000000000..0f12c6aa18
--- /dev/null
+++ b/nptl/version.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <unistd.h>
+#include <sysdep.h>
+
+
+static const char banner[] =
+#include "banner.h"
+"Copyright (C) 2003 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";
+
+
+extern void __nptl_main (void) __attribute__ ((noreturn));
+void
+__nptl_main (void)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (write, err, 3, STDOUT_FILENO, banner, sizeof banner - 1);
+
+ _exit (0);
+}