diff --git a/.gitignore b/.gitignore index 8b3330d..e77721e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,4 @@ *.d host/funcheck /.vscode -/.vscode/* \ No newline at end of file +/.vscode/* diff --git a/flake.lock b/flake.lock index 7757b6f..4739c73 100644 --- a/flake.lock +++ b/flake.lock @@ -20,10 +20,12 @@ }, "nixpkgs": { "locked": { - "lastModified": 0, - "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", - "path": "/nix/store/zq2axpgzd5kykk1v446rkffj3bxa2m2h-source", - "type": "path" + "lastModified": 1774273680, + "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", + "type": "github" }, "original": { "id": "nixpkgs", diff --git a/flake.nix b/flake.nix index 6c79e75..dcbf899 100644 --- a/flake.nix +++ b/flake.nix @@ -5,53 +5,60 @@ flake-utils.url = "github:numtide/flake-utils"; }; - outputs = { - self, - nixpkgs, - flake-utils, - }: + outputs = + { + self, + nixpkgs, + flake-utils, + }: flake-utils.lib.eachDefaultSystem ( - system: let + system: + let pkgs = nixpkgs.legacyPackages.${system}; llvm = pkgs.llvm_18; - commit = - if self ? rev then builtins.substring 0 12 self.rev - else if self ? dirtyRev then builtins.substring 0 12 (pkgs.lib.removeSuffix "-dirty" self.dirtyRev) - else "1.1.4"; + commit = + if self ? rev then + builtins.substring 0 12 self.rev + else if self ? dirtyRev then + builtins.substring 0 12 (pkgs.lib.removeSuffix "-dirty" self.dirtyRev) + else + "1.1.4"; funcheck_drv = pkgs.stdenv.mkDerivation (final: { pname = "funcheck"; version = commit; src = ./.; patches = [ - ( - builtins.toFile - "remove_fwrite_unlocked.patch" - '' - diff --git a/library/srcs/hook/functions/stdio.c b/library/srcs/hook/functions/stdio.c - index dbb9e2a..2d6b9dd 100644 - --- a/library/srcs/hook/functions/stdio.c - +++ b/library/srcs/hook/functions/stdio.c - @@ -104,7 +104,7 @@ DEFINE_HOOK_FUNCTION(size_t, fwrite, EIO, 0, const void *, ptr, size_t, size, si + (builtins.toFile "remove_fwrite_unlocked.patch" '' + diff --git a/library/srcs/hook/functions/stdio.c b/library/srcs/hook/functions/stdio.c + index dbb9e2a..2d6b9dd 100644 + --- a/library/srcs/hook/functions/stdio.c + +++ b/library/srcs/hook/functions/stdio.c + @@ -104,7 +104,7 @@ DEFINE_HOOK_FUNCTION(size_t, fwrite, EIO, 0, const void *, ptr, size_t, size, si - DEFINE_HOOK_FUNCTION(int, fputs_unlocked, EIO, 0, const char *, s, FILE *, stream); - DEFINE_HOOK_FUNCTION(size_t, fread_unlocked, EIO, 0, void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); - -DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); - +//DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); + DEFINE_HOOK_FUNCTION(int, fputs_unlocked, EIO, 0, const char *, s, FILE *, stream); + DEFINE_HOOK_FUNCTION(size_t, fread_unlocked, EIO, 0, void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); + -DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); + +//DEFINE_HOOK_FUNCTION(size_t, fwrite_unlocked, EIO, 0, const void *, ptr, size_t, size, size_t, nmemb, FILE *, stream); - DEFINE_HOOK_FUNCTION(int, fseek, EIO, -1, FILE *, stream, long, offset, int, whence); - DEFINE_HOOK_FUNCTION(long, ftell, EIO, -1, FILE *, stream); + DEFINE_HOOK_FUNCTION(int, fseek, EIO, -1, FILE *, stream, long, offset, int, whence); + DEFINE_HOOK_FUNCTION(long, ftell, EIO, -1, FILE *, stream); - '' - ) + '') ]; - nativeBuildInputs = [pkgs.makeWrapper pkgs.minilibx pkgs.gnumake pkgs.xorg.libX11]; - buildInputs = [llvm]; + nativeBuildInputs = with pkgs; [ + makeWrapper + minilibx + gnumake + libX11 + ]; + buildInputs = [ llvm ]; buildPhase = '' ls -la export CFLAGS="-Werror -Wextra -Wall -Wno-stringop-truncation \ -Wno-attributes -Wno-array-parameter -Wno-unused-result \ + -Wno-implicit-function-declaration -Wno-int-conversion \ -DABSOLUTE_LIBRARY_PATH=\\\"$out/share/funcheck/libfuncheck.so\\\" \ - -g -fPIC -fvisibility=hidden" + -g -fPIC -fvisibility=hidden -Wno-deprecated-declarations -std=gnu99" make -C library "CC=$CC" "CFLAGS=$CFLAGS" "VERSION=${final.version}" make -C host "CC=$CC" "CFLAGS=$CFLAGS" "VERSION=${final.version}" ''; @@ -61,16 +68,17 @@ cp ./host/funcheck "$out/bin/funcheck" cp ./library/libfuncheck.so "$out/share/funcheck/libfuncheck.so" wrapProgram $out/bin/funcheck \ - --prefix PATH : ${pkgs.lib.makeBinPath [llvm]} + --prefix PATH : ${pkgs.lib.makeBinPath [ llvm ]} ''; }); - in { + in + { packages = rec { funcheck = default; default = funcheck_drv; }; apps = rec { - funcheck = flake-utils.lib.mkApp {drv = self.packages.${system}.funcheck;}; + funcheck = flake-utils.lib.mkApp { drv = self.packages.${system}.funcheck; }; default = funcheck; }; }