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