This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

Re: arm-xscale-gcc-*


Daniel Kegel wrote:
Hinko Kocevar wrote:


Will test other xscale arm combinations as well...



arm-xscale-gcc-4.0-20050305-glibc-2.2.5.sh FAILS at:


In file included from dynamic-link.h:21,
from dl-reloc.c:153:
../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
../sysdeps/arm/dl-machine.h:380: error: invalid storage class for function 'fix_bad_pc24'
../sysdeps/arm/dl-machine.h:415: error: invalid storage class for function 'elf_machine_rel'
../sysdeps/arm/dl-machine.h:524: error: invalid storage class for function 'elf_machine_rel_relative'
../sysdeps/arm/dl-machine.h:531: error: invalid storage class for function 'elf_machine_lazy_rel'


Yeah, that's as noted in the release announcement:

http://sources.redhat.com/ml/crossgcc/2005-03/msg00203.html

"Several architectures fail with errors like
dl-machine.h:418: error: invalid storage class for function 'elf_machine_rela'
The fix for this is easy; see e.g.
http://kegel.com/crosstool/crosstool-0.29/patches/glibc-2.3-20050307/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch


Anyone who wants to fix these up, please do, and post the
patches to the crossgcc list so I can include them in the next release."


Ther you go, I've tried as you suggested and here is the patch to be copied to crosstool-0.30/patches/glibc-2.2.5. I had success with compiling arm-xscale-gcc-4.0-20050305-glibc-2.2.5.sh ...


regards,
hk

--
hinko <dot> kocevar <at> iskramedical <dot> si
Hinko Kocevar, embedded systems developer
Iskra Medical d.o.o., Stegne 23, 1k LJ, SLO-EU

"Aì rén" | [Analects XII:22]
--- glibc-2.2.5/sysdeps/arm/dl-machine.h.old	2005-03-31 18:44:49.000000000 +0200
+++ glibc-2.2.5/sysdeps/arm/dl-machine.h	2005-03-31 18:50:23.000000000 +0200
@@ -374,7 +374,14 @@
 extern char **_dl_argv;
 
 /* Deal with an out-of-range PC24 reloc.  */
-static Elf32_Addr
+#if __GNUC__ >= 4
+  auto inline Elf32_Addr
+#else
+  static inline Elf32_Addr
+#endif
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
+  __attribute ((always_inline))
+#endif
 fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
 {
   static void *fix_page;
@@ -406,8 +413,14 @@
 
 /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
    MAP is the object containing the reloc.  */
-
-static inline void
+#if __GNUC__ >= 4
+  auto inline void
+#else
+  static inline void
+#endif
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
+  __attribute ((always_inline))
+#endif
 elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
 		 const Elf32_Sym *sym, const struct r_found_version *version,
 		 Elf32_Addr *const reloc_addr)
@@ -517,14 +530,28 @@
     }
 }
 
-static inline void
+#if __GNUC__ >= 4
+  auto inline void
+#else
+  static inline void
+#endif
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
+  __attribute ((always_inline))
+#endif
 elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
 			  Elf32_Addr *const reloc_addr)
 {
   *reloc_addr += l_addr;
 }
 
-static inline void
+#if __GNUC__ >= 4
+  auto inline void
+#else
+  static inline void
+#endif
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
+ __attribute ((always_inline))
+#endif
 elf_machine_lazy_rel (struct link_map *map,
 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
 {

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com

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