Os format-security
avisos têm para serem desativados, ou pelo menos não -Werror
'd, por causa disso:
As opções de proteção são impostas pelo wrapper do compilador, e é por isso que elas não são mostradas no log.
E hardeningDisable
aparentemente é o único método para afetar o wrapper.
Uma possível solução é criar uma expressão Nix fictícia para ser usada com nix-shell -A
. Por exemplo:
copie ~/.nix-defexpr/channels_root/nixos/
em um lugar separado ( <nixpkgs'>
) e torne-o gravável,
adicione <nixpkgs'>/pkgs/tools/misc/coreboot/default.nix
contendo
{ stdenv, gcc6, flex, bison, ncurses, iasl, doxygen, zlib, isl, python }:
stdenv.mkDerivation {
name = "coreboot";
buildInputs = [ gcc6 flex bison ncurses iasl doxygen zlib isl python ];
hardeningDisable = [ "format" ]; # to build the cross-compiler
}
e registre-o em <nixpkgs'>/top-level/all-packages.nix
como de costume,
e, finalmente, chame nix-shell <nixpkgs'> -A coreboot
para criar o ambiente necessário.
Ainda acho que deveria ser mais fácil (trabalhável para nix-shell -p
).