You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
This is related to the recently merged #1893. Trying to build WRF w/ Intel's new oneAPI compilers produces many instances of the following error on my system:
gribgetbds.c:388:5: error: call to undeclared function 'grib_unthin'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
From the manpages it seems that ICX defaults to a more recent standard of C:
Default for Linux: c++17 The compiler conforms to the 2017 ISO C++ standard. This is true also for SYCL programs.
I am not sure if something has changed between the current version of ICX and the one tested in #1893 but being explicit about using C89 fixes the issue. This needs a small change in arch/configure.defaults:
Additional context
I am not entirely sure if there is something else that is causing this issue on my system. If you think any other information and/or tests are useful I will be happy to help. Similarly, if you think this workaround is correct and it is convenient for you, I can draft a PR for it.
The text was updated successfully, but these errors were encountered:
@thgeorgiou We are in fact using an older version (2022.1) of ICX which is probably why this didn't show up. I'll go ahead and test this on a system that I can get the latest compilers on
Testing with the newer ifx compiler version does result in the same errors. Though, I went ahead and tested out #1823 as a solution to this and with a minor edit, that does resolve this issue. I would rather we pull those changes in to address new compiler warnings rather than fall back to older standards.
Describe the bug
This is related to the recently merged #1893. Trying to build WRF w/ Intel's new oneAPI compilers produces many instances of the following error on my system:
From the manpages it seems that ICX defaults to a more recent standard of C:
I am not sure if something has changed between the current version of ICX and the one tested in #1893 but being explicit about using C89 fixes the issue. This needs a small change in
arch/configure.defaults
:Using
-std=c89
doesn't seem to work since it doesn't define__USE_MISC
and it fails to buildexternal/RSL_LITE/
.I suspect this is similar to what happened in #1823 and led @mgs-52 to make these changes.
To Reproduce
Expected behavior
A successful build of WRF without changing
configure.wrf
.Attachments
I am attaching a successful build log (w/
-std=gnu89
) and a failed one (w/out-std=gnu89
).compile_failed.out.txt
compile_successful.out.txt
Additional context
I am not entirely sure if there is something else that is causing this issue on my system. If you think any other information and/or tests are useful I will be happy to help. Similarly, if you think this workaround is correct and it is convenient for you, I can draft a PR for it.
The text was updated successfully, but these errors were encountered: