diff options
| author | Theo Buehler <tb@openbsd.org> | 2026-01-26 07:22:23 +0100 |
|---|---|---|
| committer | Theo Buehler <tb@openbsd.org> | 2026-01-26 07:22:23 +0100 |
| commit | d0127ebaf2bfce3f616922c4cea751c0a7ac705e (patch) | |
| tree | ad6a28ef7bf0a61238ba86532cca3b427870ae6b | |
| parent | 022cafc5dc114c731f06f9b73508d001ddc4f825 (diff) | |
| parent | 836c23eb15c1d4c2d408f22c7e2e34e87a3697c2 (diff) | |
| download | portable-d0127ebaf2bfce3f616922c4cea751c0a7ac705e.tar.gz portable-d0127ebaf2bfce3f616922c4cea751c0a7ac705e.tar.bz2 portable-d0127ebaf2bfce3f616922c4cea751c0a7ac705e.zip | |
Land #1227 - add missing env vars for cross compilation
| -rwxr-xr-x | scripts/test | 60 |
1 files changed, 46 insertions, 14 deletions
diff --git a/scripts/test b/scripts/test index a7ce1ea..2148d52 100755 --- a/scripts/test +++ b/scripts/test | |||
| @@ -12,6 +12,35 @@ fi | |||
| 12 | 12 | ||
| 13 | ENABLE_ASM="${ENABLE_ASM:=ON}" | 13 | ENABLE_ASM="${ENABLE_ASM:=ON}" |
| 14 | 14 | ||
| 15 | # setup_cross_compiler sets up environment variables for cross-compilation with the given prefix. | ||
| 16 | setup_cross_compiler() { | ||
| 17 | cross_prefix=$1 | ||
| 18 | |||
| 19 | CC=${cross_prefix}-gcc | ||
| 20 | CXX=${cross_prefix}-g++ | ||
| 21 | AR=${cross_prefix}-ar | ||
| 22 | STRIP=${cross_prefix}-strip | ||
| 23 | RANLIB=${cross_prefix}-ranlib | ||
| 24 | |||
| 25 | # If the unversioned symlink for gcc doesn't exist, find versioned binary. | ||
| 26 | if ! command -v "$CC" >/dev/null 2>&1; then | ||
| 27 | gcc_ver=$(find /usr/bin -name "${CC}-[0-9]*" -prune 2>/dev/null \ | ||
| 28 | | sed "s/.*${CC}-//" | sort -n | tail -n 1) | ||
| 29 | CC=${CC}-${gcc_ver} | ||
| 30 | CXX=${CXX}-${gcc_ver} | ||
| 31 | fi | ||
| 32 | |||
| 33 | # Check all binaries actually exist. | ||
| 34 | for c in "$CC" "$CXX" "$AR" "$STRIP" "$RANLIB"; do | ||
| 35 | if ! command -v "$c" >/dev/null 2>&1; then | ||
| 36 | echo "##### Error: $c not found" | ||
| 37 | exit 1 | ||
| 38 | fi | ||
| 39 | done | ||
| 40 | |||
| 41 | echo "##### Using $($CC --version | head -n 1)" | ||
| 42 | } | ||
| 43 | |||
| 15 | if type apt-get >/dev/null 2>&1; then | 44 | if type apt-get >/dev/null 2>&1; then |
| 16 | sudo apt-get update | 45 | sudo apt-get update |
| 17 | sudo apt-get install -y cmake ninja-build | 46 | sudo apt-get install -y cmake ninja-build |
| @@ -87,7 +116,7 @@ elif [ "$ARCH" = "native" ]; then | |||
| 87 | ninja test | 116 | ninja test |
| 88 | ) | 117 | ) |
| 89 | 118 | ||
| 90 | elif [ "$ARCH" = "mingw32" -o "$ARCH" = "mingw64" ]; then | 119 | elif [ "$ARCH" = "mingw32" ] || [ "$ARCH" = "mingw64" ]; then |
| 91 | CPU=i686 | 120 | CPU=i686 |
| 92 | if [ "$ARCH" = "mingw64" ]; then | 121 | if [ "$ARCH" = "mingw64" ]; then |
| 93 | CPU=x86_64 | 122 | CPU=x86_64 |
| @@ -115,54 +144,57 @@ elif [ "$ARCH" = "mingw32" -o "$ARCH" = "mingw64" ]; then | |||
| 115 | ninja -j 4 | 144 | ninja -j 4 |
| 116 | ) | 145 | ) |
| 117 | 146 | ||
| 118 | elif [ "$ARCH" = "arm32" -o "$ARCH" = "arm64" ]; then | 147 | elif [ "$ARCH" = "arm32" ] || [ "$ARCH" = "arm64" ]; then |
| 119 | sudo apt-get install -y qemu-user-static binfmt-support | 148 | sudo apt-get install -y qemu-user-static binfmt-support |
| 120 | 149 | ||
| 121 | if [ "$ARCH" = "arm32" ]; then | 150 | if [ "$ARCH" = "arm32" ]; then |
| 122 | sudo apt-get install -y g++-arm-linux-gnueabihf | 151 | sudo apt-get install -y g++-arm-linux-gnueabihf |
| 123 | sudo ln -sf /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib/ | 152 | sudo ln -sf /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib/ |
| 153 | setup_cross_compiler arm-linux-gnueabihf | ||
| 154 | |||
| 124 | ./configure --host=arm-linux-gnueabihf | 155 | ./configure --host=arm-linux-gnueabihf |
| 125 | LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib make -j 4 check | 156 | LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib make -j 4 check |
| 126 | else | 157 | else |
| 127 | sudo apt-get install -y g++-aarch64-linux-gnu | 158 | sudo apt-get install -y g++-aarch64-linux-gnu |
| 128 | sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ | 159 | sudo ln -sf /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ |
| 160 | setup_cross_compiler aarch64-linux-gnu | ||
| 161 | |||
| 129 | ./configure --host=aarch64-linux-gnu | 162 | ./configure --host=aarch64-linux-gnu |
| 130 | LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib make -j 4 check | 163 | LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib make -j 4 check |
| 131 | fi | 164 | fi |
| 132 | 165 | ||
| 133 | file apps/openssl/.libs/openssl | 166 | file apps/openssl/openssl |
| 134 | 167 | ||
| 135 | elif [ "$ARCH" = "loong64" ]; then | 168 | elif [ "$ARCH" = "loong64" ]; then |
| 136 | sudo apt install -y qemu-user-static binfmt-support g++-14-loongarch64-linux-gnu | 169 | sudo apt install -y qemu-user-static binfmt-support g++-14-loongarch64-linux-gnu |
| 137 | sudo ln -sf /usr/loongarch64-linux-gnu/lib64/ld-linux-loongarch-lp64d.so.1 /lib64 | 170 | sudo ln -sf /usr/loongarch64-linux-gnu/lib64/ld-linux-loongarch-lp64d.so.1 /lib64 |
| 138 | 171 | setup_cross_compiler loongarch64-linux-gnu | |
| 139 | CC=loongarch64-linux-gnu-gcc-14 | ||
| 140 | CXX=loongarch64-linux-gnu++-14 | ||
| 141 | AR=loongarch64-linux-gnu-ar | ||
| 142 | STRIP=loongarch64-linux-gnu-strip-14 | ||
| 143 | RANLIB=loongarch64-linux-gnu-ranlib | ||
| 144 | 172 | ||
| 145 | ./configure --host=loongarch64-linux-gnu | 173 | ./configure --host=loongarch64-linux-gnu |
| 146 | LD_LIBRARY_PATH=/usr/loongarch64-linux-gnu/lib make -j 4 check | 174 | LD_LIBRARY_PATH=/usr/loongarch64-linux-gnu/lib make -j 4 check |
| 147 | 175 | ||
| 148 | file apps/openssl/openssl | 176 | file apps/openssl/openssl |
| 149 | 177 | ||
| 150 | elif [ "$ARCH" = "mips32" -o "$ARCH" = "mips64" ]; then | 178 | elif [ "$ARCH" = "mips32" ] || [ "$ARCH" = "mips64" ]; then |
| 151 | sudo apt-get install -y qemu-user-static binfmt-support | 179 | sudo apt-get install -y qemu-user-static binfmt-support |
| 152 | 180 | ||
| 153 | if [ "$ARCH" = "mips32" ]; then | 181 | if [ "$ARCH" = "mips32" ]; then |
| 154 | sudo apt-get install -y g++-mips-linux-gnu | 182 | sudo apt-get install -y g++-mips-linux-gnu |
| 155 | sudo ln -sf /usr/mipsel-linux-gnu/lib/ld.so.1 /lib/ | 183 | sudo ln -sf /usr/mips-linux-gnu/lib/ld.so.1 /lib/ |
| 156 | ./configure --host=mipsel-linux-gnu | 184 | setup_cross_compiler mips-linux-gnu |
| 157 | LD_LIBRARY_PATH=/usr/mipsel-linux-gnu/lib make -j 4 check | 185 | |
| 186 | ./configure --host=mips-linux-gnu | ||
| 187 | LD_LIBRARY_PATH=/usr/mips-linux-gnu/lib make -j 4 check | ||
| 158 | else | 188 | else |
| 159 | sudo apt-get install -y g++-mips64el-linux-gnuabi64 | 189 | sudo apt-get install -y g++-mips64el-linux-gnuabi64 |
| 160 | sudo ln -sf /usr/mips64el-linux-gnuabi64/lib64/ld.so.1 /lib64 | 190 | sudo ln -sf /usr/mips64el-linux-gnuabi64/lib64/ld.so.1 /lib64 |
| 191 | setup_cross_compiler mips64el-linux-gnuabi64 | ||
| 192 | |||
| 161 | ./configure --host=mips64el-linux-gnuabi64 | 193 | ./configure --host=mips64el-linux-gnuabi64 |
| 162 | LD_LIBRARY_PATH=/usr/mips64el-linux-gnuabi64/lib make -j 4 check | 194 | LD_LIBRARY_PATH=/usr/mips64el-linux-gnuabi64/lib make -j 4 check |
| 163 | fi | 195 | fi |
| 164 | 196 | ||
| 165 | file apps/openssl/.libs/openssl | 197 | file apps/openssl/openssl |
| 166 | 198 | ||
| 167 | elif [ "$ARCH" = "android" ]; then | 199 | elif [ "$ARCH" = "android" ]; then |
| 168 | export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake | 200 | export TC_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake |
