Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkgs/development/compilers/binaryen/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

stdenv.mkDerivation rec {
pname = "binaryen";
version = "112";
version = "113";

src = fetchFromGitHub {
owner = "WebAssembly";
repo = "binaryen";
rev = "version_${version}";
hash = "sha256-xVumVmiLMHJp3SItE8eL8OBPeq58HtOOiK9LL8SP4CQ=";
hash = "sha256-w93LIlLRn3PmVNytjFg6KI4CQ9zQUUM9kySiWAtPbOA=";
};

nativeBuildInputs = [ cmake python3 ];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 67f54fde2b1683aae3800f7a86a4e507c1125be8 Mon Sep 17 00:00:00 2001
From 4bbbb640934aa653bcfec0335798b77a8935b815 Mon Sep 17 00:00:00 2001
From: Yureka <yuka@yuka.dev>
Date: Sat, 7 Aug 2021 09:16:46 +0200
Subject: [PATCH] emulate clang 'sysroot + /include' logic
Expand All @@ -20,23 +20,23 @@ but it doesn't appear to work
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/emcc.py b/emcc.py
index 999314afc..0e23c066c 100755
index ba8d1b556..7d89644c5 100755
--- a/emcc.py
+++ b/emcc.py
@@ -759,7 +759,12 @@ def emsdk_ldflags(user_args):
@@ -883,7 +883,12 @@ def parse_s_args(args):


def emsdk_cflags(user_args):
- cflags = ['--sysroot=' + shared.Cache.get_sysroot(absolute=True)]
- cflags = ['--sysroot=' + cache.get_sysroot(absolute=True)]
+ cflags = [
+ '--sysroot=' + shared.Cache.get_sysroot(absolute=True),
+ '--sysroot=' + cache.get_sysroot(absolute=True),
+ '-resource-dir=@resourceDir@',
+ '-idirafter' + shared.Cache.get_sysroot(absolute=True) + os.path.join('/include'),
+ '-idirafter' + cache.get_sysroot(absolute=True) + os.path.join('/include'),
+ '-iwithsysroot' + os.path.join('/include','c++','v1')
+ ]

def array_contains_any_of(hay, needles):
for n in needles:
--
2.32.0
2.40.0

33 changes: 13 additions & 20 deletions pkgs/development/compilers/emscripten/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

stdenv.mkDerivation rec {
pname = "emscripten";
version = "3.1.24";
version = "3.1.39";

llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
Expand All @@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
name = "emscripten-node-modules-${version}";
inherit pname version src;

npmDepsHash = "sha256-ejuHR2BpAUStWjuvQuGE6ko4byF4GBl6FJBshxlknQk=";
npmDepsHash = "sha256-NSpVXssXwx+94E1qhM3tt2fN2G0EuvPZSN+Xep2IRs8=";

dontBuild = true;

Expand All @@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
sha256 = "sha256-1jW6ThxK6dThOO90l4Mc5yehVF3tI4HWipBWZAOztrk=";
sha256 = "sha256-hgndNMx+hvXyLzn6ip8Fhs+LAw98P3cqL8dJ+92jJmU=";
rev = version;
};

Expand All @@ -42,17 +42,7 @@ stdenv.mkDerivation rec {
patches = [
(substituteAll {
src = ./0001-emulate-clang-sysroot-include-logic.patch;
resourceDir = "${llvmEnv}/lib/clang/${llvmPackages.release_version}/";
})
# https://github.com/emscripten-core/emscripten/pull/18219
(fetchpatch {
url = "https://github.com/emscripten-core/emscripten/commit/afbc14950f021513c59cbeaced8807ef8253530a.patch";
sha256 = "sha256-+gJNTQJng9rWcGN3GAcMBB0YopKPnRp/r8CN9RSTClU=";
})
# https://github.com/emscripten-core/emscripten/pull/18220
(fetchpatch {
url = "https://github.com/emscripten-core/emscripten/commit/852982318f9fb692ba1dd1173f62e1eb21ae61ca.patch";
sha256 = "sha256-hmIOtpRx3PD3sDAahUcreSydydqcdSqArYvyLGgUgd8=";
resourceDir = "${llvmEnv}/lib/clang/16/";
})
];

Expand Down Expand Up @@ -108,17 +98,20 @@ stdenv.mkDerivation rec {

# precompile libc (etc.) in all variants:
pushd $TMPDIR
echo 'int __main_argc_argv() { return 42; }' >test.c
echo 'int __main_argc_argv( int a, int b ) { return 42; }' >test.c
for LTO in -flto ""; do
# wasm2c doesn't work with PIC
$out/bin/emcc -s WASM2C -s STANDALONE_WASM $LTO test.c

for BIND in "" "--bind"; do
for MT in "" "-s USE_PTHREADS"; do
for RELOCATABLE in "" "-s RELOCATABLE"; do
$out/bin/emcc $RELOCATABLE $BIND $MT $LTO test.c
done
done
# starting with emscripten 3.1.32+,
# if pthreads and relocatable are both used,
# _emscripten_thread_exit_joinable must be exported
# (see https://github.com/emscripten-core/emscripten/pull/18376)
# TODO: get library cache to build with both enabled and function exported
$out/bin/emcc $LTO $BIND test.c
$out/bin/emcc $LTO $BIND -s RELOCATABLE test.c
$out/bin/emcc $LTO $BIND -s USE_PTHREADS test.c
done
done
popd
Expand Down
18 changes: 14 additions & 4 deletions pkgs/development/libraries/json-c/default.nix
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
{ lib, stdenv, fetchurl, cmake }:
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:

stdenv.mkDerivation rec {
pname = "json-c";
version = "0.16";

src = fetchurl {
url = "https://s3.amazonaws.com/json-c_releases/releases/${pname}-${version}.tar.gz";
sha256 = "sha256-jkWsj5bsd5Hq87t+5Q6cIQC7vIe40PHQMMW6igKI2Ws=";
src = fetchFromGitHub {
owner = "json-c";
repo = "json-c";
rev = "json-c-0.16-20220414";
sha256 = "sha256-KbnUWLgpg6/1wvXhUoYswyqDcgiwEcvgaWCPjNcX20o=";
};

patches = [
# needed for emscripten, which uses LLVM 15+
(fetchpatch {
url = "https://github.com/json-c/json-c/commit/6eca65617aacd19f4928acd5766b8dd20eda0b34.patch";
sha256 = "sha256-fyugX+HgYlt/4AVtfNDaKS+blyUt8JYTNqkmhURb9dk=";
})
];

outputs = [ "out" "dev" ];

nativeBuildInputs = [ cmake ];
Expand Down
2 changes: 1 addition & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7259,7 +7259,7 @@ with pkgs;
easeprobe = callPackage ../tools/misc/easeprobe { };

emscripten = callPackage ../development/compilers/emscripten {
llvmPackages = llvmPackages_14;
llvmPackages = llvmPackages_16;
};

emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
Expand Down
5 changes: 4 additions & 1 deletion pkgs/top-level/emscripten-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ rec {
echo "Compiling a custom test"
set -x
emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 xmllint.o \
./.libs/libxml2.a `pkg-config zlib --cflags` `pkg-config zlib --libs` -o ./xmllint.test.js \
./.libs/''
+ pkgs.lib.optionalString pkgs.stdenv.isDarwin "libxml2.dylib "
+ pkgs.lib.optionalString (!pkgs.stdenv.isDarwin) "libxml2.a "
+ '' `pkg-config zlib --cflags` `pkg-config zlib --libs` -o ./xmllint.test.js \
--embed-file ./test/xmlid/id_err1.xml

echo "Using node to execute the test which basically outputs an error on stderr which we grep for"
Expand Down