public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* remove static from inline functions in local scope for GCC 4.0
@ 2004-09-23 19:00 Andreas Jaeger
  2004-09-23 20:01 ` Roland McGrath
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Jaeger @ 2004-09-23 19:00 UTC (permalink / raw)
  To: Glibc hackers

[-- Attachment #1: Type: text/plain, Size: 7501 bytes --]


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 #2: Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: remove static from inline functions in local scope for GCC 4.0
  2004-09-23 19:00 remove static from inline functions in local scope for GCC 4.0 Andreas Jaeger
@ 2004-09-23 20:01 ` Roland McGrath
  2004-09-24  5:04   ` Andreas Jaeger
  2004-09-24  8:13   ` Andreas Jaeger
  0 siblings, 2 replies; 5+ messages in thread
From: Roland McGrath @ 2004-09-23 20:01 UTC (permalink / raw)
  To: Andreas Jaeger; +Cc: Glibc hackers

Please use "auto" in all places you remove "static", so it's always clear
that in no case should there be a global definition.

Please test on vanilla 3.3.x as well, and 3.2.x if it's not too much trouble.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: remove static from inline functions in local scope for GCC 4.0
  2004-09-23 20:01 ` Roland McGrath
@ 2004-09-24  5:04   ` Andreas Jaeger
  2004-09-24  8:13   ` Andreas Jaeger
  1 sibling, 0 replies; 5+ messages in thread
From: Andreas Jaeger @ 2004-09-24  5:04 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Glibc hackers

[-- Attachment #1: Type: text/plain, Size: 673 bytes --]

Roland McGrath <roland@redhat.com> writes:

> Please use "auto" in all places you remove "static", so it's always clear
> that in no case should there be a global definition.

You're right, I missed two files :-(, I'll change this.

> Please test on vanilla 3.3.x as well, and 3.2.x if it's not too much trouble.

Using 3.3 vanilla is no problem since I have one installed in an extra
directory but 3.2 needs to be compiled - I'll try that now and report
back,

Andreas
-- 
 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 #2: Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: remove static from inline functions in local scope for GCC 4.0
  2004-09-23 20:01 ` Roland McGrath
  2004-09-24  5:04   ` Andreas Jaeger
@ 2004-09-24  8:13   ` Andreas Jaeger
  2004-09-24  9:11     ` Roland McGrath
  1 sibling, 1 reply; 5+ messages in thread
From: Andreas Jaeger @ 2004-09-24  8:13 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Glibc hackers

[-- Attachment #1: Type: text/plain, Size: 683 bytes --]

Roland McGrath <roland@redhat.com> writes:

> Please use "auto" in all places you remove "static", so it's always clear
> that in no case should there be a global definition.
>
> Please test on vanilla 3.3.x as well, and 3.2.x if it's not too much trouble.

3.2 is too much trouble - I cannot build 3.2 out of the box on my
current system and older ones have too old binutils :-(

3.3 vanilla testing was ok.

Ok to commit with the changed patch using "auto" everywhere?

Andreas
-- 
 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 #2: Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: remove static from inline functions in local scope for GCC 4.0
  2004-09-24  8:13   ` Andreas Jaeger
@ 2004-09-24  9:11     ` Roland McGrath
  0 siblings, 0 replies; 5+ messages in thread
From: Roland McGrath @ 2004-09-24  9:11 UTC (permalink / raw)
  To: Andreas Jaeger; +Cc: Glibc hackers

> 3.3 vanilla testing was ok.
> 
> Ok to commit with the changed patch using "auto" everywhere?

Ok by me.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-09-24  9:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-23 19:00 remove static from inline functions in local scope for GCC 4.0 Andreas Jaeger
2004-09-23 20:01 ` Roland McGrath
2004-09-24  5:04   ` Andreas Jaeger
2004-09-24  8:13   ` Andreas Jaeger
2004-09-24  9:11     ` Roland McGrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).