bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

build: work around ICC's limitations


From: Akim Demaille
Subject: build: work around ICC's limitations
Date: Thu, 20 Sep 2018 06:31:52 +0200

commit 27630864e7b5e6e7b785f85255c0786fa26876bc
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 19 07:15:45 2018 +0200

    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.

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 {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]