[package] babel: include upstream patch until next release

Fri Sep 24 16:25:40 CEST 2010  Juliusz Chroboczek <jch@pps.jussieu.fr>
  * Don't use __attribute__((packed)), it is buggy.

git-svn-id: svn://svn.openwrt.org/openwrt/packages@23325 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
kerneis 2010-10-08 15:05:50 +00:00
parent d92fec4e9f
commit d9d7e38eb6
2 changed files with 23 additions and 1 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=babeld
PKG_VERSION:=1.0.1
PKG_RELEASE:=4
PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.pps.jussieu.fr/~jch/software/files/

View File

@ -0,0 +1,22 @@
Fri Sep 24 16:25:40 CEST 2010 Juliusz Chroboczek <jch@pps.jussieu.fr>
* Don't use __attribute__((packed)), it is buggy.
diff -rN -u old-babeld/util.h new-babeld/util.h
--- old-babeld/util.h 2010-10-08 15:41:20.000000000 +0200
+++ new-babeld/util.h 2010-10-08 15:41:20.000000000 +0200
@@ -20,7 +20,15 @@
THE SOFTWARE.
*/
-#if defined __GNUC__
+#if defined(i386) || defined(__mc68020__) || defined(__x86_64__)
+#define DO_NTOHS(_d, _s) do { _d = ntohs(*(unsigned short*)(_s)); } while(0)
+#define DO_NTOHL(_d, _s) do { _d = ntohl(*(unsigned*)(_s)); } while(0)
+#define DO_HTONS(_d, _s) do { *(unsigned short*)(_d) = htons(_s); } while(0)
+#define DO_HTONL(_d, _s) do { *(unsigned*)(_d) = htonl(_s); } while(0)
+/* Some versions of gcc seem to be buggy, and ignore the packed attribute.
+ Disable this code until the issue is clarified. */
+/* #elif defined __GNUC__*/
+#elif 0
struct __us { unsigned short x __attribute__((packed)); };
#define DO_NTOHS(_d, _s) \
do { _d = ntohs(((const struct __us*)(_s))->x); } while(0)