|
5 | 5 | flake-utils.url = "github:numtide/flake-utils"; |
6 | 6 | }; |
7 | 7 |
|
8 | | - outputs = { |
9 | | - self, |
10 | | - nixpkgs, |
11 | | - flake-utils, |
12 | | - }: |
| 8 | + outputs = |
| 9 | + { |
| 10 | + self, |
| 11 | + nixpkgs, |
| 12 | + flake-utils, |
| 13 | + }: |
13 | 14 | flake-utils.lib.eachDefaultSystem ( |
14 | | - system: let |
| 15 | + system: |
| 16 | + let |
15 | 17 | pkgs = nixpkgs.legacyPackages.${system}; |
16 | 18 | llvm = pkgs.llvm_18; |
17 | | - commit = |
18 | | - if self ? rev then builtins.substring 0 12 self.rev |
19 | | - else if self ? dirtyRev then builtins.substring 0 12 (pkgs.lib.removeSuffix "-dirty" self.dirtyRev) |
20 | | - else "1.1.4"; |
| 19 | + commit = |
| 20 | + if self ? rev then |
| 21 | + builtins.substring 0 12 self.rev |
| 22 | + else if self ? dirtyRev then |
| 23 | + builtins.substring 0 12 (pkgs.lib.removeSuffix "-dirty" self.dirtyRev) |
| 24 | + else |
| 25 | + "1.1.4"; |
21 | 26 | funcheck_drv = pkgs.stdenv.mkDerivation (final: { |
22 | 27 | pname = "funcheck"; |
23 | 28 | version = commit; |
24 | 29 | src = ./.; |
25 | 30 | patches = [ |
26 | | - ( |
27 | | - builtins.toFile |
28 | | - "remove_fwrite_unlocked.patch" |
29 | | - '' |
30 | | - diff --git a/library/srcs/hook/functions/stdio.c b/library/srcs/hook/functions/stdio.c |
31 | | - index dbb9e2a..2d6b9dd 100644 |
32 | | - --- a/library/srcs/hook/functions/stdio.c |
33 | | - +++ b/library/srcs/hook/functions/stdio.c |
34 | | - @@ -104,7 +104,7 @@ DEFINE_HOOK_FUNCTION(size_t, fwrite, EIO, 0, const void *, ptr, size_t, size, si |
| 31 | + (builtins.toFile "remove_fwrite_unlocked.patch" '' |
| 32 | + diff --git a/library/srcs/hook/functions/stdio.c b/library/srcs/hook/functions/stdio.c |
| 33 | + index dbb9e2a..2d6b9dd 100644 |
| 34 | + --- a/library/srcs/hook/functions/stdio.c |
| 35 | + +++ b/library/srcs/hook/functions/stdio.c |
| 36 | + @@ -104,7 +104,7 @@ DEFINE_HOOK_FUNCTION(size_t, fwrite, EIO, 0, const void *, ptr, size_t, size, si |
35 | 37 |
|
36 | | - DEFINE_HOOK_FUNCTION(int, fputs_unlocked, EIO, 0, const char *, s, FILE *, stream); |
37 | | - DEFINE_HOOK_FUNCTION(size_t, fread_unlocked, EIO, 0, void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
38 | | - -DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
39 | | - +//DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
| 38 | + DEFINE_HOOK_FUNCTION(int, fputs_unlocked, EIO, 0, const char *, s, FILE *, stream); |
| 39 | + DEFINE_HOOK_FUNCTION(size_t, fread_unlocked, EIO, 0, void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
| 40 | + -DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
| 41 | + +//DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); |
40 | 42 |
|
41 | | - DEFINE_HOOK_FUNCTION(int, fseek, EIO, -1, FILE *, stream, long, offset, int, whence); |
42 | | - DEFINE_HOOK_FUNCTION(long, ftell, EIO, -1, FILE *, stream); |
| 43 | + DEFINE_HOOK_FUNCTION(int, fseek, EIO, -1, FILE *, stream, long, offset, int, whence); |
| 44 | + DEFINE_HOOK_FUNCTION(long, ftell, EIO, -1, FILE *, stream); |
43 | 45 |
|
44 | | - '' |
45 | | - ) |
| 46 | + '') |
46 | 47 | ]; |
47 | | - nativeBuildInputs = [pkgs.makeWrapper pkgs.minilibx pkgs.gnumake pkgs.xorg.libX11]; |
48 | | - buildInputs = [llvm]; |
| 48 | + nativeBuildInputs = with pkgs; [ |
| 49 | + makeWrapper |
| 50 | + minilibx |
| 51 | + gnumake |
| 52 | + libX11 |
| 53 | + ]; |
| 54 | + buildInputs = [ llvm ]; |
49 | 55 | buildPhase = '' |
50 | 56 | ls -la |
51 | 57 | export CFLAGS="-Werror -Wextra -Wall -Wno-stringop-truncation \ |
52 | 58 | -Wno-attributes -Wno-array-parameter -Wno-unused-result \ |
| 59 | + -Wno-implicit-function-declaration -Wno-int-conversion \ |
53 | 60 | -DABSOLUTE_LIBRARY_PATH=\\\"$out/share/funcheck/libfuncheck.so\\\" \ |
54 | | - -g -fPIC -fvisibility=hidden" |
| 61 | + -g -fPIC -fvisibility=hidden -Wno-deprecated-declarations -std=gnu99" |
55 | 62 | make -C library "CC=$CC" "CFLAGS=$CFLAGS" "VERSION=${final.version}" |
56 | 63 | make -C host "CC=$CC" "CFLAGS=$CFLAGS" "VERSION=${final.version}" |
57 | 64 | ''; |
|
61 | 68 | cp ./host/funcheck "$out/bin/funcheck" |
62 | 69 | cp ./library/libfuncheck.so "$out/share/funcheck/libfuncheck.so" |
63 | 70 | wrapProgram $out/bin/funcheck \ |
64 | | - --prefix PATH : ${pkgs.lib.makeBinPath [llvm]} |
| 71 | + --prefix PATH : ${pkgs.lib.makeBinPath [ llvm ]} |
65 | 72 | ''; |
66 | 73 | }); |
67 | | - in { |
| 74 | + in |
| 75 | + { |
68 | 76 | packages = rec { |
69 | 77 | funcheck = default; |
70 | 78 | default = funcheck_drv; |
71 | 79 | }; |
72 | 80 | apps = rec { |
73 | | - funcheck = flake-utils.lib.mkApp {drv = self.packages.${system}.funcheck;}; |
| 81 | + funcheck = flake-utils.lib.mkApp { drv = self.packages.${system}.funcheck; }; |
74 | 82 | default = funcheck; |
75 | 83 | }; |
76 | 84 | } |
|
0 commit comments