[Olsr-dev] ARM Telefon

Sven-Ola Tücke (spam-protected)
Tue Aug 11 09:05:28 CEST 2009


Hey,

der olsrd ist doch eigentlich auf eine ARM CPU lauffaehig IMO? Ich richte mich 
also auf meinem Handy ein und kompiliere. Jede Menge "src/ipcalc.c:164: error: 
cast increases required alignment of target type" Warnungen. Laufen lassen 
zeigt "BUS error". Mmmh, die Warnungen waren wohl Mahnungen.

Bisschen Pointerzaubern, dann sind die Warnungen weg. Kennt jemand den 
Hintergrund (bin nicht so ARM-fit)? Ich meine sowas hier:

diff -r a651cc474e85 src/common/list.h
--- a/src/common/list.h	Sun Aug 09 09:00:01 2009 +0200
+++ b/src/common/list.h	Tue Aug 11 07:09:12 2009 +0000
@@ -136,7 +136,7 @@
 {\
   return( \
     ptr ? \
-      (structname *) (((uint8_t *) ptr) - offsetof(structname, listnodename)) 
: \
+      (structname *) (((size_t) ptr) - offsetof(structname, listnodename)) : \
       NULL); \
 }
 
diff -r a651cc474e85 src/lq_packet.h
--- a/src/lq_packet.h	Sun Aug 09 09:00:01 2009 +0200
+++ b/src/lq_packet.h	Tue Aug 11 07:09:12 2009 +0000
@@ -126,7 +126,7 @@
 static INLINE void
 pkt_get_u16(const uint8_t ** p, uint16_t * var)
 {
-  *var = ntohs(*(const uint16_t *)(*p));
+  *var = ntohs(**((const uint16_t **)p));
   *p += sizeof(uint16_t);
 }
 static INLINE void

// Sven-Ola




More information about the Olsr-dev mailing list