ftp/R-cran-curl: fix build on big-endian architectures

BSWAP_32 is undefined on FreeBSD, use bswap32.

It also needs sys/endian.h include.

Needed because of:

  /wrkdirs/usr/ports/ftp/R-cran-curl/work/stage/usr/local/lib/R/library/00LOCK-curl/00new/curl/libs/curl.so: Undefined symbol "BSWAP_32"

PR:		238704
Approved by:	tota (maintainer), tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D20726
This commit is contained in:
Piotr Kubaj 2019-06-24 07:24:28 +00:00
parent e466cf8b0d
commit a22fcd9dda
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=505010

View file

@ -0,0 +1,20 @@
--- src/curl.c.orig 2019-06-19 09:02:26 UTC
+++ src/curl.c
@@ -24,6 +24,8 @@
#define BSWAP_32 OSSwapInt32
#elif (defined(__OpenBSD__))
#define BSWAP_32(x) swap32(x)
+#elif (defined(__FreeBSD__))
+#include <sys/endian.h>
#elif (defined(__GLIBC__))
#include <byteswap.h>
#define BSWAP_32(x) bswap_32(x)
@@ -146,7 +148,7 @@ static size_t rcurl_read(void *target, size_t sz, size
static int rcurl_fgetc(Rconnection con) {
int x = 0;
#ifdef WORDS_BIGENDIAN
- return rcurl_read(&x, 1, 1, con) ? BSWAP_32(x) : R_EOF;
+ return rcurl_read(&x, 1, 1, con) ? bswap32(x) : R_EOF;
#else
return rcurl_read(&x, 1, 1, con) ? x : R_EOF;
#endif