Skip to contentSkip to conversation

libcurl: fix build on uncommon architectures

PATCH New Thomas Petazzoni 2 participants 3 messages Aug 11, 2017 – Sep 5, 2017

lore
Share & tools
lore
#0 lore raw

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
new file mode 100644
index 0000000..94d9a2a
@@ -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
author Applied
#1 lore raw

PATCH 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: 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:

Quoted 8 lines

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

Applied to master.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 libcurl: fix build on uncommon architectures

In reply to Thomas Petazzoni
Quoted 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: 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.

Quoted 6 lines

Fixes:

http://autobuild.buildroot.net/results/bf26c08cf3267214278674472f931603f69951ae/
(and many similar issues)

Committed to 2017.02.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard