tree-sitter: strip only debug info by default
Noticed use of $STRIP when passed through various uses of $STRIP in `nixpkgs`. This looked unusual in a way that it strips not just debugging symbols but also all the rest. The change switch to debug-only stripping. While at it switched to expliict use of `-fPIC` for shared library.
This commit is contained in:
parent
cfd4ea64f4
commit
717e7bd291
1 changed files with 5 additions and 10 deletions
|
@ -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
|
||||
'';
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue