This patch fixes build error 1). In file included from ../include/pthread.h:1, from ../nptl/sysdeps/pthread/bits/libc-lock.h:23, from ./gconv_int.h:25, from gconv.c:23: ../nptl/sysdeps/pthread/pthread.h:664: error: array type has incomplete element type 2). rtld.c: In function '_dl_start': dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined 3). In file included from jis0208.c:23: jis0208.h:32: error: array type has incomplete element type elf/dynamic-link.h | 37 ------------------------------------- iconvdata/jis0208.h | 16 +++++++--------- nptl/sysdeps/pthread/pthread.h | 3 +-- 3 files changed, 8 insertions(+), 48 deletions(-) --- glibc-2.3.4/nptl/sysdeps/pthread/pthread.h.orig 2004-11-24 23:55:24.000000000 +0100 +++ glibc-2.3.4/nptl/sysdeps/pthread/pthread.h 2005-02-14 16:24:22.104239520 +0100 @@ -24,9 +24,9 @@ #include #define __need_sigset_t +#include #include #include -#include #include @@ -660,7 +660,6 @@ #endif /* Function used in the macros. */ -struct __jmp_buf_tag; extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW; --- glibc-2.3.4/elf/dynamic-link.h.orig 2004-09-24 19:09:03.000000000 +0200 +++ glibc-2.3.4/elf/dynamic-link.h 2005-02-16 10:37:32.664843192 +0100 @@ -19,43 +19,6 @@ #include #include - -#ifdef RESOLVE -/* We pass reloc_addr as a pointer to void, as opposed to a pointer to - ElfW(Addr), because not all architectures can assume that the - relocated address is properly aligned, whereas the compiler is - entitled to assume that a pointer to a type is properly aligned for - the type. Even if we cast the pointer back to some other type with - less strict alignment requirements, the compiler might still - remember that the pointer was originally more aligned, thereby - optimizing away alignment tests or using word instructions for - copying memory, breaking the very code written to handle the - unaligned cases. */ -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_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); -# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL -auto void __attribute__((always_inline)) -elf_machine_lazy_rel (struct link_map *map, - ElfW(Addr) l_addr, const ElfW(Rel) *reloc); -# else -auto void __attribute__((always_inline)) -elf_machine_lazy_rel (struct link_map *map, - ElfW(Addr) l_addr, const ElfW(Rela) *reloc); -# endif -#endif - #include #ifndef VERSYMIDX --- glibc-2.3.4/iconvdata/jis0208.h.orig 2005-02-16 10:30:39.185701576 +0100 +++ glibc-2.3.4/iconvdata/jis0208.h 2005-02-16 10:31:18.736688912 +0100 @@ -24,15 +24,6 @@ #include #include -/* 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 jisx0208_ucs_idx { @@ -41,6 +32,13 @@ uint16_t idx; }; +/* 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[14210][2]; static inline uint32_t __attribute ((always_inline))