Opened 5 years ago

Last modified 9 months ago

#58635 new defect

scalapack @2.02+gcc9+openmpi+openblas: error: expected expression before '_Static_assert'

Reported by: lazersos (Samuel Lazerson) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: scalapack

Description

I'm try to install scalapack but the code is failing to compile. This is on Mojave 10.14.5. Here's the port log:

 > install scalapack +gcc9 +openmpi +openblas
--->  Computing dependencies for scalapack
--->  Fetching archive for scalapack
--->  Attempting to fetch scalapack-2.0.2_4+gcc9+openblas+openmpi.darwin_18.x86_64.tbz2 from https://packages.macports.org/scalapack
--->  Attempting to fetch scalapack-2.0.2_4+gcc9+openblas+openmpi.darwin_18.x86_64.tbz2 from http://ywg.ca.packages.macports.org/mirror/macports/packages/scalapack
--->  Attempting to fetch scalapack-2.0.2_4+gcc9+openblas+openmpi.darwin_18.x86_64.tbz2 from http://aus.us.packages.macports.org/macports/packages/scalapack
--->  Fetching distfiles for scalapack
--->  Verifying checksums for scalapack
--->  Extracting scalapack
--->  Configuring scalapack
--->  Building scalapack
Error: Failed to build scalapack: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port scalapack failed

The first lines where an error is report in the log look like:

:info:build /opt/local/bin/mpicc-openmpi-gcc9 -DAdd_ -Dscalapack_EXPORTS  -pipe -Os -DNDEBUG -I/opt/local/include -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.14 -fPIC   -o CMakeFiles/scalapack.dir/BLACS/SRC/dgamx2d_.c.o   -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/dgamx2d_.c
:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/zgsum2d_.c:1:
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/zgsum2d_.c: In function 'zgsum2d_':
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bdef.h:295:9: warning: implicit declaration of function 'BI_dmvcopy'; did you mean 'BI_zmvcopy'? [-Wimplicit-function-declaration]
:info:build   295 |         BI_dmvcopy(2*(m), (n), (double *) (A), 2*(lda), (double *) (buff))
:info:build       |         ^~~~~~~~~~
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/zgsum2d_.c:156:7: note: in expansion of macro 'BI_zmvcopy'
:info:build   156 |       BI_zmvcopy(Mpval(m), Mpval(n), A, tlda, bp->Buff);
:info:build       |       ^~~~~~~~~~
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bdef.h:297:9: warning: implicit declaration of function 'BI_dvmcopy'; did you mean 'BI_cvmcopy'? [-Wimplicit-function-declaration]
:info:build   297 |         BI_dvmcopy(2*(m), (n), (double *) (A), 2*(lda), (double *) (buff))
:info:build       |         ^~~~~~~~~~
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/zgsum2d_.c:171:6: note: in expansion of macro 'BI_zvmcopy'
:info:build   171 |      BI_zvmcopy(Mpval(m), Mpval(n), A, tlda, bp2->Buff);
:info:build       |      ^~~~~~~~~~
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/sgamx2d_.c: In function 'sgamx2d_':
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/sgamx2d_.c:202:7: warning: implicit declaration of function 'BI_smvcopy'; did you mean 'BI_zmvcopy'? [-Wimplicit-function-declaration]
:info:build   202 |       BI_smvcopy(Mpval(m), Mpval(n), A, tlda, bp->Buff);
:info:build       |       ^~~~~~~~~~
:info:build       |       BI_zmvcopy
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/igamx2d_.c: In function 'igamx2d_':
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/igamx2d_.c:199:7: warning: implicit declaration of function 'BI_imvcopy'; did you mean 'BI_zmvcopy'? [-Wimplicit-function-declaration]
:info:build   199 |       BI_imvcopy(Mpval(m), Mpval(n), A, tlda, bp->Buff);
:info:build       |       ^~~~~~~~~~
:info:build       |       BI_zmvcopy
:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bconfig.h:16,
:info:build                  from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bdef.h:7,
:info:build                  from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/sgamx2d_.c:1:
:info:build /opt/local/include/openmpi-gcc9/mpi.h:322:57: error: expected expression before '_Static_assert'
:info:build   322 | #define THIS_SYMBOL_WAS_REMOVED_IN_MPI30(func, newfunc) _Static_assert(0, #func " was removed in MPI-3.0.  Use " #newfunc " instead.")
:info:build       |                                                         ^~~~~~~~~~~~~~
:info:build /opt/local/include/openmpi-gcc9/mpi.h:2824:31: note: in expansion of macro 'THIS_SYMBOL_WAS_REMOVED_IN_MPI30'
:info:build  2824 | #define MPI_Type_struct(...)  THIS_SYMBOL_WAS_REMOVED_IN_MPI30(MPI_Type_struct, MPI_Type_create_struct)
:info:build       |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/sgamx2d_.c:224:12: note: in expansion of macro 'MPI_Type_struct'
:info:build   224 |       ierr=MPI_Type_struct(i, len, disp, dtypes, &MyType);
:info:build       |            ^~~~~~~~~~~~~~~
:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bconfig.h:16,
:info:build                  from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/Bdef.h:7,
:info:build                  from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_scalapack/scalapack/work/scalapack-2.0.2/BLACS/SRC/igamx2d_.c:1:
:info:build /opt/local/include/openmpi-gcc9/mpi.h:322:57: error: expected expression before '_Static_assert'

