Skip to content

Commit d1d5094

Browse files
committed
fortran: do not link Fortran libs with unnecessary libraries
Fortran libraries do not need to be linked with PMIx, hwloc nor libevent. That can cause some issues with incompatible flags are pulled from the .la files. For example, when the NAG Fortran compiler is used, libmpi_mpifh_sizeof.la pulls the -pthread flag, that is translated into -Wl,-pthread. Then when libmpi_mpifh.la is linked with gcc but pulls -Wl,-pthread that causes the build to fail since -pthread is not a valid ld option. Not depending on these libraries is enough to avoid the above issue. Refs #12413 Thanks to Matthew Thompson for reporting this issue and helping with the diagnostic. Signed-off-by: Gilles Gouaillardet <[email protected]>
1 parent bebfc41 commit d1d5094

File tree

11 files changed

+65
-27
lines changed

11 files changed

+65
-27
lines changed

config/opal_config_hwloc.m4

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
dnl -*- autoconf -*-
22
dnl
33
dnl Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved
4-
dnl Copyright (c) 2014-2018 Research Organization for Information Science
4+
dnl Copyright (c) 2014-2024 Research Organization for Information Science
55
dnl and Technology (RIST). All rights reserved.
66
dnl Copyright (c) 2020-2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
77
dnl Copyright (c) 2020 Intel, Inc. All rights reserved.
@@ -270,5 +270,6 @@ dnl configure, to avoid pulling it into other configure tests.
270270
AC_DEFUN([OPAL_CONFIG_HWLOC_INTERNAL_LIBS_HANDLER], [
271271
OPAL_FLAGS_APPEND_UNIQ([CPPFLAGS], [${opal_hwloc_CPPFLAGS}])
272272
OPAL_FLAGS_APPEND_UNIQ([LDFLAGS], [$opal_hwloc_LDFLAGS])
273-
OPAL_FLAGS_APPEND_MOVE([LIBS], [${opal_hwloc_BUILD_LIBS}])
273+
opal_hwloc_LIBS=${opal_hwloc_BUILD_LIBS}
274+
AC_SUBST([opal_hwloc_LIBS])
274275
])

config/opal_config_libevent.m4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,5 +269,6 @@ dnl configure, to avoid pulling it into other configure tests.
269269
AC_DEFUN([OPAL_CONFIG_LIBEVENT_INTERNAL_LIBS_HANDLER], [
270270
OPAL_FLAGS_APPEND_UNIQ([CPPFLAGS], [${opal_libevent_CPPFLAGS}])
271271
OPAL_FLAGS_APPEND_UNIQ([LDFLAGS], [${opal_libevent_LDFLAGS}])
272-
OPAL_FLAGS_APPEND_MOVE([LIBS], [${opal_libevent_BUILD_LIBS}])
272+
opal_libevent_LIBS=${opal_libevent_BUILD_LIBS}
273+
AC_SUBST([opal_libevent_LIBS])
273274
])

config/opal_config_pmix.m4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,5 +295,6 @@ dnl configure, to avoid pulling it into other configure tests.
295295
AC_DEFUN([OPAL_CONFIG_PMIX_INTERNAL_LIBS_HANDLER], [
296296
OPAL_FLAGS_APPEND_UNIQ([CPPFLAGS], [${opal_pmix_CPPFLAGS}])
297297
OPAL_FLAGS_APPEND_UNIQ([LDFLAGS], [${opal_pmix_LDFLAGS}])
298-
OPAL_FLAGS_APPEND_MOVE([LIBS], [${opal_pmix_BUILD_LIBS}])
298+
opal_pmix_LIBS=${opal_pmix_BUILD_LIBS}
299+
AC_SUBST([opal_pmix_LIBS])
299300
])

ompi/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ lib@OMPI_LIBMPI_NAME@_la_LIBADD = \
144144

145145

146146
lib@OMPI_LIBMPI_NAME@_la_LIBADD += \
147-
$(OMPI_TOP_BUILDDIR)/opal/lib@[email protected]
147+
$(OMPI_TOP_BUILDDIR)/opal/lib@[email protected] \
148+
$(opal_pmix_LIBS)
148149
lib@OMPI_LIBMPI_NAME@_la_DEPENDENCIES = $(lib@OMPI_LIBMPI_NAME@_la_LIBADD)
149150
lib@OMPI_LIBMPI_NAME@_la_LDFLAGS = \
150151
-version-info $(libmpi_so_version) \

