diff --git a/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/pkgs/development/tools/parsing/tree-sitter/grammar.nix index 96486c0c2b50..110f37a5aa89 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammar.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammar.nix @@ -30,16 +30,18 @@ stdenv.mkDerivation rec { CFLAGS = [ "-I${src}/src" "-O2" ]; CXXFLAGS = [ "-I${src}/src" "-O2" ]; + stripDebugList = [ "parser" ]; + # When both scanner.{c,cc} exist, we should not link both since they may be the same but in # different languages. Just randomly prefer C++ if that happens. buildPhase = '' runHook preBuild if [[ -e "$src/src/scanner.cc" ]]; then - $CXX -c "$src/src/scanner.cc" -o scanner.o $CXXFLAGS + $CXX -fPIC -c "$src/src/scanner.cc" -o scanner.o $CXXFLAGS elif [[ -e "$src/src/scanner.c" ]]; then - $CC -c "$src/src/scanner.c" -o scanner.o $CFLAGS + $CC -fPIC -c "$src/src/scanner.c" -o scanner.o $CFLAGS fi - $CC -c "$src/src/parser.c" -o parser.o $CFLAGS + $CC -fPIC -c "$src/src/parser.c" -o parser.o $CFLAGS $CXX -shared -o parser *.o runHook postBuild ''; @@ -50,11 +52,4 @@ stdenv.mkDerivation rec { mv parser $out/ runHook postInstall ''; - - # Strip failed on darwin: strip: error: symbols referenced by indirect symbol table entries that can't be stripped - fixupPhase = lib.optionalString stdenv.isLinux '' - runHook preFixup - $STRIP $out/parser - runHook postFixup - ''; }