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] |
Alexandre Oliva <aoliva@redhat.com> writes: > Here are patches to fix incompatibilities with the current CVS version > of GCC. > > The first addresses a problem that causes GCC to reject auto nested > functions that are declared but not defined. The actual error message is: dl-reloc.c: In function â_dl_relocate_objectâ: dynamic-link.h:44: error: nested function âelf_machine_rel_relativeâ declared but never defined dynamic-link.h:37: error: nested function âelf_machine_relâ declared but never defined > The second addresses a problem of trying to construct array types of > incomplete types. Although this is well-formed C++, it's ill-formed > C, even if the type would decay to pointer to incomplete type, which > is well-formed in both languages. There were two occurrences of this > error in glibc. Shall I commit these patches? Andreas > > Index: ChangeLog > 2005-02-03 Alexandre Oliva <aoliva@redhat.com> > > * elf/dynamic-link.h: Don't declare nested auto functions that are > not going to be defined. > > --- elf/dynamic-link.h 2005-01-22 16:18:28.000000000 -0200 > +++ elf/dynamic-link.h 2005-02-07 06:20:18.000000000 -0200 > @@ -1,5 +1,5 @@ > /* Inline functions for dynamic linking. > - Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc. > + Copyright (C) 1995-2002, 2003, 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 > @@ -31,20 +31,24 @@ > optimizing away alignment tests or using word instructions for > copying memory, breaking the very code written to handle the > unaligned cases. */ > +# if ! ELF_MACHINE_NO_REL > auto void __attribute__((always_inline)) > elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, > const ElfW(Sym) *sym, const struct r_found_version *version, > void *const reloc_addr); > auto void __attribute__((always_inline)) > +elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, > + void *const reloc_addr); > +# endif > +# if ! ELF_MACHINE_NO_RELA > +auto void __attribute__((always_inline)) > elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, > const ElfW(Sym) *sym, const struct r_found_version *version, > void *const reloc_addr); > auto void __attribute__((always_inline)) > -elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, > - void *const reloc_addr); > -auto void __attribute__((always_inline)) > elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, > void *const reloc_addr); > +# endif > # if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL > auto void __attribute__((always_inline)) > elf_machine_lazy_rel (struct link_map *map, > > Index: ChangeLog > 2005-02-02 Alexandre Oliva <aoliva@redhat.com> > > * iconvdata/jis0208.h (struct jisx0208_ucs_idx): Move declaration > before use. Fix typo in comment. > > Index: nptl/ChangeLog > 2005-02-02 Alexandre Oliva <aoliva@redhat.com> > > * sysdeps/pthread/pthread.h (__sigsetjmp): Don't declare __env > argument as array, GCC 4 doesn't like it. > > Index: iconvdata/jis0208.h > --- iconvdata/jis0208.h 2003-06-11 18:40:42.000000000 -0300 > +++ iconvdata/jis0208.h 2005-02-02 05:57:39.000000000 -0200 > @@ -27,13 +27,7 @@ > /* Conversion table. */ > extern const uint16_t __jis0208_to_ucs[]; > > -extern const char __jisx0208_from_ucs4_lat1[256][2]; > -extern const char __jisx0208_from_ucs4_greek[0xc1][2]; > -extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[]; > -extern const char __jisx0208_from_ucs_tab[][2]; > - > - > -/* Struct for table with indeces in UCS mapping table. */ > +/* Struct for table with indexes in UCS mapping table. */ > struct jisx0208_ucs_idx > { > uint16_t start; > @@ -41,6 +35,11 @@ > uint16_t idx; > }; > > +extern const char __jisx0208_from_ucs4_lat1[256][2]; > +extern const char __jisx0208_from_ucs4_greek[0xc1][2]; > +extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[]; > +extern const char __jisx0208_from_ucs_tab[][2]; > + > > static inline uint32_t > __attribute ((always_inline)) > Index: nptl/sysdeps/pthread/pthread.h > --- nptl/sysdeps/pthread/pthread.h 2004-12-05 00:18:43.000000000 -0200 > +++ nptl/sysdeps/pthread/pthread.h 2005-02-02 08:21:16.000000000 -0200 > @@ -1,4 +1,4 @@ > -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. > +/* Copyright (C) 2002, 2003, 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 > @@ -661,7 +661,7 @@ > > /* Function used in the macros. */ > struct __jmp_buf_tag; > -extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW; > +extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROW; > > > /* Mutex handling. */ Andreas -- Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj SUSE Linux Products GmbH, 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] |