ompi/mca/topo/treematch/Makefile.am

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Copyright (c) 2011-2015 INRIA. All rights reserved.
66
# Copyright (c) 2011-2015 Université Bordeaux 1
77
# Copyright (c) 2017 IBM Corporation. All rights reserved.
8-
# Copyright (c) 2019 Research Organization for Information Science
8+
# Copyright (c) 2019-2024 Research Organization for Information Science
99
# and Technology (RIST). All rights reserved.
1010
# Copyright (c) 2021 Google, LLC. All rights reserved.
1111
# $COPYRIGHT$
@@ -43,11 +43,16 @@ mcacomponentdir = $(pkglibdir)
4343
mcacomponent_LTLIBRARIES = $(component)
4444
mca_topo_treematch_la_SOURCES = $(component_sources)
4545
mca_topo_treematch_la_LDFLAGS = -module -avoid-version $(topo_treematch_LDFLAGS)
46-
mca_topo_treematch_la_LIBADD = $(top_builddir)/ompi/lib@[email protected] $(topo_treematch_LIBS)
46+
mca_topo_treematch_la_LIBADD = \
47+
$(top_builddir)/ompi/lib@[email protected] \
48+
$(topo_treematch_LIBS) \
49+
$(opal_hwloc_LIBS)
4750

4851
noinst_LTLIBRARIES = $(lib)
4952
libmca_topo_treematch_la_SOURCES = $(lib_sources)
50-
libmca_topo_treematch_la_LIBADD = $(topo_treematch_LIBS)
53+
libmca_topo_treematch_la_LIBADD = \
54+
$(topo_treematch_LIBS) \
55+
$(opal_hwloc_LIBS)
5156
libmca_topo_treematch_la_LDFLAGS = -module -avoid-version $(topo_treematch_LDFLAGS)
5257

5358
distclean-local:

opal/Makefile.am

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ lib_LTLIBRARIES = lib@[email protected]
4646

4747
libopen_pal_core_la_SOURCES =
4848
libopen_pal_core_la_LIBADD = \
49-
mca/base/libmca_base.la \
50-
util/libopalutil_core.la \
51-
$(MCA_opal_FRAMEWORK_CORE_LIBS)
49+
mca/base/libmca_base.la \
50+
util/libopalutil_core.la \
51+
$(MCA_opal_FRAMEWORK_CORE_LIBS) \
52+
$(opal_pmix_LIBS) \
53+
$(opal_libevent_LIBS)
5254
libopen_pal_core_la_DEPENDENCIES = \
5355
mca/base/libmca_base.la \
5456
util/libopalutil_core.la \
@@ -57,9 +59,11 @@ libopen_pal_core_la_DEPENDENCIES = \
5759
lib@OPAL_LIB_NAME@_la_SOURCES =
5860
lib@OPAL_LIB_NAME@_la_LIBADD = \
5961
libopen-pal_core.la \
60-
datatype/libdatatype.la \
61-
util/libopalutil.la \
62-
$(MCA_opal_FRAMEWORK_LIBS)
62+
datatype/libdatatype.la \
63+
util/libopalutil.la \
64+
$(MCA_opal_FRAMEWORK_LIBS) \
65+
$(opal_pmix_LIBS) \
66+
$(opal_libevent_LIBS)
6367
lib@OPAL_LIB_NAME@_la_DEPENDENCIES = \
6468
libopen-pal_core.la \
6569
datatype/libdatatype.la \

