Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 684266 - >=sys-cluster/openmpi-4.0.1[cuda] - Header files have changed between ABIs.
Summary: >=sys-cluster/openmpi-4.0.1[cuda] - Header files have changed between ABIs.
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 2 votes (vote)
Assignee: Gentoo Cluster Team
Depends on:
Blocks: 808855
  Show dependency tree
Reported: 2019-04-24 13:04 UTC by Jan Ziak (atomsymbol)
Modified: 2021-08-25 10:16 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---

build.log.xz (sys-cluster:openmpi-4.0.1:20190424-124810.log.xz,185.78 KB, application/x-xz)
2019-04-24 13:04 UTC, Jan Ziak (atomsymbol)
emerge-info.txt (emerge-info.txt,8.29 KB, text/plain)
2019-04-24 16:23 UTC, Jan Ziak (atomsymbol)

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Ziak (atomsymbol) 2019-04-24 13:04:31 UTC
Created attachment 573960 [details]

Hi. Building openmpi-4.0.1 on my machine results in the following error:

 * Header files have changed between ABIs.
 * --- /var/tmp/portage/sys-cluster/openmpi-4.0.1/temp/.multilib_header_cksum   2019-04-24 14:53:53.306693151 +0200
 * +++ /var/tmp/portage/sys-cluster/openmpi-4.0.1/temp/       2019-04-24 14:54:35.620958267 +0200
 * @@ -24,7 +24,7 @@
 *  3178862774 4923 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/ompi/mpi/cxx/functions_inln.h
 *  3626854394 5101 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/ompi/mpi/cxx/topology_inln.h
 *  2015540287 5156 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/ompi/mpi/cxx/intracomm.h
 * -4004980956 575 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/mpiext/mpiext_cuda_c.h
 * +2315801159 575 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/mpiext/mpiext_cuda_c.h
 *  2247402274 597 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/mpi-ext.h
 *  35712708 6242 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/ompi/mpi/cxx/request.h
 *  3043828648 6550 /var/tmp/portage/sys-cluster/openmpi-4.0.1/image/usr/include/openmpi/ompi/mpi/cxx/intracomm_inln.h
Comment 1 Justin Bronder (RETIRED) gentoo-dev 2019-04-24 15:41:14 UTC
emerge --info sys-cluster/openmpi please.
Comment 2 Jan Ziak (atomsymbol) 2019-04-24 16:23:21 UTC
Created attachment 573968 [details]
Comment 3 Charlie Gehlin 2019-05-28 12:20:57 UTC
Same here, confirming.
USE="-abi_x86_32" seems to work (drags a bunch of dependencies to USE the same as well) as a temp solution.
openmpi-3.1.3 manages to emerge with both ABI's (which I believe would be the ultimate solution.
Comment 4 Jan Ziak (atomsymbol) 2019-05-28 12:26:08 UTC
Adding "sys-cluster/openmpi -cuda" to package.use resolves the issue as well.
Comment 5 Oleg Korsak 2019-05-31 00:39:47 UTC
got the same error
Comment 6 disperato 2019-07-14 09:56:51 UTC
Same problem here. 
setting use flags -cuda and/or -abi_x86_32 are just workarounds. 
The second causes a bunch of dependencies to rebuild where more of them are needed with +abi_x86_32.
Comment 7 Alexandru N. Barloiu 2020-03-23 17:55:17 UTC
I couldn't figure out what that column of data/signatures are. the size seems consistent. 

I know it's not a  good work around, but I edited ${port_tmp_dir}/temp/environment. line 3393 on my system. some die statements taken from an eclass. if you modify the eclass... it will have no effect over the already temporary thing you are ebuilding. btw... ebuilding things is not emerging things. i didin't realize what the "environment" file does so much... and am quite sure I still dont know all that it does, but, cutting out "die" statements is not that hard to track. 

and the package actually emerges and there is no breakage that I can report.
Comment 8 Bernd 2020-06-11 15:53:05 UTC
I'm having the same issue with 4.0.3, if USE=cuda is in effect. A diff between the abi_x86_32 and abi_x86_64 builds gives

--- /var/tmp/portage/sys-cluster/openmpi-4.0.3/work/openmpi-4.0.3-abi_x86_32.x86/ompi/mpiext/cuda/c/mpiext_cuda_c.h     2020-06-11 17:17:56.685014559 +0200
+++ /var/tmp/portage/sys-cluster/openmpi-4.0.3/work/openmpi-4.0.3-abi_x86_64.amd64/ompi/mpiext/cuda/c/mpiext_cuda_c.h   2020-06-11 17:22:09.870642400 +0200
@@ -13,5 +13,5 @@
 OMPI_DECLSPEC int MPIX_Query_cuda_support(void);

Maybe it can be solved by adding a MULTILIB_WRAPPED_HEADER for this include file whenever USE=cuda is active?
Comment 9 Iade Gesso 2020-08-08 17:54:14 UTC
Same problem with both 4.0.3 and 4.0.4 versions...

Comment 10 Markus Giese 2020-11-16 20:13:37 UTC
still no recommendation on what package to recompile ??

i had lots of those errors, when switching profile last week. this is the only one left. i had to recompile depending packages, so which is the depending package to fix this error ? any suggestions ?
Comment 11 Bernd 2020-11-18 21:24:39 UTC
(In reply to Markus Giese from comment #10)
> still no recommendation on what package to recompile ??

I doubt this is easily be done by recompiling another package. It happens when you have USE=cuda active, omitting the cuda USE flag let's the package build.

What I just noticed, nvidia-cuda-toolkit only has native ABI, but no multilib support. This could be the reason why the hack from comment #7 is working.
Comment 12 Pacho Ramos gentoo-dev 2021-08-18 18:13:45 UTC
Appending /usr/include/openmpi/mpiext/mpiext_cuda_c.h to MULTILIB_WRAPPED_HEADERS looks to work for me
Comment 13 Larry the Git Cow gentoo-dev 2021-08-25 10:16:25 UTC
The bug has been closed via the following commit(s):

commit a2e6df3a3171354dd3d67c0168bc2ab1fd1419ff
Author:     Pacho Ramos <>
AuthorDate: 2021-08-25 09:44:27 +0000
Commit:     Pacho Ramos <>
CommitDate: 2021-08-25 10:16:20 +0000

    sys-cluster/openmpi: Add mpiext_cuda_c.h to MULTILIB_WRAPPED_HEADERS
    Package-Manager: Portage-3.0.22, Repoman-3.0.3
    Signed-off-by: Pacho Ramos <>

 sys-cluster/openmpi/openmpi-4.0.5-r1.ebuild | 1 +
 1 file changed, 1 insertion(+)