diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index c1876093600d..0a8e1ac8e702 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -440,6 +440,11 @@ rec { isPE = { kernel.execFormat = execFormats.pe; }; + + isEabi = { + abi.eabi = true; + }; + }; # given two patterns, return a pattern which is their logical AND. diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index c76aa592fc28..86f8c169d901 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -662,15 +662,19 @@ rec { # On ARM, this corresponds to ARMEABI. eabi = { float = "soft"; + eabi = true; }; eabihf = { float = "hard"; + eabi = true; }; # Other architectures should use ELF in embedded situations. elf = { }; - androideabi = { }; + androideabi = { + eabi = true; + }; android = { assertions = [ { @@ -684,9 +688,11 @@ rec { gnueabi = { float = "soft"; + eabi = true; }; gnueabihf = { float = "hard"; + eabi = true; }; gnu = { assertions = [ @@ -730,17 +736,21 @@ rec { musleabi = { float = "soft"; + eabi = true; }; musleabihf = { float = "hard"; + eabi = true; }; musl = { }; uclibceabi = { float = "soft"; + eabi = true; }; uclibceabihf = { float = "hard"; + eabi = true; }; uclibc = { }; diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 856a3cfaa186..c8d977b36e53 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1120,6 +1120,13 @@ githubId = 82811; name = "Aldo Borrero"; }; + aleclearmind = { + email = "ale.nix@clearmind.me"; + matrix = "@bake.monorail:matrix.org"; + github = "aleclearmind"; + githubId = 2545644; + name = "Alessandro Di Federico"; + }; alejandrosame = { email = "alejandrosanchzmedina@gmail.com"; matrix = "@alejandrosame:matrix.org"; diff --git a/pkgs/by-name/uc/uclibc-ng/package.nix b/pkgs/by-name/uc/uclibc-ng/package.nix index ef49ca1e12e0..d512a4a571b3 100644 --- a/pkgs/by-name/uc/uclibc-ng/package.nix +++ b/pkgs/by-name/uc/uclibc-ng/package.nix @@ -26,16 +26,15 @@ let echo "parseconfig: removing $NAME" sed -i /^$NAME=/d .config - #if test "$OPTION" != n; then - echo "parseconfig: setting $NAME=$OPTION" - echo "$NAME=$OPTION" >> .config - #fi + echo "parseconfig: setting $NAME=$OPTION" + echo "$NAME=$OPTION" >> .config done set +x } ''; # UCLIBC_SUSV4_LEGACY defines 'tmpnam', needed for gcc libstdc++ builds. + # 'ftw' needed to build acl, a coreutils dependency nixConfig = '' RUNTIME_PREFIX "/" DEVEL_PREFIX "/" @@ -52,13 +51,20 @@ let + lib.optionalString (stdenv.hostPlatform.gcc.float or "" == "soft") '' UCLIBC_HAS_FPU n '' - + lib.optionalString (stdenv.hostPlatform.isAarch32 && isCross) '' + + lib.optionalString stdenv.hostPlatform.isEabi '' CONFIG_ARM_EABI y + '' + + lib.optionalString stdenv.hostPlatform.isLittleEndian '' ARCH_WANTS_BIG_ENDIAN n ARCH_BIG_ENDIAN n ARCH_WANTS_LITTLE_ENDIAN y ARCH_LITTLE_ENDIAN y - UCLIBC_HAS_FPU n + '' + + lib.optionalString stdenv.hostPlatform.isBigEndian '' + ARCH_WANTS_BIG_ENDIAN y + ARCH_BIG_ENDIAN y + ARCH_WANTS_LITTLE_ENDIAN n + ARCH_LITTLE_ENDIAN n ''; in stdenv.mkDerivation (finalAttrs: { @@ -70,9 +76,8 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-X386r92yygj7KVvkVWHAGIQHED10Rs/SZLm4Iv7T7S0="; }; - # 'ftw' needed to build acl, a coreutils dependency configurePhase = '' - make defconfig + make defconfig ARCH=${stdenv.hostPlatform.linuxArch} ${configParser} cat << EOF | parseconfig ${nixConfig} @@ -92,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: { makeFlags = [ "ARCH=${stdenv.hostPlatform.linuxArch}" "TARGET_ARCH=${stdenv.hostPlatform.linuxArch}" - "VERBOSE=1" + "V=1" ] ++ lib.optionals isCross [ "CROSS=${stdenv.cc.targetPrefix}" @@ -144,7 +149,7 @@ stdenv.mkDerivation (finalAttrs: { experimental and need more testing. ''; license = lib.licenses.lgpl2Plus; - maintainers = [ ]; + maintainers = with lib.maintainers; [ aleclearmind ]; platforms = lib.platforms.linux; badPlatforms = lib.platforms.aarch64; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1ec7e29d56f1..7a2fbc38bd0c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6975,7 +6975,7 @@ with pkgs; else if libc == "bionic" then bionic else if libc == "uclibc" then - uclibc + uclibc-ng else if libc == "avrlibc" then avrlibc else if libc == "newlib" && stdenv.hostPlatform.isMsp430 then