FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Fix #269: add C99 flag for intel compilers by telamonian · Pull Request #271 · python-cmake-buildsystem/python-cmake-buildsystem · GitHub

Fix #269: add C99 flag for intel compilers - #271

Open
telamonian wants to merge 1 commit into
python-cmake-buildsystem:masterfrom
telamonian:patch-1
Open

Fix #269: add C99 flag for intel compilers#271
telamonian wants to merge 1 commit into
python-cmake-buildsystem:masterfrom
telamonian:patch-1

Conversation

telamonian commented Sep 17, 2020
edited
Loading

Copy link
Copy Markdown

Fixes #269

The intel C compiler defaults to -std=gnu98, which apparently causes problems with recent cpython source. Judging by the existing code in CMakeLists.txt and this issue on the core cpython repo, somewhere around cpy3.6 cpython moved on to C99.

This PR ensures that if intel compilers are being used on cpy>=3.6 source, the -std=C99 flag will be added

The intel C compiler [defaults to `-std=gnu98`](https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/compiler-options/compiler-option-details/language-options/std-qstd.html#std-qstd_GUID-338F4C2A-560C-4338-8ACF-C4B022A7C865), which apparently causes problems with recent cpython source. Judging by the existing code in `CMakeLists.txt` and [this issue on the core cpython repo](python/cpython#568), somewhere around cpy3.6 cpython moved on to C99.

This PR ensures that if intel compilers are being used on cpy>=3.6 source, the `-std=C99` flag will be added

Copy link
Copy Markdown
Author

@certik It's been a while since I've had personal access to the intel compiler suite, so I have no actual way of testing this PR out myself. However, I'm pretty sure it will solve your problem? Can you please try it out and let us know?

certik commented Sep 17, 2020

Copy link
Copy Markdown

Thanks, I'll give it a shot soon!

concatime commented Nov 17, 2020
edited
Loading

Copy link
Copy Markdown
Contributor

Why not simply add set(CMAKE_C_STANDARD 99), independently of the compiler used ?

Copy link
Copy Markdown
Contributor

Or a simple patch:

diff --git a/Parser/grammar.c b/Parser/grammar.c
index 75fd5b9cde..1a4d585026 100644
--- a/Parser/grammar.c
+++ b/Parser/grammar.c
@@ -33,8 +33,9 @@ freegrammar(grammar *g)
 {
     int i;
     for (i = 0; i < g->g_ndfas; i++) {
+        int j;
         free(g->g_dfa[i].d_name);
-        for (int j = 0; j < g->g_dfa[i].d_nstates; j++)
+        for (j = 0; j < g->g_dfa[i].d_nstates; j++)
             PyObject_FREE(g->g_dfa[i].d_state[j].s_arc);
         PyObject_FREE(g->g_dfa[i].d_state);
     }

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Fails to compile with icc

3 participants


Back | FazBrowse Home | New Git URL