opal/mca/btl/smcuda/Makefile.am

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
# Copyright (c) 2012 NVIDIA Corporation. All rights reserved.
1414
# Copyright (c) 2017 IBM Corporation. All rights reserved.
1515
# Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
16+
# Copyright (c) 2024 Research Organization for Information Science
17+
# and Technology (RIST). All rights reserved.
1618
# $COPYRIGHT$
1719
#
1820
# Additional copyrights may follow
@@ -52,13 +54,17 @@ mcacomponentdir = $(opallibdir)
5254
mcacomponent_LTLIBRARIES = $(component_install)
5355
mca_btl_smcuda_la_SOURCES = $(libmca_btl_smcuda_la_sources)
5456
mca_btl_smcuda_la_LDFLAGS = -module -avoid-version $(btl_smcuda_LDFLAGS)
55-
mca_btl_smcuda_la_LIBADD = $(top_builddir)/opal/lib@[email protected] \
57+
mca_btl_smcuda_la_LIBADD = \
58+
$(top_builddir)/opal/lib@[email protected] \
5659
$(OPAL_TOP_BUILDDIR)/opal/mca/common/sm/lib@OPAL_LIB_NAME@mca_common_sm.la \
57-
$(btl_smcuda_LIBS)
60+
$(btl_smcuda_LIBS) \
61+
$(opal_hwloc_LIBS)
5862
mca_btl_smcuda_la_CPPFLAGS = $(btl_smcuda_CPPFLAGS)
5963

6064
noinst_LTLIBRARIES = $(component_noinst)
6165
libmca_btl_smcuda_la_SOURCES = $(libmca_btl_smcuda_la_sources)
6266
libmca_btl_smcuda_la_LDFLAGS = -module -avoid-version $(btl_smcuda_LDFLAGS)
6367
libmca_btl_smcuda_la_CPPFLAGS = $(btl_smcuda_CPPFLAGS)
64-
libmca_btl_smcuda_la_LIBADD = $(btl_smcuda_LIBS)
68+
libmca_btl_smcuda_la_LIBADD = \
69+
$(btl_smcuda_LIBS) \
70+
$(opal_hwloc_LIBS)

opal/mca/btl/ugni/Makefile.am

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
# Copyright (c) 2011-2017 Los Alamos National Security, LLC. All rights
44
# reserved.
55
# Copyright (c) 2011 UT-Battelle, LLC. All rights reserved.
6+
# Copyright (c) 2024 Research Organization for Information Science
7+
# and Technology (RIST). All rights reserved.
68
#
79
# Additional copyrights may follow
810
#
@@ -48,12 +50,16 @@ mcacomponentdir = $(opallibdir)
4850
mcacomponent_LTLIBRARIES = $(component_install)
4951
mca_btl_ugni_la_SOURCES = $(ugni_SOURCES)
5052
nodist_mca_btl_ugni_la_SOURCES = $(ugni_nodist_SOURCES)
51-
mca_btl_ugni_la_LIBADD = $(top_builddir)/opal/lib@[email protected] \
52-
$(btl_ugni_LIBS)
53+
mca_btl_ugni_la_LIBADD = \
54+
$(top_builddir)/opal/lib@[email protected] \
55+
$(btl_ugni_LIBS) \
56+
$(opal_hwloc_LIBS)
5357
mca_btl_ugni_la_LDFLAGS = -module -avoid-version $(btl_ugni_LDFLAGS)
5458

5559
noinst_LTLIBRARIES = $(component_noinst)
5660
libmca_btl_ugni_la_SOURCES = $(ugni_SOURCES)
5761
nodist_libmca_btl_ugni_la_SOURCES = $(ugni_nodist_SOURCES)
58-
libmca_btl_ugni_la_LIBADD = $(btl_ugni_LIBS)
62+
libmca_btl_ugni_la_LIBADD = \
63+
$(btl_ugni_LIBS) \
64+
$(opal_hwloc_LIBS)
5965
libmca_btl_ugni_la_LDFLAGS = -module -avoid-version $(btl_ugni_LDFLAGS)

opal/mca/btl/usnic/Makefile.am

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
1717
# Copyright (c) 2017 Los Alamos National Security, LLC. All rights
1818
# reserved.
19-
# Copyright (c) 2019 Research Organization for Information Science
19+
# Copyright (c) 2019-2024 Research Organization for Information Science
2020
# and Technology (RIST). All rights reserved.
2121
# Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
2222
# $COPYRIGHT$
@@ -93,16 +93,20 @@ mca_btl_usnic_la_LDFLAGS = \
9393
$(opal_btl_usnic_LDFLAGS) \
9494
$(btl_usnic_LDFLAGS) \
9595
-module -avoid-version
96-
mca_btl_usnic_la_LIBADD = $(top_builddir)/opal/lib@[email protected] \
97-
$(btl_usnic_LIBS)
96+
mca_btl_usnic_la_LIBADD = \
97+
$(top_builddir)/opal/lib@[email protected] \
98+
$(btl_usnic_LIBS) \
99+
$(opal_hwloc_LIBS)
98100

