* [Buildroot] [PATCH] libcurl: fix build on uncommon architectures
@ 2017-08-11 18:34 Thomas Petazzoni
2017-08-11 20:49 ` Thomas Petazzoni
2017-09-05 22:02 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2017-08-11 18:34 UTC (permalink / raw)
To: buildroot
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>
---
...-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
diff --git a/package/libcurl/0001-curl-system.h-support-more-architectures.patch b/package/libcurl/0001-curl-system.h-support-more-architectures.patch
new file mode 100644
index 0000000..94d9a2a
--- /dev/null
+++ b/package/libcurl/0001-curl-system.h-support-more-architectures.patch
@@ -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
+
--
2.9.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] libcurl: fix build on uncommon architectures
2017-08-11 18:34 [Buildroot] [PATCH] libcurl: fix build on uncommon architectures Thomas Petazzoni
@ 2017-08-11 20:49 ` Thomas Petazzoni
2017-09-05 22:02 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2017-08-11 20:49 UTC (permalink / raw)
To: buildroot
Hello,
On Fri, 11 Aug 2017 20:34:20 +0200, Thomas Petazzoni wrote:
> 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>
> ---
> ...-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
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] libcurl: fix build on uncommon architectures
2017-08-11 18:34 [Buildroot] [PATCH] libcurl: fix build on uncommon architectures Thomas Petazzoni
2017-08-11 20:49 ` Thomas Petazzoni
@ 2017-09-05 22:02 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2017-09-05 22:02 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 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.
> Fixes:
> http://autobuild.buildroot.net/results/bf26c08cf3267214278674472f931603f69951ae/
> (and many similar issues)
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Committed to 2017.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-09-05 22:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-11 18:34 [Buildroot] [PATCH] libcurl: fix build on uncommon architectures Thomas Petazzoni
2017-08-11 20:49 ` Thomas Petazzoni
2017-09-05 22:02 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.