Skip to content

Commit 4cc321b

Browse files
pavanbalajiraffenet
authored andcommitted
MPICH: fixes for embedded builds
In embedded mode: * do not install utility programs * do not install headers and man pages * do not expose functions with visibility "default"
1 parent 72bc017 commit 4cc321b

File tree

12 files changed

+61
-32
lines changed

12 files changed

+61
-32
lines changed

Makefile.am

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ AM_CPPFLAGS = \
1717
noinst_LTLIBRARIES =
1818
lib_LTLIBRARIES =
1919
noinst_PROGRAMS =
20+
bin_PROGRAMS =
2021

2122
if EMBEDDED
2223
noinst_LTLIBRARIES += src/libfabric.la
@@ -36,11 +37,13 @@ else !HAVE_LD_VERSION_SCRIPT
3637
libfabric_version_script =
3738
endif !HAVE_LD_VERSION_SCRIPT
3839

40+
if !EMBEDDED
3941
rdmaincludedir = $(includedir)/rdma
4042
providersincludedir = $(rdmaincludedir)/providers
4143

4244
rdmainclude_HEADERS =
4345
providersinclude_HEADERS =
46+
endif
4447

4548
# internal utility functions shared by in-tree providers:
4649
common_srcs = \
@@ -150,10 +153,17 @@ common_hook_srcs = \
150153
# ensure dl-built providers link back to libfabric
151154
linkback = src/libfabric.la
152155

153-
bin_PROGRAMS = \
156+
if EMBEDDED
157+
noinst_PROGRAMS += \
154158
util/fi_info \
155159
util/fi_strerror \
156160
util/fi_pingpong
161+
else
162+
bin_PROGRAMS += \
163+
util/fi_info \
164+
util/fi_strerror \
165+
util/fi_pingpong
166+
endif
157167

158168
if HAVE_MONITOR
159169
bin_PROGRAMS += util/fi_mon_sampler
@@ -239,6 +249,7 @@ src_libfabric_la_LDFLAGS += -version-info 30:0:29
239249
endif
240250
src_libfabric_la_LDFLAGS += -export-dynamic \
241251
$(libfabric_version_script)
252+
if !EMBEDDED
242253
rdmainclude_HEADERS += \
243254
$(top_srcdir)/include/rdma/fabric.h \
244255
$(top_srcdir)/include/rdma/fi_atomic.h \
@@ -275,6 +286,7 @@ else
275286
nodist_rdmainclude_HEADERS += $(top_srcdir)/prov/$(PROVIDER_DIRECT)/include/rdma/fi_direct.h
276287
endif
277288
endif HAVE_DIRECT
289+
endif !EMBEDDED
278290

279291
real_man_pages = \
280292
man/man1/fi_info.1 \
@@ -453,8 +465,10 @@ windows_files = \
453465
prov/verbs/include/windows \
454466
prov/verbs/src/windows
455467

468+
if !EMBEDDED
456469
pkgconfigdir = $(libdir)/pkgconfig
457470
pkgconfig_DATA = libfabric.pc
471+
endif
458472

459473
nroff:
460474
@for file in $(real_man_pages) $(prov_install_man_pages); do \

configure.ac

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ AC_CONFIG_SRCDIR([src/fabric.c])
1515
AC_CONFIG_AUX_DIR(config)
1616
AC_CONFIG_MACRO_DIR(config)
1717
AC_CONFIG_HEADERS(config.h)
18-
AM_INIT_AUTOMAKE([1.11 dist-bzip2 foreign -Wall -Werror subdir-objects parallel-tests tar-pax])
18+
AM_INIT_AUTOMAKE([1.11 dist-bzip2 foreign -Wall -Werror subdir-objects parallel-tests tar-pax no-installman])
1919
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
2020
m4_include(config/fi_check_package.m4)
2121
m4_include(config/fi_strip_optflags.m4)
@@ -430,6 +430,7 @@ AC_ARG_ENABLE([embedded],
430430
icc_symver_hack=1],
431431
[enable_embedded=no])
432432
AM_CONDITIONAL([EMBEDDED], [test x"$enable_embedded" = x"yes"])
433+
AM_COND_IF([EMBEDDED], [AC_DEFINE([ENABLE_EMBEDDED], 1, [define if building as embedded library])])
433434

