summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog43
-rw-r--r--crypt/Makefile8
-rw-r--r--crypt/md5.h6
-rw-r--r--elf/Makefile5
-rw-r--r--elf/elf.h13
-rw-r--r--elf/tst-auditmod1.c8
-rw-r--r--fedora/branch.mk4
-rw-r--r--include/features.h11
-rw-r--r--malloc/arena.c3
-rw-r--r--nss/getent.c4
-rw-r--r--sysdeps/generic/ldsodefs.h6
-rw-r--r--sysdeps/generic/tst-audit.h11
-rw-r--r--sysdeps/unix/sysv/linux/readonly-area.c15
13 files changed, 113 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 852a87608e..1b40e42fe4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+2005-10-10 Ulrich Drepper <drepper@redhat.com>
+
+ * malloc/arena.c (ptmalloc_unlock_all2): Reset atfork_recursive_cntr.
+
+2005-10-08 Jakub Jelinek <jakub@redhat.com>
+
+ * nss/getent.c (hosts_keys): Pass INADDRSZ as size rather
+ than IN6ADDRSZ to AF_INET gethostbyaddr.
+
+2005-10-07 Roland McGrath <roland@redhat.com>
+
+ [BZ #1438]
+ * include/features.h: Make tests on _FORTIFY_SOURCE and __OPTIMIZE__
+ friendly to -Wundef.
+ (__USE_FORTIFY_LEVEL): Always define it, to 0 if nothing else.
+
+2005-10-06 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/readonly-area.c: Allow fopen to fail because
+ the file does not exist.
+
+2005-10-05 Simon Josefsson <jas@extundo.com>
+
+ [BZ #1423]
+ * crypt/md5.h (MD5_DIGEST_SIZE, MD5_BLOCK_SIZE): New macros.
+
+2005-10-05 Roland McGrath <roland@redhat.com>
+
+ * crypt/Makefile (distribute): Remove duplicate defn.
+
+ * sysdeps/generic/ldsodefs.h (struct audit_ifaces):
+ Use ARCH_PLTENTER_MEMBERS and ARCH_PLTEXIT_MEMBERS macros if defined.
+ * elf/tst-auditmod1.c: Include <tst-audit.h> to define more
+ architecture-specific code.
+ * sysdeps/generic/tst-audit.h: New file.
+ * elf/Makefile (distribute): Add it.
+
+2005-10-05 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * elf/elf.h (R_ARM_TLS_DTPMOD32, R_ARM_TLS_DTPOFF32,
+ R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
+ R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros.
+
2005-10-03 Jakub Jelinek <jakub@redhat.com>
* nscd/selinux.c (audit_init): Print error string in the failure
diff --git a/crypt/Makefile b/crypt/Makefile
index af088f1e6c..575221a1c5 100644
--- a/crypt/Makefile
+++ b/crypt/Makefile
@@ -23,17 +23,15 @@ subdir := crypt
headers := crypt.h
-distribute := md5.h
-
extra-libs := libcrypt
extra-libs-others := $(extra-libs)
libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util
-tests = cert md5test md5c-test
+tests := cert md5test md5c-test
-distribute = ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \
- Banner md5.h
+distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \
+ Banner md5.h
include ../Makeconfig
diff --git a/crypt/md5.h b/crypt/md5.h
index 35088f29fe..b474a84b8b 100644
--- a/crypt/md5.h
+++ b/crypt/md5.h
@@ -1,6 +1,7 @@
/* Declaration of functions and data types used for MD5 sum computing
library functions.
- Copyright (C) 1995-1997,1999,2000,2001,2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-1997,1999,2000,2001,2004,2005
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,6 +28,9 @@
# include <limits.h>
#endif
+#define MD5_DIGEST_SIZE 16
+#define MD5_BLOCK_SIZE 64
+
/* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
diff --git a/elf/Makefile b/elf/Makefile
index a563f0190f..123b448ff1 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -86,11 +86,12 @@ distribute := rtld-Rules \
tst-deep1mod1.c tst-deep1mod2.c tst-deep1mod3.c \
unload3mod1.c unload3mod2.c unload3mod3.c unload3mod4.c \
unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \
- unload6mod1.c unload6mod2.c unload6mod3.c tst-auditmod1.c \
+ unload6mod1.c unload6mod2.c unload6mod3.c \
+ tst-auditmod1.c tst-audit.sh \
order2mod1.c order2mod2.c order2mod3.c order2mod4.c \
tst-stackguard1.c tst-stackguard1-static.c \
tst-array5.c tst-array5-static.c tst-array5dep.c \
- tst-array5.exp
+ tst-array5.exp
CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
diff --git a/elf/elf.h b/elf/elf.h
index ef9e27cccc..5f44f1b65a 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2174,6 +2174,9 @@ typedef Elf32_Addr Elf32_Conflict;
#define R_ARM_THM_SWI8 14
#define R_ARM_XPC25 15
#define R_ARM_THM_XPC22 16
+#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */
+#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */
+#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */
#define R_ARM_COPY 20 /* Copy symbol at runtime */
#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
@@ -2192,6 +2195,16 @@ typedef Elf32_Addr Elf32_Conflict;
#define R_ARM_GNU_VTINHERIT 101
#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
#define R_ARM_THM_PC9 103 /* thumb conditional branch */
+#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic
+ thread local data */
+#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic
+ thread local data */
+#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS
+ block */
+#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of
+ static TLS block offset */
+#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static
+ TLS block */
#define R_ARM_RXPC25 249
#define R_ARM_RSBREL32 250
#define R_ARM_THM_RPC22 251
diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
index 73d341d72b..e9f6fe9c4d 100644
--- a/elf/tst-auditmod1.c
+++ b/elf/tst-auditmod1.c
@@ -192,8 +192,12 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
# define La_regs La_sparc64_regs
# define La_retval La_sparc64_retval
# define int_retval lrv_reg[0]
-#else
-# error "architecture specific code needed"
+#endif
+
+#include <tst-audit.h>
+#if (!defined (pltenter) || !defined (pltexit) || !defined (La_regs) \
+ || !defined (La_retval) || !defined (int_retval))
+# error "architecture specific code needed in sysdeps/CPU/tls-audit.h or here"
#endif
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 60d6344425..2dad60072f 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
glibc-base := HEAD
DIST_BRANCH := devel
COLLECTION := dist-fc4
-fedora-sync-date := 2005-10-03 20:40 UTC
-fedora-sync-tag := fedora-glibc-20051003T2040
+fedora-sync-date := 2005-10-10 14:17 UTC
+fedora-sync-tag := fedora-glibc-20051010T1417
diff --git a/include/features.h b/include/features.h
index cb0844ddda..3288bb501c 100644
--- a/include/features.h
+++ b/include/features.h
@@ -262,18 +262,21 @@
# define __USE_REENTRANT 1
#endif
-#if _FORTIFY_SOURCE > 0 && __OPTIMIZE__ > 0 \
+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
+ && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 \
&& (__GNUC_PREREQ (4, 1) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (4, 0)) \
|| (defined __GNUC_RH_RELEASE__ && __GNUC_PREREQ (3, 4) \
&& __GNUC_MINOR__ == 4 \
&& (__GNUC_PATCHLEVEL__ > 2 \
|| (__GNUC_PATCHLEVEL__ == 2 && __GNUC_RH_RELEASE__ >= 8))))
-# if _FORTIFY_SOURCE == 1
-# define __USE_FORTIFY_LEVEL 1
-# elif _FORTIFY_SOURCE > 1
+# if _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
+# else
+# define __USE_FORTIFY_LEVEL 1
# endif
+#else
+# define __USE_FORTIFY_LEVEL 0
#endif
/* We do support the IEC 559 math functionality, real and complex. */
diff --git a/malloc/arena.c b/malloc/arena.c
index a844392a6b..039d70ff18 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -277,7 +277,7 @@ ptmalloc_unlock_all (void)
#ifdef __linux__
-/* In LinuxThreads, unlocking a mutex in the child process after a
+/* In NPTL, unlocking a mutex in the child process after a
fork() is currently unsafe, whereas re-initializing it is safe and
does not leak resources. Therefore, a special atfork handler is
installed for the child. */
@@ -300,6 +300,7 @@ ptmalloc_unlock_all2 (void)
if(ar_ptr == &main_arena) break;
}
mutex_init(&list_lock);
+ atfork_recursive_cntr = 0;
}
#else
diff --git a/nss/getent.c b/nss/getent.c
index 02bba39752..489420ef79 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -280,9 +280,9 @@ hosts_keys (int number, char *key[])
char addr[IN6ADDRSZ];
if (inet_pton (AF_INET6, key[i], &addr) > 0)
- host = gethostbyaddr (addr, sizeof (addr), AF_INET6);
+ host = gethostbyaddr (addr, IN6ADDRSZ, AF_INET6);
else if (inet_pton (AF_INET, key[i], &addr) > 0)
- host = gethostbyaddr (addr, sizeof (addr), AF_INET);
+ host = gethostbyaddr (addr, INADDRSZ, AF_INET);
else if ((host = gethostbyname2 (key[i], AF_INET6)) == NULL)
host = gethostbyname2 (key[i], AF_INET);
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 191ae4d4fb..b8333ed79c 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -292,6 +292,9 @@ struct audit_ifaces
const struct La_sparc64_regs *,
unsigned int *, const char *name,
long int *framesizep);
+#ifdef ARCH_PLTENTER_MEMBERS
+ ARCH_PLTENTER_MEMBERS;
+#endif
};
union
{
@@ -360,6 +363,9 @@ struct audit_ifaces
const struct La_sparc32_regs *,
struct La_sparc32_retval *,
const char *);
+#ifdef ARCH_PLTEXIT_MEMBERS
+ ARCH_PLTEXIT_MEMBERS;
+#endif
};
unsigned int (*objclose) (uintptr_t *);
diff --git a/sysdeps/generic/tst-audit.h b/sysdeps/generic/tst-audit.h
new file mode 100644
index 0000000000..402e7c0665
--- /dev/null
+++ b/sysdeps/generic/tst-audit.h
@@ -0,0 +1,11 @@
+/* Some machines have these macros defined in elf/tst-auditmod1.c directly.
+ New machines can supply a tst-audit.h to define these macros used there.
+
+
+# define pltenter la_CPU_gnu_pltenter
+# define pltexit la_CPU_gnu_pltexit
+# define La_regs La_CPU_regs
+# define La_retval La_CPU_retval
+# define int_retval lrv_RETVALREG
+
+*/
diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c
index 3db90023bf..29224d98b9 100644
--- a/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/sysdeps/unix/sysv/linux/readonly-area.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <errno.h>
#include <stdint.h>
#include <stdio.h>
#include <stdio_ext.h>
@@ -33,10 +34,14 @@ __readonly_area (const char *ptr, size_t size)
FILE *fp = fopen ("/proc/self/maps", "rc");
if (fp == NULL)
- /* We don't know. Returning 1 here means that programs using %n
- and -D_FORTIFY_SOURCE=2 will work even when /proc is not mounted,
- but will allow %n even in writable areas. */
- return 1;
+ {
+ if (errno == ENOENT)
+ /* It is the system administrator's choice to not have /proc
+ available to this process (e.g., because it runs in a chroot
+ environment. Don't fail in this case. */
+ return 1;
+ return -1;
+ }
/* We need no locking. */
__fsetlocking (fp, FSETLOCKING_BYCALLER);