From e8b384078f32ae8bdf7ded43e035b541d61a8cad Mon Sep 17 00:00:00 2001 From: Alessandro Di Federico Date: Thu, 30 Oct 2025 20:19:51 +0100 Subject: [PATCH] uclibc-ng: specify architecture in `make defconfig` This ensures the correct architecture is picked up in the `.config` file. For instance, specifying `ARCH=arm` will correctly set TARGET_ARCH=arm and TARGET_arm=y. This commit has been tested to successfully produce toolchains for: * mipsel-unknown-linux-uclibc (ben-nanonote) * mips-unknown-linux-uclibc * armv7a-unknown-linux-uclibceabihf * armv7a-unknown-linux-uclibceabi Specifically, the following script has been used to test the toolchains: #!/usr/bin/env bash set -euo pipefail function test_toolchain() { TRIPLE="$1" shift EXPRESSION="$1" shift QEMU_ARCH="$1" shift echo "Testing $TRIPLE" > /dev/stderr BUILT_PACKAGE=$(nix-build -E "$EXPRESSION") nix-shell -p "$BUILT_PACKAGE" -p qemu --run ' set -euo pipefail echo "#include " > program.c echo "int main() { puts(\"Hello!\"); }" >> program.c '"$TRIPLE"'-gcc program.c -o program -static for TO_GREP in '"$(printf "'%s' " "$@")"'; do readelf -h program | grep -F "$TO_GREP" done qemu-'"$QEMU_ARCH"' ./program ' } function test_triple() { TRIPLE="$1" shift QEMU_ARCH="$1" shift test_toolchain "$TRIPLE" '(import ./. { crossSystem = { config = "'"$TRIPLE"'"; }; }).stdenv.cc' "$QEMU_ARCH" "$@" } function test_cross() { TRIPLE="$1" shift CROSS="$1" shift QEMU_ARCH="$1" shift test_toolchain "$TRIPLE" '(import ./. {}).pkgsCross.'"$CROSS"'.stdenv.cc' "$QEMU_ARCH" "$@" } test_cross "mipsel-unknown-linux-uclibc" "ben-nanonote" "mipsel" "little endian" test_triple "mips-unknown-linux-uclibc" "mips" "big endian" test_triple "armv7a-unknown-linux-uclibceabihf" "arm" "little endian" "EABI" "hard-float ABI" test_triple "armv7a-unknown-linux-uclibceabi" "arm" "little endian" "EABI" "soft-float ABI" --- pkgs/by-name/uc/uclibc-ng/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/uc/uclibc-ng/package.nix b/pkgs/by-name/uc/uclibc-ng/package.nix index 24de1084cc53..d512a4a571b3 100644 --- a/pkgs/by-name/uc/uclibc-ng/package.nix +++ b/pkgs/by-name/uc/uclibc-ng/package.nix @@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: { }; configurePhase = '' - make defconfig + make defconfig ARCH=${stdenv.hostPlatform.linuxArch} ${configParser} cat << EOF | parseconfig ${nixConfig}