diff options
author | Benjamin Saunders <benjamin.saunders@here.com> | 2018-05-07 13:22:50 -0700 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-24 02:57:44 -0400 |
commit | 46eeef1898ffbf57330ec31b96a6c2d89f8fcb36 (patch) | |
tree | 1ff7be30a066e05a6ae78b8fd315a8f60e2d0c58 /pkgs | |
parent | 16da44b5c115fe58048d7ba8aa597ed1598ea090 (diff) |
tests.cc-wrapper: verify building with sanitizers
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/default.nix | 1 | ||||
-rw-r--r-- | pkgs/test/cc-wrapper/default.nix | 5 | ||||
-rw-r--r-- | pkgs/test/cc-wrapper/sanitizers.c | 8 |
4 files changed, 16 insertions, 2 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 43cd87fb4597..8f99da805ec1 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -9,7 +9,7 @@ , stdenvNoCC, nativeTools, propagateDoc ? !nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" , cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell , extraPackages ? [], extraBuildCommands ? "" -, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null +, isGNU ? false, isClang ? cc.isClang or false, isCompilerRT ? false, gnugrep ? null , buildPackages ? {} }: @@ -90,7 +90,7 @@ stdenv.mkDerivation { # Binutils, and Apple's "cctools"; "bintools" as an attempt to find an # unused middle-ground name that evokes both. inherit bintools; - inherit libc nativeTools nativeLibc nativePrefix isGNU isClang default_cxx_stdlib_compile; + inherit libc nativeTools nativeLibc nativePrefix isGNU isClang isCompilerRT default_cxx_stdlib_compile; emacsBufferSetup = pkgs: '' ; We should handle propagation here too diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 81d41673b251..da5a97a9bbaa 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -53,6 +53,7 @@ let targetLlvmLibraries.libcxxabi targetLlvmLibraries.compiler-rt ]; + isCompilerRT = true; extraBuildCommands = '' rsrc="$out/resource-root" mkdir "$rsrc" diff --git a/pkgs/test/cc-wrapper/default.nix b/pkgs/test/cc-wrapper/default.nix index 41a7685ed2e0..06113e40561b 100644 --- a/pkgs/test/cc-wrapper/default.nix +++ b/pkgs/test/cc-wrapper/default.nix @@ -38,6 +38,11 @@ stdenv.mkDerivation { NIX_LDFLAGS="-L$NIX_BUILD_TOP/foo/lib -rpath $NIX_BUILD_TOP/foo/lib" $CC -lfoo -o ldflags-check ${./ldflags-main.c} ./ldflags-check + '' + stdenv.lib.optionalString (stdenv.cc.isCompilerRT or false) '' + + $CC -o sanitizers -fsanitize=address,undefined ${./sanitizers.c} + ./sanitizers + '' + '' touch $out ''; diff --git a/pkgs/test/cc-wrapper/sanitizers.c b/pkgs/test/cc-wrapper/sanitizers.c new file mode 100644 index 000000000000..93dd78a903ce --- /dev/null +++ b/pkgs/test/cc-wrapper/sanitizers.c @@ -0,0 +1,8 @@ +#include <sanitizer/asan_interface.h> +#include <stdio.h> + +int main(int argc, char **argv) +{ + fprintf(stderr, "ok\n"); + return 0; +} |