I'm attaching the full log file.

Attachments (1)

main.log (142.2 KB) - added by lazersos (Samuel Lazerson) 5 years ago.
Log file for build of scalapack@2.0.2 on Mojave

Download all attachments as: .zip

Change History (12)

Changed 5 years ago by lazersos (Samuel Lazerson)

Attachment: main.log added

Log file for build of scalapack@2.0.2 on Mojave

comment:1 Changed 5 years ago by mf2k (Frank Schima)

Keywords: Mojave scalapack openmpi gcc9 removed

comment:2 Changed 5 years ago by mf2k (Frank Schima)

See also #57938.

comment:3 Changed 5 years ago by lazersos (Samuel Lazerson)

Well I think I found the problem and it's really related to BLACS. I downloaded the Scalapack sources and tried to compile manually. I found that the issue was linked to preprocessor directives when compiling the BLACS portion of the code. In order to get it to work I had to change a line in the SLmake.inc file. Specifically from

TRANSCOMM = -DUseMpi2

to

TRANSCOMM = -DUseMpi3

I suspect this whole issue is really related to attempting to compile the BLACS portion of the software with MPI4.0. Since that's the standard that's loaded with openMPI now. Also this issue seems to affect gcc8 as well. Thus is real issue is the use of the MPI 4 standard now in OpenMPI. Should be a quick fix as only the SLmake.inc file needs to be updated but I'm not sure how to go about doing that as it requires changes to the distribution sources rather than the portfile.

comment:4 in reply to:  3 ; Changed 5 years ago by ufdup

Hi, I also tried the same (download the original source code and compile by hand). I think you're right. The compilation breaks when compiling BLACS. However, I could implement your fix because I could not find where to place the TRANSCOMM option.

Did you just include a new line in SLMake.inc?

Which version of scalapak did you download? 2.0.2?

Replying to lazersos:

Well I think I found the problem and it's really related to BLACS. I downloaded the Scalapack sources and tried to compile manually. I found that the issue was linked to preprocessor directives when compiling the BLACS portion of the code. In order to get it to work I had to change a line in the SLmake.inc file. Specifically from

TRANSCOMM = -DUseMpi2

to

TRANSCOMM = -DUseMpi3

I suspect this whole issue is really related to attempting to compile the BLACS portion of the software with MPI4.0. Since that's the standard that's loaded with openMPI now. Also this issue seems to affect gcc8 as well. Thus is real issue is the use of the MPI 4 standard now in OpenMPI. Should be a quick fix as only the SLmake.inc file needs to be updated but I'm not sure how to go about doing that as it requires changes to the distribution sources rather than the portfile.

comment:5 in reply to:  4 Changed 5 years ago by lazersos (Samuel Lazerson)

Yes I just modified the SLMake.inc file.

Replying to ufdup:

Hi, I also tried the same (download the original source code and compile by hand). I think you're right. The compilation breaks when compiling BLACS. However, I could implement your fix because I could not find where to place the TRANSCOMM option.

Did you just include a new line in SLMake.inc?

Which version of scalapak did you download? 2.0.2?

Replying to lazersos:

Well I think I found the problem and it's really related to BLACS. I downloaded the Scalapack sources and tried to compile manually. I found that the issue was linked to preprocessor directives when compiling the BLACS portion of the code. In order to get it to work I had to change a line in the SLmake.inc file. Specifically from

TRANSCOMM = -DUseMpi2

to

TRANSCOMM = -DUseMpi3

I suspect this whole issue is really related to attempting to compile the BLACS portion of the software with MPI4.0. Since that's the standard that's loaded with openMPI now. Also this issue seems to affect gcc8 as well. Thus is real issue is the use of the MPI 4 standard now in OpenMPI. Should be a quick fix as only the SLmake.inc file needs to be updated but I'm not sure how to go about doing that as it requires changes to the distribution sources rather than the portfile.

comment:6 Changed 5 years ago by lazersos (Samuel Lazerson)

Version: 2.5.42.6.2

Still an issue with 2.6.2

comment:7 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: scalapack @2.02+gcc9+openmpi+openblas: Fails to buildscalapack @2.02+gcc9+openmpi+openblas: error: expected expression before '_Static_assert'

It's unlikely that MacPorts base is responsible for the problem so it's unlikely that any update of MacPorts base would fix it. More likely an update of scalapack or its dependencies would fix it. Do you still see the problem with scalapack @2.1.0?

comment:8 Changed 4 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:9 Changed 4 years ago by mascguy (Christopher Nielsen)

Samuel, is this still an issue?

comment:10 Changed 4 years ago by mascguy (Christopher Nielsen)

Cc: mascguy removed

comment:11 Changed 9 months ago by lazersos (Samuel Lazerson)

No longer an issue.

Note: See TracTickets for help on using tickets.