434435
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$ac_cv_version_script" = "yes")
435436

include/rdma/fabric.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@
6363
#define EXTERNALLY_VISIBLE
6464
#endif
6565

66+
#ifdef ENABLE_EMBEDDED
67+
#define API_PREFIX
68+
#else
69+
#define API_PREFIX __attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
70+
#endif
71+
6672
#if defined(_WIN32)
6773
#include <BaseTsd.h>
6874
typedef SSIZE_T ssize_t;

prov/cxi/Makefile.include

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ _cxi_headers = \
4949
prov/cxi/include/cxip_faults.h \
5050
prov/cxi/include/fi_cxi_ext.h
5151

52+
if !EMBEDDED
5253
rdmainclude_HEADERS += \
5354
prov/cxi/include/fi_cxi_ext.h
55+
endif
5456

5557
# Stand-alone srun tests for hardware testing environment
5658
noinst_PROGRAMS += prov/cxi/test/multinode/test_frmwk

prov/efa/Makefile.include

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,10 @@ efa_CPPFLAGS += \
239239
-I$(top_srcdir)/prov/efa/src/ \
240240
-I$(top_srcdir)/prov/efa/src/rdm/
241241

242+
if !EMBEDDED
242243
rdmainclude_HEADERS += \
243244
prov/efa/src/fi_ext_efa.h
245+
endif
244246

245247
if HAVE_EFA_DL
246248
pkglib_LTLIBRARIES += libefa-fi.la

prov/psm2/Makefile.include

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,10 @@ src_libfabric_la_LIBADD += libpsmx2.la
135135
src_libfabric_la_DEPENDENCIES += libpsmx2.la
136136
endif !HAVE_PSM2_DL
137137

138+
if !EMBEDDED
138139
rdmainclude_HEADERS += prov/psm2/include/fi_ext_psm2.h
139140
prov_install_man_pages += man/man7/fi_psm2.7
141+
endif
140142

141143
endif HAVE_PSM2
142144

prov/usnic/Makefile.include

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,10 @@ _usnic_cppflags = \
138138
-DHAVE_LIBNL3=$(HAVE_LIBNL3) $(usnic_CPPFLAGS) \
139139
-I$(top_srcdir)/prov/usnic/src/usnic_direct
140140

141+
if !EMBEDDED
141142
rdmainclude_HEADERS += \
142143
prov/usnic/src/fi_ext_usnic.h
144+
endif
143145

144146
if HAVE_USNIC_DL
145147
pkglib_LTLIBRARIES += libusnic-fi.la

src/abi_1_0.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -389,14 +389,14 @@ ofi_dup_info_err_free_base: \
389389
/*
390390
* ABI 1.0
391391
*/
392-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
392+
API_PREFIX
393393
void fi_freeinfo_1_0(struct fi_info_1_0 *info)
394394
{
395395
fi_freeinfo((struct fi_info *) info);
396396
}
397397
COMPAT_SYMVER(fi_freeinfo_1_0, fi_freeinfo, FABRIC_1.0);
398398

399-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
399+
API_PREFIX
400400
struct fi_info_1_0 *fi_dupinfo_1_0(const struct fi_info_1_0 *info)
401401
{
402402
struct fi_info *dup;
@@ -477,7 +477,7 @@ struct fi_info_1_0 *fi_dupinfo_1_0(const struct fi_info_1_0 *info)
477477
}
478478
COMPAT_SYMVER(fi_dupinfo_1_0, fi_dupinfo, FABRIC_1.0);
479479

480-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
480+
API_PREFIX
481481
int fi_getinfo_1_0(uint32_t version, const char *node, const char *service,
482482
uint64_t flags, const struct fi_info_1_0 *hints_1_0,
483483
struct fi_info_1_0 **info)
@@ -500,7 +500,7 @@ int fi_getinfo_1_0(uint32_t version, const char *node, const char *service,
500500
}
501501
COMPAT_SYMVER(fi_getinfo_1_0, fi_getinfo, FABRIC_1.0);
502502

