!xmLtiCaAJxfhURjrXl:matrix.org

NixOS RISC-V

235 Members
NixOS on RISC-V https://wiki.nixos.org/wiki/RISC-V https://pad.lassul.us/NixOS-riscv64-linux https://github.com/orgs/NixOS/teams/risc-v68 Servers

Load older messages


SenderMessageTime
11 Jan 2024
@digitalpirate:tchncs.deDigital Pirate removed their display name Digital Pirate.17:31:44
@digitalpirate:tchncs.deDigital Pirate left the room.17:31:48
16 Jan 2024
@lexea:matrix.orglexea joined the room.03:28:03
17 Jan 2024
@felschr:matrix.orgfelschr left the room.17:48:59
21 Jan 2024
@fgaz:matrix.orgfgaz
In reply to @fgaz:matrix.org
Now, how do I generate a bootstrap tarball and who do I ping to get it uploaded to tarballs.nixos.org? This doesn't seem to be documented anywhere
Merged 🎉 https://github.com/NixOS/nixpkgs/pull/282517
19:34:52
@alex:tunstall.xyzAlex
In reply to @fgaz:matrix.org
Merged 🎉 https://github.com/NixOS/nixpkgs/pull/282517
Nice, now I no longer need an ugly hack to build everything with RV64GC_Zba_Zbb (old bootstrap's GCC was too old).
19:40:47
23 Jan 2024
@rdg:matrix.orgrdghi, I'm building a RISC-V NixOS system for qemu without compressed instructions using this overlay http://sprunge.us/SzNRff that injects -march=rv64g via NIX_CFLAGS_COMPILE_riscv64_unknown_linux_gnu11:24:36
@rdg:matrix.orgrdgto ensure there are no compressed instructions I enabled a trap in QEMU that aborts if a compressed instruction is used11:25:04
@rdg:matrix.orgrdgit boots fine and reaches userspace, but there is a problem in libgcc_s.so, which causes a SIGILL11:25:32
@rdg:matrix.orgrdgI'm not sure if this method works for libgcc_s as it may end up being built by the new compiler, ignoring my -march hack11:27:04
@rdg:matrix.orgrdgany ideas?11:27:33
@alex:tunstall.xyzAlex
In reply to @rdg:matrix.org
any ideas?

Have you tried setting gcc.arch in the targetSystem option for nixpkgs?

I'd share some specific code, but I can't find it. I think it might only be on my RISC-V system.

13:07:12
@alex:tunstall.xyzAlex
In reply to @rdg:matrix.org
any ideas?

If you're compiling natively (YMMV for cross-compilation), the following should work, since it seems to be used by all gcc compilers, including when compiling gcc itself from the bootstrap gcc.

nixpkgs.config.gcc.arch = "rv64g";
13:20:24
@alex:tunstall.xyzAlex *

If you're compiling natively (YMMV for cross-compilation), the following should work, since it seems to be used by all gcc compilers, including when compiling gcc itself from the bootstrap gcc.

nixpkgs.localSystem.gcc.arch = "rv64g";
13:20:53
@rdg:matrix.orgrdg Alex: I'm cross compiling, so I tried adding it in the nixpkgs.crossSystem.gcc.arch but I don't see it with NIX_DEBUG=1 being added anywhere 13:27:30
@rdg:matrix.orgrdgfor native compilation we had successfully used nixpkgs.localSystem.gcc.arch in other tests13:28:13
@rdg:matrix.orgrdghttps://github.com/NixOS/nixpkgs/blob/15ff1758e7816331033baa14eebbea68626128f3/pkgs/build-support/cc-wrapper/default.nix#L60115:33:44
@rdg:matrix.orgrdgit is injected before not after the original flags15:34:03
@alex:tunstall.xyzAlex
In reply to @rdg:matrix.org
https://github.com/NixOS/nixpkgs/blob/15ff1758e7816331033baa14eebbea68626128f3/pkgs/build-support/cc-wrapper/default.nix#L601

I think it's because isGccArchSupported "rv64g" is false and you have to patch nixpkgs so that it doesn't think the arch isn't supported.

That whole function is a nightmare for RISC-V's highly customisable ISA...

15:55:39
@rdg:matrix.orgrdgthe flag arrives to cc-cflags-before15:57:33
@rdg:matrix.orgrdgthe problem is that some packages inject their own -march, overriding it15:57:55
@rdg:matrix.orgrdgthat's why I used NIX_CFLAGS_COMPILE_riscv64_unknown_linux_gnu, as it gets added after15:58:20
@rdg:matrix.orgrdgbut it doesn't work for musl (required for the security wrappers) or rust15:58:48
@alex:tunstall.xyzAlex
In reply to @rdg:matrix.org
the problem is that some packages inject their own -march, overriding it
Oh, I think I might have encountered one of those.
But I didn't really need it, so I replaced it with a package that worked (or patched it? I can't remember).
15:59:10
@rdg:matrix.orgrdgI'm testing with gcc.arch again, and I will see if I can instead patch the broken packages15:59:39
@rdg:matrix.orgrdgas it seems to be a better solution15:59:56
@gsaurel:laas.frGuilhem left the room.16:00:23
@alex:tunstall.xyzAlexDon't forget to look at the wiki page linked in the room description and update it if you find anything new. ^.^16:00:58
26 Jan 2024
@rdg:matrix.orgrdgUsing gcc.arch = "rv64g" works mostly okay, except for security wrappers that are compiled with pkgsStatic and the flag is not propagated there13:48:56
@rdg:matrix.orgrdgI had to also modify the kernel configuration to disable EFI13:49:21

Show newer messages


Back to Room ListRoom Version: 10