libcurl: fix build on uncommon architectures
PATCH 1/1 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)
--- ...-curl-system.h-support-more-architectures.patch | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 package/libcurl/0001-curl-system.h-support-more-architectures.patch
package/libcurl/0001-curl-system.h-support-more-architectures.patch new file +47 -0
@@ -0,0 +1,47 @@ +From 7d84bd820ef412d251b643a4faced105668f4ebd Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <[email protected]> +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 <[email protected]> +--- + 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 +
Signature · 1 line
2.9.4
Thomas Petazzoni
AppliedPATCH 1/1 libcurl: fix build on uncommon architectures
Hello,
Quoted 13 lines · Thomas Petazzoni
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: removecurl/curlbuild.handcurl/curlrules.h"), which makes libcurl rely on more architecture-specific related defines ininclude/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:
Quoted 8 lines
http://autobuild.buildroot.net/results/bf26c08cf3267214278674472f931603f69951ae/
(and many similar issues)Signed-off-by Thomas Petazzoni <[email protected]>--- ...-curl-system.h-support-more-architectures.patch | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 package/libcurl/0001-curl-system.h-support-more-architectures.patch
Applied to master.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 libcurl: fix build on uncommon architectures
In reply to Thomas PetazzoniQuoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
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: removecurl/curlbuild.handcurl/curlrules.h"), which makes libcurl rely on more architecture-specific related defines ininclude/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.
Quoted 6 lines
Fixes:
http://autobuild.buildroot.net/results/bf26c08cf3267214278674472f931603f69951ae/
(and many similar issues)Signed-off-by Thomas Petazzoni <[email protected]>
Committed to 2017.02.x, thanks.
Signature · 1 line
Bye, Peter Korsgaard