503-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
503+
API_PREFIX
504504
int fi_fabric_1_0(struct fi_fabric_attr_1_0 *attr_1_0,
505505
struct fid_fabric **fabric, void *context)
506506
{
@@ -524,14 +524,14 @@ COMPAT_SYMVER(fi_fabric_1_0, fi_fabric, FABRIC_1.0);
524524
/*
525525
* ABI 1.1
526526
*/
527-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
527+
API_PREFIX
528528
void fi_freeinfo_1_1(struct fi_info_1_1 *info)
529529
{
530530
fi_freeinfo((struct fi_info *) info);
531531
}
532532
COMPAT_SYMVER(fi_freeinfo_1_1, fi_freeinfo, FABRIC_1.1);
533533

534-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
534+
API_PREFIX
535535
struct fi_info_1_1 *fi_dupinfo_1_1(const struct fi_info_1_1 *info)
536536
{
537537
struct fi_info *dup, *base;
@@ -550,7 +550,7 @@ struct fi_info_1_1 *fi_dupinfo_1_1(const struct fi_info_1_1 *info)
550550
}
551551
COMPAT_SYMVER(fi_dupinfo_1_1, fi_dupinfo, FABRIC_1.1);
552552

553-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
553+
API_PREFIX
554554
int fi_getinfo_1_1(uint32_t version, const char *node, const char *service,
555555
uint64_t flags, const struct fi_info_1_1 *hints_1_1,
556556
struct fi_info_1_1 **info)
@@ -576,14 +576,14 @@ COMPAT_SYMVER(fi_getinfo_1_1, fi_getinfo, FABRIC_1.1);
576576
/*
577577
* ABI 1.2
578578
*/
579-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
579+
API_PREFIX
580580
void fi_freeinfo_1_2(struct fi_info_1_2 *info)
581581
{
582582
fi_freeinfo((struct fi_info *) info);
583583
}
584584
COMPAT_SYMVER(fi_freeinfo_1_2, fi_freeinfo, FABRIC_1.2);
585585

586-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
586+
API_PREFIX
587587
struct fi_info_1_2 *fi_dupinfo_1_2(const struct fi_info_1_2 *info)
588588
{
589589
struct fi_info *dup, *base;
@@ -602,7 +602,7 @@ struct fi_info_1_2 *fi_dupinfo_1_2(const struct fi_info_1_2 *info)
602602
}
603603
COMPAT_SYMVER(fi_dupinfo_1_2, fi_dupinfo, FABRIC_1.2);
604604

605-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
605+
API_PREFIX
606606
int fi_getinfo_1_2(uint32_t version, const char *node, const char *service,
607607
uint64_t flags, const struct fi_info_1_2 *hints_1_2,
608608
struct fi_info_1_2 **info)
@@ -628,14 +628,14 @@ COMPAT_SYMVER(fi_getinfo_1_2, fi_getinfo, FABRIC_1.2);
628628
/*
629629
* ABI 1.3
630630
*/
631-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
631+
API_PREFIX
632632
void fi_freeinfo_1_3(struct fi_info_1_3 *info)
633633
{
634634
fi_freeinfo((struct fi_info *) info);
635635
}
636636
COMPAT_SYMVER(fi_freeinfo_1_3, fi_freeinfo, FABRIC_1.3);
637637

638-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
638+
API_PREFIX
639639
struct fi_info_1_3 *fi_dupinfo_1_3(const struct fi_info_1_3 *info)
640640
{
641641
struct fi_info *dup, *base;
@@ -654,7 +654,7 @@ struct fi_info_1_3 *fi_dupinfo_1_3(const struct fi_info_1_3 *info)
654654
}
655655
COMPAT_SYMVER(fi_dupinfo_1_3, fi_dupinfo, FABRIC_1.3);
656656

657-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
657+
API_PREFIX
658658
int fi_getinfo_1_3(uint32_t version, const char *node, const char *service,
659659
uint64_t flags, const struct fi_info_1_3 *hints_1_3,
660660
struct fi_info_1_3 **info)

src/fabric.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,7 +1046,7 @@ FI_DESTRUCTOR(fi_fini(void))
10461046
pthread_mutex_unlock(&common_locks.ini_lock);
10471047
}
10481048

