Cross-compile armv7l binaries for 32-bit Raspberry Pi's (#167)

Build arm binaries for 32-bit architecture.
Use patch based on https://github.com/curl/curl/pull/9054.
This commit is contained in:
Brett Jia
2023-07-17 03:37:06 -04:00
committed by GitHub
parent e987cd6646
commit 9303ce340f
4 changed files with 41 additions and 6 deletions

View File

@@ -33,6 +33,11 @@ jobs:
host: aarch64-linux-gnu host: aarch64-linux-gnu
capture_interface: eth0 capture_interface: eth0
make: make make: make
- os: ubuntu-20.04
arch: arm
host: arm-linux-gnueabihf
capture_interface: eth0
make: make
- os: macos-11 - os: macos-11
arch: x86_64 arch: x86_64
host: x86_64-macos host: x86_64-macos
@@ -55,10 +60,10 @@ jobs:
# More dependencies for the tests # More dependencies for the tests
sudo apt-get install tcpdump nghttp2-server libnss3 sudo apt-get install tcpdump nghttp2-server libnss3
- name: Install Ubuntu dependencies (aarch64) - name: Install Ubuntu cross-compile dependencies (${{ matrix.arch }})
if: matrix.arch == 'aarch64' if: matrix.os == 'ubuntu-20.04' && matrix.arch != 'x86_64'
run: | run: |
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu sudo apt-get install gcc-${{ matrix.host }} g++-${{ matrix.host }}
- name: Install macOS dependencies - name: Install macOS dependencies
if: matrix.os == 'macos-11' if: matrix.os == 'macos-11'

View File

@@ -225,6 +225,7 @@ else
;; \ ;; \
*) \ *) \
use_64="0"; \ use_64="0"; \
nspr_configure_flags=""; \
;; \ ;; \
esac esac

View File

@@ -2485,3 +2485,17 @@ index 5ff86c7f5..be26f91ea 100644
NV1(CURLOPT_TCP_NODELAY, 1), NV1(CURLOPT_TCP_NODELAY, 1),
NV1(CURLOPT_PROXY_SSL_VERIFYPEER, 1), NV1(CURLOPT_PROXY_SSL_VERIFYPEER, 1),
NV1(CURLOPT_PROXY_SSL_VERIFYHOST, 1), NV1(CURLOPT_PROXY_SSL_VERIFYHOST, 1),
diff --git a/lib/easy_lock.h b/lib/easy_lock.h
index 819f50ce8..1f54289ce 100644
--- a/lib/easy_lock.h
+++ b/lib/easy_lock.h
@@ -36,6 +36,9 @@
#elif defined (HAVE_ATOMIC)
#include <stdatomic.h>
+#if defined(HAVE_SCHED_YIELD)
+#include <sched.h>
+#endif
#define curl_simple_lock atomic_bool
#define CURL_SIMPLE_LOCK_INIT false

View File

@@ -1354,7 +1354,7 @@ index cb162755d..13ee571aa 100644
+ +
+ case $host_cpu in + case $host_cpu in
+ arm) + arm)
+ addlib="$addlib -larmv8_c_lib" + addlib="$addlib -larmv8_c_lib -l:libgcm-aes-arm32-neon_c_lib.a"
+ ;; + ;;
+ aarch64) + aarch64)
+ addlib="$addlib -larmv8_c_lib -lgcm-aes-aarch64_c_lib" + addlib="$addlib -larmv8_c_lib -lgcm-aes-aarch64_c_lib"
@@ -1498,3 +1498,18 @@ index 706f0aac3..0ad94622e 100644
endif endif
# if unit tests are enabled, build a static library to link them with # if unit tests are enabled, build a static library to link them with
diff --git a/lib/easy_lock.h b/lib/easy_lock.h
index 819f50ce8..1f54289ce 100644
--- a/lib/easy_lock.h
+++ b/lib/easy_lock.h
@@ -36,6 +36,9 @@
#elif defined (HAVE_ATOMIC)
#include <stdatomic.h>
+#if defined(HAVE_SCHED_YIELD)
+#include <sched.h>
+#endif
#define curl_simple_lock atomic_bool
#define CURL_SIMPLE_LOCK_INIT false