summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2018-06-19 14:44:41 (GMT)
committerPeter Korsgaard <peter@korsgaard.com>2018-06-19 20:50:24 (GMT)
commitb05f8f43968153af197ba0e635c8afa6856665ba (patch)
treebb74f09032148ae350f9b752b1d7e12ff131004e
parent6c5a22079d7e20f26038e3f7cdd8ead1a7b6d5d7 (diff)
downloadbuildroot-b05f8f43968153af197ba0e635c8afa6856665ba.tar.gz
buildroot-b05f8f43968153af197ba0e635c8afa6856665ba.tar.bz2
imx-usb-loader: fix build with older gcc
Since the last version bump imx-usb-loader uses __builtin_bswap16 which is not universally available in gcc older than version 4.8. Add a patch switching to a local 16-bit bytes swap implementation. Should fix: http://autobuild.buildroot.net/results/a63/a63b593b7ef3b6d32e755afe42b77d47dbf0276e/ http://autobuild.buildroot.net/results/48c/48c95cfc65f99fa02be81a11303ba8999f57091a/ http://autobuild.buildroot.net/results/c9d/c9d4f99b49ddb9b2ce08fce7672dd7c70cf62912/ Cc: Adam Duskett <aduskett@gmail.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/imx-usb-loader/0001-portable.h-fix-build-with-gcc-older-than-4.8.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/package/imx-usb-loader/0001-portable.h-fix-build-with-gcc-older-than-4.8.patch b/package/imx-usb-loader/0001-portable.h-fix-build-with-gcc-older-than-4.8.patch
new file mode 100644
index 0000000..c0aabed
--- /dev/null
+++ b/package/imx-usb-loader/0001-portable.h-fix-build-with-gcc-older-than-4.8.patch
@@ -0,0 +1,42 @@
+From c581e6037ec7ab2f9cd615f6ffa149b4d0a5638c Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Tue, 19 Jun 2018 15:31:52 +0300
+Subject: [PATCH] portable.h: fix build with gcc older than 4.8
+
+__builtin_bswap16 is available in all gcc architectures only since
+version 4.8. Older gcc versions fail to build:
+
+imx_sdp.o: In function `perform_dcd':
+.../imx_sdp.c:1138: undefined reference to `__builtin_bswap16'
+imx_sdp.o: In function `write_dcd_table_ivt':
+.../imx_sdp.c:457: undefined reference to `__builtin_bswap16'
+imx_sdp.o: In function `write_dcd':
+.../imx_sdp.c:410: undefined reference to `__builtin_bswap16'
+imx_sdp.o: In function `init_header':
+.../imx_sdp.c:1075: undefined reference to `__builtin_bswap16'
+
+Use a local implementation instead.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: https://github.com/boundarydevices/imx_usb_loader/pull/82
+
+ portable.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/portable.h b/portable.h
+index 364fe47b212a..364832b5ea69 100644
+--- a/portable.h
++++ b/portable.h
+@@ -58,7 +58,7 @@ extern int debugmode;
+ #ifdef __GNUC__
+ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ #define BE32(x) __builtin_bswap32(x)
+-#define BE16(x) __builtin_bswap16(x)
++#define BE16(x) (x<<8 | x>>8)
+ #else
+ #define BE32(x) x
+ #define BE16(x) x
+--
+2.17.1
+