libcurl: fix build on uncommon architectures
Since the bump to 7.55.0, libcurl fails to build on a number of uncommon architectures (ARC, OpenRISC, etc.). This is due to upstream commit 73a2fcea0b4adea6ba342cd7ed1149782c214ae3 ("includes: remove curl/curlbuild.h and curl/curlrules.h"), which makes libcurl rely on more architecture-specific related defines in include/curl/system.h. This commit therefore adds a patch that fixes the 32-bit vs. 64-bit detection for all architecture, using gcc's __SIZEOF_LONG__ definition. It has been tested successfully with test-pkg on all 47 toolchain configurations. Fixes: http://autobuild.buildroot.net/results/bf26c08cf3267214278674472f931603f69951ae/ (and many similar issues) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
e845e012e7
commit
6361a50e3f
@ -0,0 +1,47 @@
|
||||
From 7d84bd820ef412d251b643a4faced105668f4ebd Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Fri, 11 Aug 2017 18:52:37 +0200
|
||||
Subject: [PATCH] curl/system.h: support more architectures
|
||||
|
||||
The long list of architectures in include/curl/system.h is annoying to
|
||||
maintain, and needs to be extended for each and every architecture to
|
||||
support.
|
||||
|
||||
Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler
|
||||
(we are in the GNUC condition anyway), which tells us if long is 4
|
||||
bytes or 8 bytes.
|
||||
|
||||
This fixes the build of libcurl 7.55.0 on architectures such as
|
||||
OpenRISC or ARC.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
include/curl/system.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/curl/system.h b/include/curl/system.h
|
||||
index 79abf8f..0e13075 100644
|
||||
--- a/include/curl/system.h
|
||||
+++ b/include/curl/system.h
|
||||
@@ -403,7 +403,7 @@
|
||||
# if !defined(__LP64__) && (defined(__ILP32__) || \
|
||||
defined(__i386__) || defined(__ppc__) || defined(__arm__) || \
|
||||
defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
|
||||
- defined(__XTENSA__))
|
||||
+ defined(__XTENSA__) || (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4))
|
||||
# define CURL_SIZEOF_LONG 4
|
||||
# define CURL_TYPEOF_CURL_OFF_T long long
|
||||
# define CURL_FORMAT_CURL_OFF_T "lld"
|
||||
@@ -412,7 +412,8 @@
|
||||
# define CURL_SUFFIX_CURL_OFF_T LL
|
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL
|
||||
# elif defined(__LP64__) || \
|
||||
- defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__)
|
||||
+ defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
|
||||
+ (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8)
|
||||
# define CURL_SIZEOF_LONG 8
|
||||
# define CURL_TYPEOF_CURL_OFF_T long
|
||||
# define CURL_FORMAT_CURL_OFF_T "ld"
|
||||
--
|
||||
2.9.4
|
||||
|
Loading…
Reference in New Issue
Block a user