about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h4
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h4
-rw-r--r--nscd/Makefile59
-rw-r--r--nscd/TODO3
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysconf.c14
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysconf.c6
9 files changed, 82 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index b51f6ba5c4..6edd7c3c84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2004-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Return 200112L
+	for _SC_CPUTIME or _SC_THREAD_CPUTIME.
+
+	* nscd/Makefile (nscd-cflags): Set to -DIS_IN_nscd=1, plus
+	-fpie if building PIE.
+	(CFLAGS-*.c): Use it.
+
+	* nscd/Makefile (relro-LDFLAGS): Add -Wl,-z,now if have-z-relro.
+	($(objpfx)nscd): Add $(relro-LDFLAGS).
+
+	* sysdeps/unix/sysv/linux/i386/sysconf.c: Include hp-timing.h.
+	(__sysconf): Return -1 for _SC_CPUTIME or _SC_THREAD_CPUTIME if
+	!HP_TIMING_AVAIL.
+
+2004-10-05  Ulrich Drepper  <drepper@redhat.com>
+
+	* nscd/Makefile (distribute): Remove TODO.
+	* nscd/TODO: Removed.
+
 2004-10-04  Ulrich Drepper  <drepper@redhat.com>
 
 	* nscd/gai.c: Define __no_netlink_support if NEED_NETLINK is
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index a7bb38a5fe..a4a4222f7b 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
+	_POSIX_THREAD_CPUTIME): Define to 0.
+
 2004-10-04  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Set _POSIX_CPUTIME
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
index b45d121f64..d4be569168 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
@@ -106,10 +106,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME	200112L
+#define _POSIX_CPUTIME	0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME	200112L
+#define _POSIX_THREAD_CPUTIME	0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 49c4a94286..6e0cdc6d63 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
+	_POSIX_THREAD_CPUTIME): Define to 0.
+
 2004-10-04  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
index 7563de8ad2..2b5a3e6db8 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
@@ -103,10 +103,10 @@
 #define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks supported.  */
-#define _POSIX_CPUTIME 200112L
+#define _POSIX_CPUTIME 0
 
 /* We support the clock also in threads.  */
-#define _POSIX_THREAD_CPUTIME  200112L
+#define _POSIX_THREAD_CPUTIME  0
 
 /* GNU libc provides regular expression handling.  */
 #define _POSIX_REGEXP	1
diff --git a/nscd/Makefile b/nscd/Makefile
index 16d67bd1d4..70a35198c2 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -58,7 +58,7 @@ endif
 
 distribute := nscd.h nscd-client.h dbg_log.h \
 	      $(addsuffix .c, $(filter-out xmalloc, $(nscd-modules))) \
-	      nscd_nischeck.c TODO nscd.conf nscd.init nscd_proto.h \
+	      nscd_nischeck.c nscd.conf nscd.init nscd_proto.h \
 	      nscd-types.h
 
 include ../Rules
@@ -69,34 +69,43 @@ CFLAGS-nscd_gethst_r.c = -fexceptions
 CFLAGS-nscd_getai.c = -fexceptions
 CFLAGS-nscd_initgroups.c = -fexceptions
 
+nscd-cflags = -DIS_IN_nscd=1
 ifeq (yesyes,$(have-fpie)$(build-shared))