1049-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1049+
API_PREFIX
10501050
void DEFAULT_SYMVER_PRE(fi_freeinfo)(struct fi_info *info)
10511051
{
10521052
struct fi_info *next;
@@ -1314,7 +1314,7 @@ static int ofi_layering_ok(const struct fi_provider *provider,
13141314
return !strcasecmp(provider->name, prov_name);
13151315
}
13161316

1317-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1317+
API_PREFIX
13181318
int DEFAULT_SYMVER_PRE(fi_getinfo)(uint32_t version, const char *node,
13191319
const char *service, uint64_t flags,
13201320
const struct fi_info *hints, struct fi_info **info)
@@ -1445,7 +1445,7 @@ struct fi_info *ofi_allocinfo_internal(void)
14451445
}
14461446

14471447

1448-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1448+
API_PREFIX
14491449
struct fi_info *DEFAULT_SYMVER_PRE(fi_dupinfo)(const struct fi_info *info)
14501450
{
14511451
struct fi_info *dup;
@@ -1552,7 +1552,7 @@ struct fi_info *DEFAULT_SYMVER_PRE(fi_dupinfo)(const struct fi_info *info)
15521552
}
15531553
DEFAULT_SYMVER(fi_dupinfo_, fi_dupinfo, FABRIC_1.8);
15541554

1555-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1555+
API_PREFIX
15561556
int DEFAULT_SYMVER_PRE(fi_fabric)(struct fi_fabric_attr *attr,
15571557
struct fid_fabric **fabric, void *context)
15581558
{
@@ -1605,7 +1605,7 @@ int DEFAULT_SYMVER_PRE(fi_fabric)(struct fi_fabric_attr *attr,
16051605
}
16061606
DEFAULT_SYMVER(fi_fabric_, fi_fabric, FABRIC_1.1);
16071607

1608-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1608+
API_PREFIX
16091609
int DEFAULT_SYMVER_PRE(fi_fabric2)(struct fi_info *info,
16101610
struct fid_fabric **fabric, uint64_t flags, void *context)
16111611
{
@@ -1616,14 +1616,14 @@ int DEFAULT_SYMVER_PRE(fi_fabric2)(struct fi_info *info,
16161616
}
16171617
DEFAULT_SYMVER(fi_fabric2_, fi_fabric2, FABRIC_1.8);
16181618

1619-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1619+
API_PREFIX
16201620
uint32_t DEFAULT_SYMVER_PRE(fi_version)(void)
16211621
{
16221622
return FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION);
16231623
}
16241624
DEFAULT_SYMVER(fi_version_, fi_version, FABRIC_1.0);
16251625

1626-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1626+
API_PREFIX
16271627
int DEFAULT_SYMVER_PRE(fi_open)(uint32_t version, const char *name,
16281628
void *attr, size_t attr_len, uint64_t flags,
16291629
struct fid **fid, void *context)
@@ -1658,7 +1658,7 @@ static const char *const errstr[] = {
16581658
[FI_EFIREWALLADDR - FI_ERRNO_OFFSET] = "Host unreacheable due to firewall",
16591659
};
16601660

1661-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1661+
API_PREFIX
16621662
const char *DEFAULT_SYMVER_PRE(fi_strerror)(int errnum)
16631663
{
16641664
if (errnum < 0)

src/fi_tostr.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ ofi_tostr_cq_err_entry(char *buf, size_t len,
918918
ofi_strncatf(buf, len, "%serr_data_size: %zu\n", TAB, entry->err_data_size);
919919
}
920920

921-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
921+
API_PREFIX
922922
char *DEFAULT_SYMVER_PRE(fi_tostr_r)(char *buf, size_t len,
923923
const void *data, enum fi_type datatype)
924924
{
@@ -1047,7 +1047,7 @@ char *DEFAULT_SYMVER_PRE(fi_tostr_r)(char *buf, size_t len,
10471047
}
10481048
DEFAULT_SYMVER(fi_tostr_r_, fi_tostr_r, FABRIC_1.4);
10491049

1050-
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
1050+
API_PREFIX
10511051
char *DEFAULT_SYMVER_PRE(fi_tostr)(const void *data, enum fi_type datatype)
10521052
{
10531053
static char *buf = NULL;

0 commit comments

Comments
 (0)