gdb: wrap, making libstdc++ plugin safe to load
This commit is contained in:
parent
00c866bf62
commit
800f280696
32
pkgs/development/tools/misc/gdb/wrapper.nix
Normal file
32
pkgs/development/tools/misc/gdb/wrapper.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, lib, makeWrapper, gdb-unwrapped, safePaths }:
|
||||
|
||||
let
|
||||
gdb = gdb-unwrapped;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = gdb.name;
|
||||
buildInputs = [ makeWrapper ];
|
||||
propagatedBuildInputs = [ gdb ];
|
||||
propagatedUserEnvPkgs = [ gdb ];
|
||||
phases = "installPhase fixupPhase";
|
||||
|
||||
# Find all gdb plugins in `safePaths` and
|
||||
# mark these files as safe to load.
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/gdb
|
||||
initScript=$out/share/gdb/gdbinit
|
||||
touch $initScript
|
||||
|
||||
for safePath in ${lib.concatStringsSep " " safePaths}; do
|
||||
for plugin in $(find $safePath | grep -- '.*-gdb.*'); do
|
||||
echo add-auto-load-safe-path $plugin >> $initScript
|
||||
done
|
||||
done
|
||||
|
||||
makeWrapper "${gdb}/bin/gdb" \
|
||||
"$out/bin/gdb" \
|
||||
--add-flags "-x $initScript"
|
||||
'';
|
||||
|
||||
meta = gdb.meta;
|
||||
}
|
@ -10473,7 +10473,9 @@ in
|
||||
|
||||
bashdb = callPackage ../development/tools/misc/bashdb { };
|
||||
|
||||
gdb = callPackage ../development/tools/misc/gdb {
|
||||
gdb = callPackage ../development/tools/misc/gdb/wrapper.nix { safePaths = [ stdenv.cc.cc.lib ]; };
|
||||
|
||||
gdb-unwrapped = callPackage ../development/tools/misc/gdb {
|
||||
guile = null;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user