-CFLAGS-nscd.c += -fpie
-CFLAGS-connections.c += -fpie
-CFLAGS-pwdcache.c += -fpie
-CFLAGS-getpwnam_r.c += -fpie
-CFLAGS-getpwuid_r.c += -fpie
-CFLAGS-grpcache.c += -fpie
-CFLAGS-getgrnam_r.c += -fpie
-CFLAGS-getgrgid_r.c += -fpie
-CFLAGS-hstcache.c += -fpie
-CFLAGS-gethstbyad_r.c += -fpie
-CFLAGS-gethstbynm2_r.c += -fpie
-CFLAGS-dbg_log.c += -fpie
-CFLAGS-nscd_conf.c += -fpie
-CFLAGS-nscd_stat.c += -fpie
-CFLAGS-cache.c += -fpie
-CFLAGS-xmalloc.c += -fpie
-CFLAGS-xstrdup.c += -fpie
-CFLAGS-mem.c += -fpie
-CFLAGS-nscd_setup_thread.c += -fpie
-CFLAGS-aicache.c += -fpie
-CFLAGS-selinux.c += -fpie
-CFLAGS-initgrcache.c += -fpie
-CFLAGS-gai.c += -fpie
+nscd-cflags += -fpie
+endif
+
+CFLAGS-nscd.c += $(nscd-cflags)
+CFLAGS-connections.c += $(nscd-cflags)
+CFLAGS-pwdcache.c += $(nscd-cflags)
+CFLAGS-getpwnam_r.c += $(nscd-cflags)
+CFLAGS-getpwuid_r.c += $(nscd-cflags)
+CFLAGS-grpcache.c += $(nscd-cflags)
+CFLAGS-getgrnam_r.c += $(nscd-cflags)
+CFLAGS-getgrgid_r.c += $(nscd-cflags)
+CFLAGS-hstcache.c += $(nscd-cflags)
+CFLAGS-gethstbyad_r.c += $(nscd-cflags)
+CFLAGS-gethstbynm2_r.c += $(nscd-cflags)
+CFLAGS-dbg_log.c += $(nscd-cflags)
+CFLAGS-nscd_conf.c += $(nscd-cflags)
+CFLAGS-nscd_stat.c += $(nscd-cflags)
+CFLAGS-cache.c += $(nscd-cflags)
+CFLAGS-xmalloc.c += $(nscd-cflags)
+CFLAGS-xstrdup.c += $(nscd-cflags)
+CFLAGS-mem.c += $(nscd-cflags)
+CFLAGS-nscd_setup_thread.c += $(nscd-cflags)
+CFLAGS-aicache.c += $(nscd-cflags)
+CFLAGS-selinux.c += $(nscd-cflags)
+CFLAGS-initgrcache.c += $(nscd-cflags)
+CFLAGS-gai.c += $(nscd-cflags)
+
+ifeq (yesyes,$(have-fpie)$(build-shared))
+ifeq (yes,$(have-z-relro))
+relro-LDFLAGS += -Wl,-z,now
+endif
 
 $(objpfx)nscd: $(addprefix $(objpfx),$(nscd-modules:=.o))
 	$(LINK.o) -pie -Wl,-O1 \
-	  $(sysdep-LDFLAGS) $(config-LDFLAGS) \
+	  $(sysdep-LDFLAGS) $(config-LDFLAGS) $(relro-LDFLAGS) \
 	  $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
 	  $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
 	  $(LDFLAGS) $(LDFLAGS-$(@F)) \
diff --git a/nscd/TODO b/nscd/TODO
deleted file mode 100644
index 0ae9d1845c..0000000000
--- a/nscd/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-
-* If we have reached the max. # of process, close accept socket.
-  ! THIS COULD CAUSE THE KERNEL TO HANG ! BE CAREFUL !
diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c
index 8a9ab61912..eae849b277 100644
--- a/sysdeps/unix/sysv/linux/i386/sysconf.c
+++ b/sysdeps/unix/sysv/linux/i386/sysconf.c
@@ -21,7 +21,7 @@
 #include <stdbool.h>
 #include <stdlib.h>
 #include <unistd.h>
-
+#include <hp-timing.h>
 
 static long int linux_sysconf (int name);
 
@@ -347,13 +347,13 @@ __sysconf (int name)
 {
   if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME)
     {
-      /* Check dynamically.  */
-      int ac = i386_i486_test ();
-
-      /* Only i386 and i486 have no TSC.  */
+#if HP_TIMING_AVAIL
       // XXX We can add  here test for machines which cannot support a
-      // XXX usabel TSC.
-      return ac == 0 || (ac & (1 << 21)) == 0 ? -1 : 200112L;
+      // XXX usable TSC.
+      return 200112L;
+#else
+      return -1;
+#endif
     }
 
   /* All the remainder, except the cache information, is handled in
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysconf.c b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
index 87f2c451f3..407fd46bc3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sysconf.c
@@ -279,6 +279,12 @@ handle_amd (int name)
 long int
 __sysconf (int name)
 {
+  if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME)
+    {
+      /* XXX Test whether TSC is usable.  */
+      return 200112L;
+    }
+
   /* We only handle the cache information here (for now).  */
   if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE)
     return linux_sysconf (name);