From 27630864e7b5e6e7b785f85255c0786fa26876bc Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 19 Sep 2018 07:15:45 +0200 Subject: [PATCH] build: work around ICC's limitations Several types of failures. First, unable to pass the file name properly to the linker. ./synclines.at:416: $CC $CFLAGS $CPPFLAGS $LDFLAGS -o \"\\\"\" \"\\\"\".c $LIBS stderr: ld: cannot open output file "/"": No such file or directory stdout: Unable to save under such a file name. ./synclines.at:421: $CXX $CXXFLAGS $CPPFLAGS -c $LDFLAGS -o \"\\\"\" \"\\\"\".cc $LIBS stderr: error: can't open file "/"" for write compilation aborted for "\"".cc (code 1) Spurious output because of warning flags is failed to reject as an error during configure: ./headers.at:343: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx || exit 77 --- /dev/null 2018-09-18 21:21:37.745649000 +0000 +++ /home/travis/build/akimd/bison/tests/testsuite.dir/at-groups/222/stderr 2018-09-18 21:28:17.291919519 +0000 @@ -0,0 +1,7 @@ +icpc: command line warning #10006: ignoring unknown option '-Wcast-align' +icpc: command line warning #10006: ignoring unknown option '-fparse-all-comments' +icpc: command line warning #10006: ignoring unknown option '-Wdocumentation' +icpc: command line warning #10006: ignoring unknown option '-Wnull-dereference' +icpc: command line warning #10006: ignoring unknown option '-Wnoexcept' +icpc: command line warning #10006: ignoring unknown option '-fno-color-diagnostics' +icpc: command line warning #10006: ignoring unknown option '-Wno-keyword-macro' stdout: * tests/local.at (AT_SKIP_IF_CANNOT_LINK_C_AND_CXX): Also ignore stderr, as with ICC we get * tests/synclines.at (syncline escapes): Don't link the output. --- tests/local.at | 2 +- tests/synclines.at | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/local.at b/tests/local.at index 3317b1da..56f8e11a 100644 --- a/tests/local.at +++ b/tests/local.at @@ -881,7 +881,7 @@ int fortytwo () AT_COMPILE([c-only.o], [c-only.c]) AT_COMPILE_CXX([cxx-only.o], [cxx-only.cc]) AT_CHECK([$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx || - exit 77], [ignore], [ignore]) + exit 77], [0], [ignore], [ignore]) AT_PARSER_CHECK([./c-and-cxx]) ]) diff --git a/tests/synclines.at b/tests/synclines.at index 45bac3c0..fb1b6725 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -391,6 +391,17 @@ m4_pushdef([AT_TEST], [AT_SETUP([syncline escapes: $1]) AT_BISON_OPTION_PUSHDEFS([%skeleton "$1"]) + +# ICC is unable to handle these file names: it fails to pass them +# properly to the linker, and is unable to save a file named this way. +# Don't try with such compilers. +AT_DATA([\"\\\"\".c], +[[int main() { return 0; } +]]) + +AT_CHECK([AT_SKEL_CC_IF([$CXX $CXXFLAGS], [$CC $CFLAGS]) $CPPFLAGS \"\\\"\".c -o \"\\\"\" || + exit 77], [0], [ignore], [ignore]) + AT_DATA_GRAMMAR([\"\\\"\".y], [[%skeleton "$1" %code {