From 9fbdeb410d7d7e7383b20b71da4dd4bd481a8808 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 9 Jan 2005 20:23:44 +0000 Subject: [PATCH] Update. * elf/dl-runtime.c: Inlcude . * elf/Makefile (headers): Add bits/link.h. 2005-01-09 Andreas Schwab * elf/rtld.c (dl_main): Create main_map with __RTLD_OPENEXEC. 2005-01-09 Andreas Jaeger * time/strptime_l.c (__strptime_internal): Add braces to avoid warning. * sysdeps/x86_64/bits/link.h: Use vector_size for GCC 4.0. * elf/rtld.c (dl_main): Call _dl_add_to_slotinfo only if USE_TLS. 2005-01-08 Jakub Jelinek * elf/Makefile (generated): Add tst-pie1{,.out,.o}. 2005-01-09 Ulrich Drepper --- ChangeLog | 23 +++++++++++++++++++++++ elf/Makefile | 2 +- elf/dl-runtime.c | 1 + elf/rtld.c | 8 ++++++-- sysdeps/x86_64/bits/link.h | 5 +++++ time/strptime_l.c | 14 ++++++++------ 6 files changed, 44 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 927e117..7f124f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,28 @@ 2005-01-09 Ulrich Drepper + * elf/dl-runtime.c: Inlcude . + + * elf/Makefile (headers): Add bits/link.h. + +2005-01-09 Andreas Schwab + + * elf/rtld.c (dl_main): Create main_map with __RTLD_OPENEXEC. + +2005-01-09 Andreas Jaeger + + * time/strptime_l.c (__strptime_internal): Add braces to avoid + warning. + + * sysdeps/x86_64/bits/link.h: Use vector_size for GCC 4.0. + + * elf/rtld.c (dl_main): Call _dl_add_to_slotinfo only if USE_TLS. + +2005-01-08 Jakub Jelinek + + * elf/Makefile (generated): Add tst-pie1{,.out,.o}. + +2005-01-09 Ulrich Drepper + * elf/dl-fini.c (_dl_fini): Call destructors of audit DSOs after those of all the regular objects. diff --git a/elf/Makefile b/elf/Makefile index ddc20f4..0983d6c 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -20,7 +20,7 @@ subdir := elf -headers = elf.h bits/elfclass.h link.h +headers = elf.h bits/elfclass.h link.h bits/link.h routines = $(dl-routines) dl-support dl-iteratephdr \ dl-addr enbl-secure dl-profstub \ dl-origin dl-libc dl-sym dl-tsd diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c index 0fa8d55..ab177b8 100644 --- a/elf/dl-runtime.c +++ b/elf/dl-runtime.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "dynamic-link.h" diff --git a/elf/rtld.c b/elf/rtld.c index 77903bf..f124689 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -995,8 +995,8 @@ of this helper program; chances are you did not intend to run this program.\n\ { /* Create a link_map for the executable itself. This will be what dlopen on "" returns. */ - main_map - = _dl_new_object ((char *) "", "", lt_executable, NULL, 0, LM_ID_BASE); + main_map = _dl_new_object ((char *) "", "", lt_executable, NULL, + __RTLD_OPENEXEC, LM_ID_BASE); assert (main_map != NULL); assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded); main_map->l_phdr = phdr; @@ -2117,9 +2117,11 @@ ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n", if (l->l_relro_size) _dl_protect_relro (l); +#ifdef USE_TLS /* Add object to slot information data if necessasy. */ if (l->l_tls_blocksize != 0 && tls_init_tp_called) _dl_add_to_slotinfo (l); +#endif } _dl_sysdep_start_cleanup (); @@ -2167,9 +2169,11 @@ ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n", _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy), consider_profiling); +#ifdef USE_TLS /* Add object to slot information data if necessasy. */ if (l->l_tls_blocksize != 0 && tls_init_tp_called) _dl_add_to_slotinfo (l); +#endif l = l->l_prev; } diff --git a/sysdeps/x86_64/bits/link.h b/sysdeps/x86_64/bits/link.h index 87c17eb..1423356 100644 --- a/sysdeps/x86_64/bits/link.h +++ b/sysdeps/x86_64/bits/link.h @@ -63,7 +63,12 @@ __END_DECLS #else /* Registers for entry into PLT on x86-64. */ +# if __GNUC_PREREQ (4,0) +typedef float La_x86_64_xmm __attribute__ ((vector_size (16))); +# else typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__))); +# endif + typedef struct La_x86_64_regs { uint64_t lr_rdx; diff --git a/time/strptime_l.c b/time/strptime_l.c index df98099..7deaef8 100644 --- a/time/strptime_l.c +++ b/time/strptime_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 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 @@ -539,11 +539,13 @@ __strptime_internal (rp, fmt, tm, decided, era_cnt LOCALE_PARAM) } #endif if (!match_string (HERE_AM_STR, rp)) - if (match_string (HERE_PM_STR, rp)) - is_pm = 1; - else - return NULL; - break; + { + if (match_string (HERE_PM_STR, rp)) + is_pm = 1; + else + return NULL; + break; + } case 'r': #ifdef _NL_CURRENT if (*decided != raw) -- 2.7.4