From 965cba048c978a2841c537383ed3408259c918f3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 17 Mar 2007 17:09:13 +0000 Subject: * elf/dl-open.c (dl_open_worker): Declare l in 2 different smaller scopes. * elf/dl-dst.h (DL_DST_REQ_STATIC): Add l as macro argument. (DL_DST_REQUIRED): Adjust user. * include/dlfcn.h (struct link_map): New forward decl. * inet/getnameinfo.c: Include stddef.h. (getnameinfo): Use offsetof. * time/tst-mktime2.c (do_test): Don't rely on signed wrap. * stdio-common/vfprintf.c (_itoa): Undef before redefining. * string/strerror_l.c: Include stdlib.h. --- ChangeLog | 16 ++++++++++++++++ configure | 39 ++++++++++++++++++++++++++++++++++++++- elf/dl-dst.h | 9 +++++---- elf/dl-open.c | 5 +++-- include/dlfcn.h | 2 ++ inet/getnameinfo.c | 3 ++- nptl/ChangeLog | 6 ++++++ stdio-common/vfprintf.c | 3 ++- string/strerror_l.c | 1 + time/tst-mktime2.c | 5 +++-- 10 files changed, 78 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2ee48ddff..0da1fc37e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ 2007-03-16 Jakub Jelinek + * elf/dl-open.c (dl_open_worker): Declare l in 2 different + smaller scopes. + * elf/dl-dst.h (DL_DST_REQ_STATIC): Add l as macro argument. + (DL_DST_REQUIRED): Adjust user. + + * include/dlfcn.h (struct link_map): New forward decl. + + * inet/getnameinfo.c: Include stddef.h. + (getnameinfo): Use offsetof. + + * time/tst-mktime2.c (do_test): Don't rely on signed wrap. + + * stdio-common/vfprintf.c (_itoa): Undef before redefining. + + * string/strerror_l.c: Include stdlib.h. + * configure.in (libc_cv_gnu89_inline): Test for -fgnu89-inline. * config.make.in (gnu89-inline-CFLAGS): New variable. * Makeconfig (CFLAGS): Use $(gnu89-inline-CFLAGS) together with diff --git a/configure b/configure index 0f00394f03..dbdf0d5d67 100755 --- a/configure +++ b/configure @@ -313,7 +313,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_cc_with_libunwind libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie libc_cv_hashstyle fno_unit_at_a_time libc_cv_ssp libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_libcap have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_cc_with_libunwind libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie libc_cv_hashstyle fno_unit_at_a_time libc_cv_ssp libc_cv_gnu89_inline libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_libcap have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -5959,6 +5959,42 @@ echo "$as_me:$LINENO: result: $libc_cv_ssp" >&5 echo "${ECHO_T}$libc_cv_ssp" >&6 +echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5 +echo $ECHO_N "checking for -fgnu89-inline... $ECHO_C" >&6 +if test "${libc_cv_gnu89_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat > conftest.c <&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } +then + libc_cv_gnu89_inline=yes +else + libc_cv_gnu89_inline=no +fi +rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_gnu89_inline" >&5 +echo "${ECHO_T}$libc_cv_gnu89_inline" >&6 +if test $libc_cv_gnu89_inline = yes; then + libc_cv_gnu89_inline=-fgnu89-inline +else + libc_cv_gnu89_inline= +fi + + if test $elf != yes; then echo "$as_me:$LINENO: checking for .init and .fini sections" >&5 echo $ECHO_N "checking for .init and .fini sections... $ECHO_C" >&6 @@ -8517,6 +8553,7 @@ s,@libc_cv_fpie@,$libc_cv_fpie,;t t s,@libc_cv_hashstyle@,$libc_cv_hashstyle,;t t s,@fno_unit_at_a_time@,$fno_unit_at_a_time,;t t s,@libc_cv_ssp@,$libc_cv_ssp,;t t +s,@libc_cv_gnu89_inline@,$libc_cv_gnu89_inline,;t t s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t s,@no_whole_archive@,$no_whole_archive,;t t s,@exceptions@,$exceptions,;t t diff --git a/elf/dl-dst.h b/elf/dl-dst.h index 83d16bdb0e..175b7cd195 100644 --- a/elf/dl-dst.h +++ b/elf/dl-dst.h @@ -1,5 +1,6 @@ /* Handling of dynamic sring tokens. - Copyright (C) 1999,2001,2002,2003,2004,2006 Free Software Foundation, Inc. + Copyright (C) 1999,2001,2002,2003,2004,2006,2007 + 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 @@ -50,7 +51,7 @@ \ First get the origin string if it is not available yet. \ This can only happen for the map of the executable. */ \ - DL_DST_REQ_STATIC \ + DL_DST_REQ_STATIC (l) \ if ((l)->l_origin == NULL) \ { \ assert ((l)->l_name[0] == '\0'); \ @@ -68,9 +69,9 @@ __len; }) #ifdef SHARED -# define DL_DST_REQ_STATIC /* nothing */ +# define DL_DST_REQ_STATIC(l) /* nothing */ #else -# define DL_DST_REQ_STATIC \ +# define DL_DST_REQ_STATIC(l) \ if ((l) == NULL) \ { \ const char *origin = _dl_get_origin (); \ diff --git a/elf/dl-open.c b/elf/dl-open.c index c997521126..259372178b 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -161,7 +161,7 @@ dl_open_worker (void *a) struct dl_open_args *args = a; const char *file = args->file; int mode = args->mode; - struct link_map *new, *l; + struct link_map *new; int lazy; unsigned int i; bool any_tls = false; @@ -186,6 +186,7 @@ dl_open_worker (void *a) By default we assume this is the main application. */ call_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded; + struct link_map *l; for (Lmid_t ns = 0; ns < DL_NNS; ++ns) for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next) if (caller_dlopen >= (const void *) l->l_map_start @@ -325,7 +326,7 @@ dl_open_worker (void *a) /* Relocate the objects loaded. We do this in reverse order so that copy relocs of earlier objects overwrite the data written by later objects. */ - l = new; + struct link_map *l = new; while (l->l_next) l = l->l_next; while (1) diff --git a/include/dlfcn.h b/include/dlfcn.h index 79c8f7d31b..a67426df3a 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -45,6 +45,8 @@ extern int _dl_addr (const void *address, Dl_info *info, libc_hidden_proto (_dl_addr) #endif +struct link_map; + /* Close an object previously opened by _dl_open. */ extern void _dl_close (void *map) attribute_hidden; /* Same as above, but without locking and safety checks for user diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c index b7b2b151b2..50240383f3 100644 --- a/inet/getnameinfo.c +++ b/inet/getnameinfo.c @@ -38,6 +38,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include #include #include #include @@ -180,7 +181,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, switch (sa->sa_family) { case AF_LOCAL: - if (addrlen < (socklen_t) (((struct sockaddr_un *) NULL)->sun_path)) + if (addrlen < (socklen_t) offsetof (struct sockaddr_un, sun_path)) return EAI_FAMILY; break; case AF_INET: diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 8e78533ba2..525a046331 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2007-03-16 Jakub Jelinek + + * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and + __extern_always_inline where appropriate. + * sysdeps/pthread/pthread.h: Likewise. + 2007-03-13 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index 53339f3078..946551f2d6 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006 +/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -99,6 +99,7 @@ # define PUTC(C, F) _IO_putwc_unlocked (C, F) # define ORIENT if (_IO_fwide (s, 1) != 1) return -1 +# undef _itoa # define _itoa(Val, Buf, Base, Case) _itowa (Val, Buf, Base, Case) # define _itoa_word(Val, Buf, Base, Case) _itowa_word (Val, Buf, Base, Case) # undef EOF diff --git a/string/strerror_l.c b/string/strerror_l.c index 348a3c50ec..32a004ee75 100644 --- a/string/strerror_l.c +++ b/string/strerror_l.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include diff --git a/time/tst-mktime2.c b/time/tst-mktime2.c index 6279218cba..0e4fd1e786 100644 --- a/time/tst-mktime2.c +++ b/time/tst-mktime2.c @@ -102,7 +102,8 @@ static int do_test (void) { time_t t, delta; - int i, j; + int i; + unsigned int j; setenv ("TZ", "America/Sao_Paulo", 1); /* This test makes some buggy mktime implementations loop. @@ -128,7 +129,7 @@ do_test (void) mktime_test ((time_t) (60 * 60)); mktime_test ((time_t) (60 * 60 * 24)); - for (j = 1; 0 < j; j *= 2) + for (j = 1; j <= INT_MAX; j *= 2) bigtime_test (j); bigtime_test (j - 1); } -- cgit v1.2.1