99101
noinst_LTLIBRARIES = $(lib)
100102
libmca_btl_usnic_la_SOURCES = $(lib_sources)
101103
libmca_btl_usnic_la_LDFLAGS = \
102104
$(opal_btl_usnic_LDFLAGS) \
103105
$(btl_usnic_LDFLAGS) \
104106
-module -avoid-version
105-
libmca_btl_usnic_la_LIBADD = $(btl_usnic_LIBS)
107+
libmca_btl_usnic_la_LIBADD = \
108+
$(btl_usnic_LIBS) \
109+
$(opal_hwloc_LIBS)
106110

107111
if OPAL_BTL_USNIC_BUILD_UNIT_TESTS
108112
usnic_btl_run_tests_CPPFLAGS = $(AM_CPPFLAGS) \

opal/mca/common/ofi/Makefile.am

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
# reserved.
1717
# Copyright (c) 2019 Hewlett Packard Enterprise. All rights reserved.
1818
# Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All Rights reserved.
19+
# Copyright (c) 2024 Research Organization for Information Science
20+
# and Technology (RIST). All rights reserved.
1921
# $COPYRIGHT$
2022
#
2123
# Additional copyrights may follow
@@ -75,11 +77,15 @@ lib@OPAL_LIB_NAME@mca_common_ofi_la_SOURCES = $(headers) $(sources)
7577
lib@OPAL_LIB_NAME@mca_common_ofi_la_LDFLAGS = \
7678
$(common_ofi_LDFLAGS) \
7779
-version-info $(libmca_opal_common_ofi_so_version)
78-
lib@OPAL_LIB_NAME@mca_common_ofi_la_LIBADD = $(common_ofi_LIBS)
80+
lib@OPAL_LIB_NAME@mca_common_ofi_la_LIBADD = \
81+
$(common_ofi_LIBS) \
82+
$(opal_hwloc_LIBS)
7983

8084
lib@OPAL_LIB_NAME@mca_common_ofi_noinst_la_SOURCES = $(headers) $(sources)
8185
lib@OPAL_LIB_NAME@mca_common_ofi_noinst_la_LDFLAGS = $(common_ofi_LDFLAGS)
82-
lib@OPAL_LIB_NAME@mca_common_ofi_noinst_la_LIBADD = $(common_ofi_LIBS)
86+
lib@OPAL_LIB_NAME@mca_common_ofi_noinst_la_LIBADD = \
87+
$(common_ofi_LIBS) \
88+
$(opal_hwloc_LIBS)
8389

8490
# Conditionally install the header files
8591

oshmem/Makefile.am

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# Copyright (c) 2016 IBM Corporation. All rights reserved.
99
# Copyright (c) 2021 Amazon.com, Inc. or its affiliates.
1010
# All Rights reserved.
11+
# Copyright (c) 2024 Research Organization for Information Science
12+
# and Technology (RIST). All rights reserved.
1113
# $COPYRIGHT$
1214
#
1315
# Additional copyrights may follow
@@ -54,7 +56,8 @@ liboshmem_la_LIBADD = \
5456
shmem/c/liboshmem_c.la \
5557
$(fortran_oshmem_lib) \
5658
$(MCA_oshmem_FRAMEWORK_LIBS) \
57-
$(OSHMEM_TOP_BUILDDIR)/ompi/lib@[email protected]
59+
$(OSHMEM_TOP_BUILDDIR)/ompi/lib@[email protected] \
60+
$(opal_pmix_LIBS)
5861
liboshmem_la_DEPENDENCIES = $(liboshmem_la_LIBADD)
5962
liboshmem_la_LDFLAGS = \
6063
-version-info $(liboshmem_so_version) \

0 commit comments

Comments
 (0)