From 30778b1955df5e138ce7c5cd078b37f98b4eb6f8 Mon Sep 17 00:00:00 2001 From: yukkop Date: Sun, 20 Apr 2025 12:56:42 +0000 Subject: [PATCH] refactor: `hectic` C: perfavor --- flake.nix | 21 +++++++++++++++++---- package/c/hectic/default.nix | 5 +++++ package/c/hel/Makefile | 11 ++++++----- package/c/hel/hel.c | 2 +- package/c/hel/hel.o | Bin 49968 -> 49968 bytes package/c/hel/hel.so | Bin 46944 -> 46944 bytes 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index 5770570..a3405d3 100644 --- a/flake.nix +++ b/flake.nix @@ -155,7 +155,7 @@ ''; }; pure-c = pkgs.mkShell { - buildInputs = (with pkgs; [ inotify-tools ]) ++ (with self.packages.${system}; [ nvim-pager ]) ++ (with pkgs-unstable; [ gdb gcc ]); + buildInputs = (with pkgs; [ inotify-tools ]) ++ (with self.packages.${system}; [ nvim-pager ]) ++ (with pkgs-unstable; [ gdb gcc binutils ]); PAGER = "${self.packages.${system}.nvim-pager}/bin/pager"; shellHook = '' @@ -429,16 +429,29 @@ } { pname = "http"; inherit version; - src = prev.fetchFromGitHub { owner = "pramsey"; repo = "pgsql-http"; rev = "v${version}"; hash = "sha256-C8eqi0q1dnshUAZjIsZFwa5FTYc7vmATF3vv2CReWPM="; }; nativeBuildInputs = with prev; [pkg-config curl]; }; + src = prev.fetchFromGitHub { + owner = "pramsey"; + repo = "pgsql-http"; + rev = "v${version}"; + hash = "sha256-C8eqi0q1dnshUAZjIsZFwa5FTYc7vmATF3vv2CReWPM="; + }; + nativeBuildInputs = with prev; [pkg-config curl]; + }; buildHelExt = versionSuffix: let postgresql = prev."postgresql_${versionSuffix}"; + c-hectic = self.packages.${prev.system}.c-hectic; in buildPostgresqlExtension { inherit postgresql; } { - pname = "postgrect"; + pname = "hel"; version = "0.1"; src = ./package/c/hel; - nativeBuildInputs = (with prev; [pkg-config]) ++ [ self.packages.${prev.system}.c-hectic ]; + nativeBuildInputs = (with prev; [pkg-config]) ++ [ c-hectic ]; + dontShrinkRPath = true; + postFixup = '' + echo ">>> postFixup running..." + ${prev.patchelf}/bin/patchelf --set-rpath ${c-hectic}/lib $out/lib/hel.so + ''; preInstall = ''mkdir $out''; }; in { diff --git a/package/c/hectic/default.nix b/package/c/hectic/default.nix index 2c09e14..6969e41 100644 --- a/package/c/hectic/default.nix +++ b/package/c/hectic/default.nix @@ -22,6 +22,7 @@ stdenv.mkDerivation { cp target/libhectic.a $out/lib/ cp target/hectic.so $out/lib/ cp hectic.h $out/include/ + ln $out/lib/hectic.so $out/lib/libhectic.so # Create hectic-config script cat > $out/bin/hectic-config < #include #include -#include +#include "hectic.h" #include #ifdef PG_MODULE_MAGIC diff --git a/package/c/hel/hel.o b/package/c/hel/hel.o index c0f5d5b0e538cdf1fb9958adb9cf7b0890f97ed3..bee635094b7155a8bff59073cf08e59325602796 100644 GIT binary patch delta 14430 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 delta 14412 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 delta 5840 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