This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

remove static from inline functions in local scope for GCC 4.0


With the following updated patch (Roland asked me to use auto for the
functions), I have now successfully build all of glibc with GCC 4.0
(CVS version of 12 hours ago) on Linux/AMD64.  The testsuite fails for
some tests, e.g. localedata/tst-leaks.out, but at least GCC builds
glibc again...

Tested with GCC 3.4, 3.3-hammer-branch and 4.0-CVS on Linux/AMD64.

Ok to commit?

Andreas

2004-09-23  Andreas Jaeger  <aj@suse.de>


	* sysdeps/x86_64/dl-machine.h (elf_machine_rela_relative): Remove
	static, add always_inline attribute.
	(elf_machine_rela): Likewise.
	(elf_machine_lazy_rel): Likewise.

	* elf/dynamic-link.h (elf_get_dynamic_info): Make static
	dependend on !RESOLVE so that it's not defined in local
	scope.

	* locale/weight.h (findidx): Remove static, it's not supported
	anymore with GCC 3.5 in a block scope.
	* locale/weightwc.h (findidx): Likewise.
	* posix/regcomp.c (seek_collating_symbol_entry): Likewise.
	(lookup_collation_sequence_value): Likewise.
	(build_range_exp): Likewise.
	(build_collating_symbol): Likewise.
	* iconv/iconvconfig.c (write_output): Likewise.
	* elf/do-rel.h (elf_dynamic_do_rel): Likewise.

============================================================
Index: elf/do-rel.h
--- elf/do-rel.h	30 Jan 2003 17:36:34 -0000	1.32
+++ elf/do-rel.h	23 Sep 2004 18:32:04 -0000
@@ -1,5 +1,5 @@
 /* Do relocations for ELF dynamic linking.
-   Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2004 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
@@ -49,7 +49,7 @@
    relocations; they should be set up to call _dl_runtime_resolve, rather
    than fully resolved now.  */
 
-static inline void __attribute__ ((always_inline))
+auto inline void __attribute__ ((always_inline))
 elf_dynamic_do_rel (struct link_map *map,
 		    ElfW(Addr) reladdr, ElfW(Addr) relsize,
 		    int lazy)
============================================================
Index: elf/dynamic-link.h
--- elf/dynamic-link.h	6 Mar 2004 09:47:17 -0000	1.50
+++ elf/dynamic-link.h	23 Sep 2004 18:32:04 -0000
@@ -64,8 +64,12 @@ elf_machine_lazy_rel (struct link_map *m
 
 
 /* Read the dynamic section at DYN and fill in INFO with indices DT_*.  */
-
-static inline void __attribute__ ((unused, always_inline))
+#ifndef RESOLVE
+static
+#else
+auto
+#endif
+inline void __attribute__ ((unused, always_inline))
 elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
 {
   ElfW(Dyn) *dyn = l->l_ld;
============================================================
Index: locale/weight.h
--- locale/weight.h	11 Jun 2003 21:52:12 -0000	1.19
+++ locale/weight.h	23 Sep 2004 18:32:05 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper, <drepper@cygnus.com>.
 
@@ -18,7 +18,7 @@
    02111-1307 USA.  */
 
 /* Find index of weight.  */
-static inline int32_t
+inline int32_t
 __attribute ((always_inline))
 findidx (const unsigned char **cpp)
 {
============================================================
Index: locale/weightwc.h
--- locale/weightwc.h	13 Jun 2003 20:44:58 -0000	1.9
+++ locale/weightwc.h	23 Sep 2004 18:32:05 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2000, 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000, 2001,2003,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper, <drepper@cygnus.com>.
 
@@ -18,7 +18,7 @@
    02111-1307 USA.  */
 
 /* Find index of weight.  */
-static inline int32_t
+inline int32_t
 __attribute ((always_inline))
 findidx (const wint_t **cpp)
 {
============================================================
Index: posix/regcomp.c
--- posix/regcomp.c	5 Mar 2004 10:43:54 -0000	1.80
+++ posix/regcomp.c	23 Sep 2004 18:32:06 -0000
@@ -2682,7 +2682,7 @@ parse_bracket_exp (regexp, dfa, token, s
      Seek the collating symbol entry correspondings to NAME.
      Return the index of the symbol in the SYMB_TABLE.  */
 
-  static inline int32_t
+  auto inline int32_t
   __attribute ((always_inline))
   seek_collating_symbol_entry (name, name_len)
 	 const unsigned char *name;
@@ -2715,7 +2715,7 @@ parse_bracket_exp (regexp, dfa, token, s
      Look up the collation sequence value of BR_ELEM.
      Return the value if succeeded, UINT_MAX otherwise.  */
 
-  static inline unsigned int
+  auto inline unsigned int
   __attribute ((always_inline))
   lookup_collation_sequence_value (br_elem)
 	 bracket_elem_t *br_elem;
@@ -2783,7 +2783,7 @@ parse_bracket_exp (regexp, dfa, token, s
      mbcset->range_ends, is a pointer argument sinse we may
      update it.  */
 
-  static inline reg_errcode_t
+  auto inline reg_errcode_t
   __attribute ((always_inline))
   build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
 	 re_charset_t *mbcset;
@@ -2866,7 +2866,7 @@ parse_bracket_exp (regexp, dfa, token, s
      COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
      pointer argument sinse we may update it.  */
 
-  static inline reg_errcode_t
+  auto inline reg_errcode_t
   __attribute ((always_inline))
   build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
 	 re_charset_t *mbcset;
============================================================
Index: sysdeps/x86_64/dl-machine.h
--- sysdeps/x86_64/dl-machine.h	5 Mar 2004 10:14:47 -0000	1.25
+++ sysdeps/x86_64/dl-machine.h	23 Sep 2004 18:32:06 -0000
@@ -355,7 +386,8 @@ elf_machine_plt_value (struct link_map *
 /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
    MAP is the object containing the reloc.  */
 
-static inline void
+auto inline void
+__attribute__ ((always_inline))
 elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
 		  const Elf64_Sym *sym, const struct r_found_version *version,
 		  void *const reloc_addr_arg)
@@ -520,7 +552,8 @@ elf_machine_rela (struct link_map *map, 
     }
 }
 
-static inline void
+auto inline void
+__attribute ((always_inline))
 elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
 			   void *const reloc_addr_arg)
 {
@@ -529,7 +562,8 @@ elf_machine_rela_relative (Elf64_Addr l_
   *reloc_addr = l_addr + reloc->r_addend;
 }
 
-static inline void
+auto inline void
+__attribute ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
 {
============================================================
Index: iconv/iconvconfig.c
--- iconv/iconvconfig.c	17 May 2004 18:37:11 -0000	1.19
+++ iconv/iconvconfig.c	23 Sep 2004 18:32:07 -0000
@@ -1011,7 +1011,8 @@ write_output (void)
   char finalname[prefix_len + sizeof (GCONV_MODULES_CACHE)];
 
   /* Function to insert the names.  */
-  static void name_insert (const void *nodep, VISIT value, int level)
+  auto void
+  name_insert (const void *nodep, VISIT value, int level)
     {
       struct name *name;
       unsigned int idx;

-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SUSE Linux AG, Maxfeldstr. 5, 90409 NÃrnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]