aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-04-22 15:53:59 +0000
committerUlrich Drepper <drepper@redhat.com>2008-04-22 15:53:59 +0000
commit7eb5e6c9bdea71dc831862c5956d0bab08d92125 (patch)
tree93fcee1b23d1814aed6b7f87e3b80cf863e9a1df
parent0073dd2d49c6c8a2a4b82f71b2172fe361dac26a (diff)
downloadglibc-7eb5e6c9bdea71dc831862c5956d0bab08d92125.tar
glibc-7eb5e6c9bdea71dc831862c5956d0bab08d92125.tar.gz
glibc-7eb5e6c9bdea71dc831862c5956d0bab08d92125.tar.bz2
glibc-7eb5e6c9bdea71dc831862c5956d0bab08d92125.zip
* nscd/Makefile (nscd-cflags): Set back to -fpie.
* nscd/nscd.h (mem_in_flight): Add attribute_tls_model_ie. * nscd/connections.c (mem_in_flight): Likewise. * nscd/nscd.h (dbs): Make hidden. * sysdeps/unix/sysv/linux/times.c (__times): Fix check for EFAULT. Avoid returning -1, return 0 instead.
-rw-r--r--ChangeLog11
-rw-r--r--nscd/Makefile3
-rw-r--r--nscd/connections.c2
-rw-r--r--nscd/nscd.h4
-rw-r--r--sysdeps/unix/sysv/linux/times.c7
5 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 6355676a5c..c4b96f5977 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ * nscd/Makefile (nscd-cflags): Set back to -fpie.
+ * nscd/nscd.h (mem_in_flight): Add attribute_tls_model_ie.
+ * nscd/connections.c (mem_in_flight): Likewise.
+
+ * nscd/nscd.h (dbs): Make hidden.
+
+ * sysdeps/unix/sysv/linux/times.c (__times): Fix check for EFAULT.
+ Avoid returning -1, return 0 instead.
+
2008-04-19 Ulrich Drepper <drepper@redhat.com>
* resolv/res_mkquery.c (__res_nopt): Use NS_PUT16 instead of ns_put16.
diff --git a/nscd/Makefile b/nscd/Makefile
index 74df824769..51badea201 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -90,8 +90,7 @@ CFLAGS-nscd_initgroups.c = -fexceptions
nscd-cflags = -DIS_IN_nscd=1 -D_FORTIFY_SOURCE=2
ifeq (yesyes,$(have-fpie)$(build-shared))
-#nscd-cflags += -fpie
-nscd-cflags += -fpic
+nscd-cflags += -fpie
endif
ifeq (yes,$(have-ssp))
nscd-cflags += -fstack-protector
diff --git a/nscd/connections.c b/nscd/connections.c
index 64c82cb892..15148bdf3d 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -226,7 +226,7 @@ static int sock;
unsigned long int client_queued;
/* Data structure for recording in-flight memory allocation. */
-__thread struct mem_in_flight mem_in_flight;
+__thread struct mem_in_flight mem_in_flight attribute_tls_model_ie;
/* Global list of the mem_in_flight variables of all the threads. */
struct mem_in_flight *mem_in_flight_list;
diff --git a/nscd/nscd.h b/nscd/nscd.h
index cbea8e1a96..66813e7480 100644
--- a/nscd/nscd.h
+++ b/nscd/nscd.h
@@ -130,7 +130,7 @@ struct database_dyn
/* Global variables. */
-extern struct database_dyn dbs[lastdb];
+extern struct database_dyn dbs[lastdb] attribute_hidden;
extern const char *const dbnames[lastdb];
extern const char *const serv2str[LASTREQ];
@@ -201,7 +201,7 @@ extern __thread struct mem_in_flight
} block[IDX_last];
struct mem_in_flight *next;
-} mem_in_flight;
+} mem_in_flight attribute_tls_model_ie;
/* Global list of the mem_in_flight variables of all the threads. */
extern struct mem_in_flight *mem_in_flight_list;
diff --git a/sysdeps/unix/sysv/linux/times.c b/sysdeps/unix/sysv/linux/times.c
index 2759683b0b..42d265dc87 100644
--- a/sysdeps/unix/sysv/linux/times.c
+++ b/sysdeps/unix/sysv/linux/times.c
@@ -27,7 +27,7 @@ __times (struct tms *buf)
INTERNAL_SYSCALL_DECL (err);
clock_t ret = INTERNAL_SYSCALL (times, err, 1, buf);
if (INTERNAL_SYSCALL_ERROR_P (ret, err)
- && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == -EFAULT, 0))
+ && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == EFAULT, 0))
{
/* This might be an error or not. For architectures which have
no separate return value and error indicators we cannot
@@ -49,6 +49,11 @@ __times (struct tms *buf)
return an EFAULT error. Return the value given by the kernel. */
}
+ /* Return value (clock_t) -1 signals an error, but if there wasn't any,
+ return the following value. */
+ if (ret == (clock_t) -1)
+ return (clock_t) 0;
+
return ret;
}
weak_alias (__times, times)