···68686969 cpuTypes = with significantBytes; setTypes types.openCpuType {
7070 arm = { bits = 32; significantByte = littleEndian; family = "arm"; };
7171- armv5tel = { bits = 32; significantByte = littleEndian; family = "arm"; };
7272- armv6m = { bits = 32; significantByte = littleEndian; family = "arm"; };
7373- armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; };
7474- armv7a = { bits = 32; significantByte = littleEndian; family = "arm"; };
7575- armv7r = { bits = 32; significantByte = littleEndian; family = "arm"; };
7676- armv7m = { bits = 32; significantByte = littleEndian; family = "arm"; };
7777- armv7l = { bits = 32; significantByte = littleEndian; family = "arm"; };
7878- armv8a = { bits = 32; significantByte = littleEndian; family = "arm"; };
7979- armv8r = { bits = 32; significantByte = littleEndian; family = "arm"; };
8080- armv8m = { bits = 32; significantByte = littleEndian; family = "arm"; };
8181- aarch64 = { bits = 64; significantByte = littleEndian; family = "arm"; };
7171+ armv5tel = { bits = 32; significantByte = littleEndian; family = "arm"; version = "5"; };
7272+ armv6m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "6"; };
7373+ armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; version = "6"; };
7474+ armv7a = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; };
7575+ armv7r = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; };
7676+ armv7m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; };
7777+ armv7l = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; };
7878+ armv8a = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; };
7979+ armv8r = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; };
8080+ armv8m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; };
8181+ aarch64 = { bits = 64; significantByte = littleEndian; family = "arm"; version = "8"; };
82828383 i686 = { bits = 32; significantByte = littleEndian; family = "x86"; };
8484 x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; };
···271271 kernel = getKernel args.kernel;
272272 abi =
273273 /**/ if args ? abi then getAbi args.abi
274274- else if isLinux parsed then abis.gnu
274274+ else if isLinux parsed then
275275+ if isAarch32 parsed then
276276+ if lib.versionAtLeast (parsed.cpu.version or "0") "6"
277277+ then abis.gnueabihf
278278+ else abis.gnueabi
279279+ else abis.gnu
275280 else if isWindows parsed then abis.gnu
276281 else abis.unknown;
277282 };
-1
lib/systems/platforms.nix
···245245 gcc = {
246246 arch = "armv6";
247247 fpu = "vfp";
248248- float = "hard";
249248 # TODO(@Ericson2314) what is this and is it a good idea? It was
250249 # used in some cross compilation examples but not others.
251250 #