aboutsummaryrefslogtreecommitdiff
path: root/srcds-pkgs/bad/libfinite.nix
diff options
context:
space:
mode:
authoryuuko <yuuko@partyvan.io>2024-08-29 21:51:04 -0700
committeryuuko <yuuko@partyvan.io>2024-08-29 21:51:04 -0700
commit56449e59d7aabd1c06fb67a51a1e129b55cb9270 (patch)
tree19f3faf805e9b6461a5940d1a050d13e5271ef55 /srcds-pkgs/bad/libfinite.nix
break out of system config
Diffstat (limited to 'srcds-pkgs/bad/libfinite.nix')
-rw-r--r--srcds-pkgs/bad/libfinite.nix20
1 files changed, 20 insertions, 0 deletions
diff --git a/srcds-pkgs/bad/libfinite.nix b/srcds-pkgs/bad/libfinite.nix
new file mode 100644
index 0000000..300bd18
--- /dev/null
+++ b/srcds-pkgs/bad/libfinite.nix
@@ -0,0 +1,20 @@
+# https://sourceware.org/git/?p=glibc.git;a=commit;h=7bdb921d
+{ runCommandWith, multiStdenv, writeText }:
+runCommandWith {
+ stdenv = multiStdenv;
+ name = "libfinite.a";
+} ''
+ cc -o finite.o -m32 -c ${writeText "finite.c" ''
+ #include <math.h>
+ /* metamod */
+ double __pow_finite(double x, double y) { return pow(x, y); }
+ /* sourcemod */
+ float __acosf_finite(float x) { return acosf(x); };
+ double __acos_finite(double x) { return acos(x); };
+ double __asin_finite(double x) { return asin(x); };
+ float __atan2f_finite(double y, double x) { return atan2f(y, x); }
+ double __atan2_finite(double y, double x) { return atan2(y, x); }
+ double __log_finite(double x) { return log(x); }
+ ''}
+ ar rcs $out finite.o
+''