1 This patch fixes build error
4 In file included from ../include/pthread.h:1,
5 from ../nptl/sysdeps/pthread/bits/libc-lock.h:23,
8 ../nptl/sysdeps/pthread/pthread.h:664: error: array type has incomplete element type
11 rtld.c: In function '_dl_start':
12 dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
13 dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
16 In file included from jis0208.c:23:
17 jis0208.h:32: error: array type has incomplete element type
19 elf/dynamic-link.h | 37 -------------------------------------
20 iconvdata/jis0208.h | 16 +++++++---------
21 nptl/sysdeps/pthread/pthread.h | 3 +--
22 3 files changed, 8 insertions(+), 48 deletions(-)
24 --- glibc-2.3.4/nptl/sysdeps/pthread/pthread.h.orig 2004-11-24 23:55:24.000000000 +0100
25 +++ glibc-2.3.4/nptl/sysdeps/pthread/pthread.h 2005-02-14 16:24:22.104239520 +0100
29 #define __need_sigset_t
32 #include <bits/pthreadtypes.h>
33 -#include <bits/setjmp.h>
34 #include <bits/wordsize.h>
40 /* Function used in the macros. */
41 -struct __jmp_buf_tag;
42 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW;
45 --- glibc-2.3.4/elf/dynamic-link.h.orig 2004-09-24 19:09:03.000000000 +0200
46 +++ glibc-2.3.4/elf/dynamic-link.h 2005-02-16 10:37:32.664843192 +0100
53 -/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
54 - ElfW(Addr), because not all architectures can assume that the
55 - relocated address is properly aligned, whereas the compiler is
56 - entitled to assume that a pointer to a type is properly aligned for
57 - the type. Even if we cast the pointer back to some other type with
58 - less strict alignment requirements, the compiler might still
59 - remember that the pointer was originally more aligned, thereby
60 - optimizing away alignment tests or using word instructions for
61 - copying memory, breaking the very code written to handle the
63 -auto void __attribute__((always_inline))
64 -elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
65 - const ElfW(Sym) *sym, const struct r_found_version *version,
66 - void *const reloc_addr);
67 -auto void __attribute__((always_inline))
68 -elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
69 - const ElfW(Sym) *sym, const struct r_found_version *version,
70 - void *const reloc_addr);
71 -auto void __attribute__((always_inline))
72 -elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
73 - void *const reloc_addr);
74 -auto void __attribute__((always_inline))
75 -elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
76 - void *const reloc_addr);
77 -# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
78 -auto void __attribute__((always_inline))
79 -elf_machine_lazy_rel (struct link_map *map,
80 - ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
82 -auto void __attribute__((always_inline))
83 -elf_machine_lazy_rel (struct link_map *map,
84 - ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
88 #include <dl-machine.h>
91 --- glibc-2.3.4/iconvdata/jis0208.h.orig 2005-02-16 10:30:39.185701576 +0100
92 +++ glibc-2.3.4/iconvdata/jis0208.h 2005-02-16 10:31:18.736688912 +0100
97 -/* Conversion table. */
98 -extern const uint16_t __jis0208_to_ucs[];
100 -extern const char __jisx0208_from_ucs4_lat1[256][2];
101 -extern const char __jisx0208_from_ucs4_greek[0xc1][2];
102 -extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
103 -extern const char __jisx0208_from_ucs_tab[][2];
106 /* Struct for table with indeces in UCS mapping table. */
107 struct jisx0208_ucs_idx
113 +/* Conversion table. */
114 +extern const uint16_t __jis0208_to_ucs[];
116 +extern const char __jisx0208_from_ucs4_lat1[256][2];
117 +extern const char __jisx0208_from_ucs4_greek[0xc1][2];
118 +extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
119 +extern const char __jisx0208_from_ucs_tab[14210][2];
121 static inline uint32_t
122 __attribute ((always_inline))
123 ===================================================================
124 RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/powerpc/tcb-offsets.sym,v
125 retrieving revision 1.7
126 retrieving revision 1.8
128 --- libc/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2004/01/13 21:30:17 1.7
129 +++ libc/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2005/03/05 19:27:55 1.8
131 -- Abuse tls.h macros to derive offsets relative to the thread register.
132 # undef __thread_register
133 # define __thread_register ((void *) 0)
134 -# define thread_offsetof(mem) ((void *) &THREAD_SELF->p_##mem - (void *) 0)
135 +# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct _pthread_descr_struct, p_##mem))
139 --- glibc-2.3.4/sysdeps/powerpc/powerpc32/dl-machine.h.orig 2003-07-31 06:33:52.000000000 +0000
140 +++ glibc-2.3.4/sysdeps/powerpc/powerpc32/dl-machine.h 2005-03-20 16:56:21.000000000 +0000
142 LOADADDR is the load address of the object; INFO is an array indexed
143 by DT_* of the .dynamic section info. */
146 +auto inline void __attribute__ ((always_inline))
147 elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
148 const Elf32_Sym *sym, const struct r_found_version *version,
149 void *const reloc_addr_arg)
152 # if defined USE_TLS && !defined RTLD_BOOTSTRAP
153 sym_map = RESOLVE_MAP (&sym, version, r_type);
154 - value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value;
155 + value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
157 value = RESOLVE (&sym, version, r_type);
158 # ifndef RTLD_BOOTSTRAP
164 +auto inline void __attribute__ ((always_inline))
165 elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
166 void *const reloc_addr_arg)
169 *reloc_addr = l_addr + reloc->r_addend;
173 +auto inline void __attribute__ ((always_inline))
174 elf_machine_lazy_rel (struct link_map *map,
175 Elf32_Addr l_addr, const Elf32_Rela *reloc)
177 ===================================================================
178 RCS file: /cvs/glibc/libc/nptl/sysdeps/powerpc/tcb-offsets.sym,v
179 retrieving revision 1.5
180 retrieving revision 1.6
182 --- libc/nptl/sysdeps/powerpc/tcb-offsets.sym 2004/12/15 06:07:00 1.5
183 +++ libc/nptl/sysdeps/powerpc/tcb-offsets.sym 2005/02/14 22:44:12 1.6
185 -- Abuse tls.h macros to derive offsets relative to the thread register.
186 # undef __thread_register
187 # define __thread_register ((void *) 0)
188 -# define thread_offsetof(mem) ((void *) &THREAD_SELF->mem - (void *) 0)
189 +# define thread_offsetof(mem) ((ptrdiff_t) THREAD_SELF + offsetof (struct pthread, mem))
192 #if TLS_MULTIPLE_THREADS_IN_TCB
193 MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)