Re: [mpich-discuss] MPICH 3.2.1 build error with icc+ifort: undefined reference to `_Static_assert'
It’s shocking that a compliant Fortran 90 code doesn’t compile with GCC 8. Have you reported the bugs to GCC bugzilla? Jeff On Thu, Jun 14, 2018 at 12:56 PM Gus Correa <[email protected]> wrote:
Hi Jeff
This is actually to compile a Fortran90 program, which uses MPI and another library (netCDF) through Fortran modules (use MPI, use netcdf). The code doesn't compile under gfortran, only with ifort. Optimization and efficiency is not the top priority, if we can get the code to compile and run that is fine.
Since Fortran modules are compiler-dependent, I need to build MPICH (and netCDF) with the Intel compilers. I have done this for a variety of compilers and compiler versions for our clusters (before Infiniband with MPICH, then with Open MPI), but this turn it is for a single workstation, hence MPICH is a good fit.
That Fortran90 modules are compiler-dependent really sucks, and is the negation of software inter-operability and portability. It may serve well the compiler vendors, but for users it is just a pain.
Anyway, your suggestion to tweak with that include file worked, and I could build MPICH 3.2.1 with the archaic Intel 2012.
Many thanks! Gus Correa
On 06/13/2018 11:34 PM, Jeff Hammond wrote:
I don’t know for sure, but I’d guess that GCC 8 or Clang 6 optimizes better than ICC 12 and the likelihood goes up the newer the hardware. Intel people contribute to the OSS compilers, particularly when it comes to architecture-specific optimizations.
Jeff
On Wed, Jun 13, 2018 at 5:02 PM Jeff Hammond <[email protected] <mailto:[email protected]>> wrote:
On Wed, Jun 13, 2018 at 4:44 PM, Gus Correa <[email protected] <mailto:[email protected]>> wrote:
On 06/13/2018 07:36 PM, Jeff Hammond wrote:
Why don't you just use a newer ICC? September 28, 2012 was a long time ago...
> Jeff
The cost of a new license. :(
Do any of the options on https://software.intel.com/en-us/qualify-for-free-software work for you?
It is temporary, but you can get Intel 19 beta for free ( https://software.intel.com/en-us/articles/intel-parallel-studio-xe-2019-beta ).
What code are you developing?
Jeff
On Wed, Jun 13, 2018 at 4:32 PM, Gus Correa <[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>>> wrote:
Thank you Jeff and Min!
Would you know if MPICH 3.2 has the same issue? I would rather use an older version instead, as long as it builds.
Many thanks, Gus Correa
On 06/13/2018 06:34 PM, Min Si wrote:
I was just creating the issue on MPICH github when Jeff replied.
Please use this issue to keep track: https://github.com/pmodels/mpich/issues/3178 <https://github.com/pmodels/mpich/issues/3178>
Min On 2018/06/13 15:19, Jeff Hammond wrote:
_Static_assert comes from C11.
src/include/mpir_assert.h does a direct test for C11 support based upon the GCC version, which is unsafe since ICC (and other non-GCC compilers) define these macros.
/* GCC 4.6 added support for _Static_assert: * http://gcc.gnu.org/gcc-4.6/changes.html <http://gcc.gnu.org/gcc-4.6/changes.html> */ #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined __cplusplus #define HAVE_C11__STATIC_ASSERT 1 #endif
MPICH needs to test for _Static_assert properly using configure. You should file a GitHub issue to track this.
Jeff
On Wed, Jun 13, 2018 at 2:33 PM, Gus Correa <[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> <mailto:[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>>> wrote:
Hi MPICH experts
I am trying to build MPICH 3.2.1 with Intel compilers (icc, ifort). C++ is disabled.
The configuration step goes well, but make fails, after a lot of stuff is compiled, with the error below (undefined reference to `_Static_assert').
FYI, the OS is Linux Fedora Core 26:
Linux 4.15.17-200.fc26.x86_64 #1 SMP Thu Apr 12 18:28:26 UTC 2018 x86_64 x86_64 GNU/Linux
The Intel compiler version is 12.1.6: ifort (IFORT) 12.1.6 20120928 icc (ICC) 12.1.6 20120928
The Intel compiler environment is set the standard way recommended by Intel:
source /path/to/intel/bin/compilervars.sh intel64
Any help is appreciated. Gus Correa
****** make errror message ************************************* make[2]: Entering directory
'/home/sw/mpich/inst/3.2.1/mpich-3.2.1/build_intel-2011.13.367'
CCLD src/env/mpivars
lib/.libs/libmpi.a(lib_libmpi_la-ch3_progress.o): In function `MPIDI_CH3I_Shm_send_progress':
../src/mpid/ch3/channels/nemesis/src/ch3_progress.c:(.text+0x1ea2):
undefined reference to `_Static_assert'
lib/.libs/libmpi.a(lib_libmpi_la-ch3i_eagernoncontig.o): In function `MPIDI_CH3I_SendNoncontig':
../src/mpid/ch3/channels/nemesis/src/ch3i_eagernoncontig.c:(.text+0x1d3):
undefined reference to `_Static_assert' make[2]: *** [Makefile:19701: src/env/mpivars] Error 1 make[2]: Leaving directory
'/home/sw/mpich/inst/3.2.1/mpich-3.2.1/build_intel-2011.13.367'
make[1]: *** [Makefile:38608: all-recursive] Error 1 make[1]: Leaving directory
'/home/sw/mpich/inst/3.2.1/mpich-3.2.1/build_intel-2011.13.367'
make: *** [Makefile:10337: all] Error 2
*******************************************************************
_______________________________________________ discuss mailing list [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> <mailto:[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>>> To manage subscription options or
unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss>
https://lists.mpich.org/mailman/listinfo/discuss>>
-- Jeff Hammond [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:
<mailto:[email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:
_______________________________________________ discuss mailing [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss <
https://lists.mpich.org/mailman/listinfo/discuss>
_______________________________________________ discuss mailing list [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss <https://lists.mpich.org/mailman/listinfo/discuss>
_______________________________________________ discuss mailing list [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:[email protected]>> To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss <https://lists.mpich.org/mailman/listinfo/discuss>
-- Jeff Hammond [email protected] <mailto:[email protected]> <mailto:[email protected] <mailto:
_______________________________________________ discuss mailing list [email protected] <mailto:[email protected]> To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
-- Jeff Hammond [email protected] <mailto:[email protected]> http://jeffhammond.github.io/
-- Jeff Hammond [email protected] <mailto:[email protected]> http://jeffhammond.github.io/
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
-- Jeff Hammond [email protected] http://jeffhammond.github.io/ _______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
Jeff Hammond