diff --git a/flake.nix b/flake.nix index e158b50..0bef8c3 100644 --- a/flake.nix +++ b/flake.nix @@ -114,7 +114,7 @@ inherit (pkgs) # passthru.buildInputs go - gcc + clang # nativeBuildInputs pkg-config @@ -129,6 +129,10 @@ zstd gnutar coreutils + + # for check + util-linux + nettools ; }; hsu = pkgs.callPackage ./cmd/hsu/package.nix { inherit (self.packages.${system}) hakurei; }; diff --git a/internal/outcome/shim-signal.c b/internal/outcome/shim-signal.c index 7e56206..0e04abb 100644 --- a/internal/outcome/shim-signal.c +++ b/internal/outcome/shim-signal.c @@ -38,7 +38,7 @@ static void hakurei_shim_sigaction(int sig, siginfo_t *si, void *ucontext) { void hakurei_shim_setup_cont_signal(pid_t ppid, int fd) { if (hakurei_shim_param_ppid != -1 || hakurei_shim_fd != -1) - *(int *)NULL = 0; /* unreachable */ + *(volatile int *)NULL = 0; /* unreachable */ struct sigaction new_action = {0}, old_action = {0}; if (sigaction(SIGCONT, NULL, &old_action) != 0) diff --git a/package.nix b/package.nix index 21aee35..fb449c1 100644 --- a/package.nix +++ b/package.nix @@ -20,7 +20,7 @@ # for passthru.buildInputs go, - gcc, + clang, # for check util-linux, @@ -81,8 +81,13 @@ buildGoModule rec { hsuPath = "/run/wrappers/bin/hsu"; }; - # nix build environment does not allow acls - env.GO_TEST_SKIP_ACL = 1; + env = { + # use clang instead of gcc + CC = "clang -O3 -Werror"; + + # nix build environment does not allow acls + GO_TEST_SKIP_ACL = 1; + }; buildInputs = [ libffi @@ -135,7 +140,7 @@ buildGoModule rec { passthru.targetPkgs = [ go - gcc + clang xorg.xorgproto util-linux