Skip to content

Commit a619ab6

Browse files
committed
MPICH: modifications to embedded build
Prepare embedded build to be a shared library rather than statically linked into MPICH. Reenable symbol visibility and make sure to install the library in the final destination.
1 parent a2d80a9 commit a619ab6

File tree

7 files changed

+29
-39
lines changed

7 files changed

+29
-39
lines changed

Makefile.am

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ lib_LTLIBRARIES =
1818
noinst_PROGRAMS =
1919
bin_PROGRAMS =
2020

21-
if EMBEDDED
22-
noinst_LTLIBRARIES += src/libfabric.la
23-
else
2421
lib_LTLIBRARIES += src/libfabric.la
25-
endif
2622

2723
pkglib_LTLIBRARIES = $(DL_PROVIDERS)
2824

include/ofi.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,6 @@
6565
extern "C" {
6666
#endif
6767

68-
#ifdef ENABLE_EMBEDDED
69-
#define API_PREFIX
70-
#else
71-
#define API_PREFIX __attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
72-
#endif
73-
7468
/* For in-tree providers */
7569
#define OFI_VERSION_LATEST FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION)
7670
/* The lower minor digit is reserved for custom libfabric builds */

src/abi_1_0.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -334,14 +334,14 @@ ofi_dup_info_err_free_base: \
334334
/*
335335
* ABI 1.0
336336
*/
337-
API_PREFIX
337+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
338338
void fi_freeinfo_1_0(struct fi_info_1_0 *info)
339339
{
340340
fi_freeinfo((struct fi_info *) info);
341341
}
342342
COMPAT_SYMVER(fi_freeinfo_1_0, fi_freeinfo, FABRIC_1.0);
343343

344-
API_PREFIX
344+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
345345
struct fi_info_1_0 *fi_dupinfo_1_0(const struct fi_info_1_0 *info)
346346
{
347347
struct fi_info *dup;
@@ -422,7 +422,7 @@ struct fi_info_1_0 *fi_dupinfo_1_0(const struct fi_info_1_0 *info)
422422
}
423423
COMPAT_SYMVER(fi_dupinfo_1_0, fi_dupinfo, FABRIC_1.0);
424424

425-
API_PREFIX
425+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
426426
int fi_getinfo_1_0(uint32_t version, const char *node, const char *service,
427427
uint64_t flags, const struct fi_info_1_0 *hints_1_0,
428428
struct fi_info_1_0 **info)
@@ -445,7 +445,7 @@ int fi_getinfo_1_0(uint32_t version, const char *node, const char *service,
445445
}
446446
COMPAT_SYMVER(fi_getinfo_1_0, fi_getinfo, FABRIC_1.0);
447447

448-
API_PREFIX
448+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
449449
int fi_fabric_1_0(struct fi_fabric_attr_1_0 *attr_1_0,
450450
struct fid_fabric **fabric, void *context)
451451
{
@@ -469,14 +469,14 @@ COMPAT_SYMVER(fi_fabric_1_0, fi_fabric, FABRIC_1.0);
469469
/*
470470
* ABI 1.1
471471
*/
472-
API_PREFIX
472+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
473473
void fi_freeinfo_1_1(struct fi_info_1_1 *info)
474474
{
475475
fi_freeinfo((struct fi_info *) info);
476476
}
477477
COMPAT_SYMVER(fi_freeinfo_1_1, fi_freeinfo, FABRIC_1.1);
478478

479-
API_PREFIX
479+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
480480
struct fi_info_1_1 *fi_dupinfo_1_1(const struct fi_info_1_1 *info)
481481
{
482482
struct fi_info *dup, *base;
@@ -495,7 +495,7 @@ struct fi_info_1_1 *fi_dupinfo_1_1(const struct fi_info_1_1 *info)
495495
}
496496
COMPAT_SYMVER(fi_dupinfo_1_1, fi_dupinfo, FABRIC_1.1);
497497

498-
API_PREFIX
498+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
499499
int fi_getinfo_1_1(uint32_t version, const char *node, const char *service,
500500
uint64_t flags, const struct fi_info_1_1 *hints_1_1,
501501
struct fi_info_1_1 **info)
@@ -521,14 +521,14 @@ COMPAT_SYMVER(fi_getinfo_1_1, fi_getinfo, FABRIC_1.1);
521521
/*
522522
* ABI 1.2
523523
*/
524-
API_PREFIX
524+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
525525
void fi_freeinfo_1_2(struct fi_info_1_2 *info)
526526
{
527527
fi_freeinfo((struct fi_info *) info);
528528
}
529529
COMPAT_SYMVER(fi_freeinfo_1_2, fi_freeinfo, FABRIC_1.2);
530530

531-
API_PREFIX
531+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
532532
struct fi_info_1_2 *fi_dupinfo_1_2(const struct fi_info_1_2 *info)
533533
{
534534
struct fi_info *dup, *base;
@@ -547,7 +547,7 @@ struct fi_info_1_2 *fi_dupinfo_1_2(const struct fi_info_1_2 *info)
547547
}
548548
COMPAT_SYMVER(fi_dupinfo_1_2, fi_dupinfo, FABRIC_1.2);
549549

550-
API_PREFIX
550+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
551551
int fi_getinfo_1_2(uint32_t version, const char *node, const char *service,
552552
uint64_t flags, const struct fi_info_1_2 *hints_1_2,
553553
struct fi_info_1_2 **info)
@@ -573,14 +573,14 @@ COMPAT_SYMVER(fi_getinfo_1_2, fi_getinfo, FABRIC_1.2);
573573
/*
574574
* ABI 1.3
575575
*/
576-
API_PREFIX
576+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
577577
void fi_freeinfo_1_3(struct fi_info_1_3 *info)
578578
{
579579
fi_freeinfo((struct fi_info *) info);
580580
}
581581
COMPAT_SYMVER(fi_freeinfo_1_3, fi_freeinfo, FABRIC_1.3);
582582

583-
API_PREFIX
583+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
584584
struct fi_info_1_3 *fi_dupinfo_1_3(const struct fi_info_1_3 *info)
585585
{
586586
struct fi_info *dup, *base;
@@ -599,7 +599,7 @@ struct fi_info_1_3 *fi_dupinfo_1_3(const struct fi_info_1_3 *info)
599599
}
600600
COMPAT_SYMVER(fi_dupinfo_1_3, fi_dupinfo, FABRIC_1.3);
601601

602-
API_PREFIX
602+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
603603
int fi_getinfo_1_3(uint32_t version, const char *node, const char *service,
604604
uint64_t flags, const struct fi_info_1_3 *hints_1_3,
605605
struct fi_info_1_3 **info)

src/fabric.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,7 @@ FI_DESTRUCTOR(fi_fini(void))
966966
pthread_mutex_unlock(&common_locks.ini_lock);
967967
}
968968

969-
API_PREFIX
969+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
970970
void DEFAULT_SYMVER_PRE(fi_freeinfo)(struct fi_info *info)
971971
{
972972
struct fi_info *next;
@@ -1232,7 +1232,7 @@ static int ofi_layering_ok(const struct fi_provider *provider,
12321232
return !strcasecmp(provider->name, prov_name);
12331233
}
12341234

1235-
API_PREFIX
1235+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
12361236
int DEFAULT_SYMVER_PRE(fi_getinfo)(uint32_t version, const char *node,
12371237
const char *service, uint64_t flags,
12381238
const struct fi_info *hints, struct fi_info **info)
@@ -1363,7 +1363,7 @@ struct fi_info *ofi_allocinfo_internal(void)
13631363
}
13641364

13651365

1366-
API_PREFIX
1366+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
13671367
struct fi_info *DEFAULT_SYMVER_PRE(fi_dupinfo)(const struct fi_info *info)
13681368
{
13691369
struct fi_info *dup;
@@ -1470,7 +1470,7 @@ struct fi_info *DEFAULT_SYMVER_PRE(fi_dupinfo)(const struct fi_info *info)
14701470
}
14711471
CURRENT_SYMVER(fi_dupinfo_, fi_dupinfo);
14721472

1473-
API_PREFIX
1473+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
14741474
int DEFAULT_SYMVER_PRE(fi_fabric)(struct fi_fabric_attr *attr,
14751475
struct fid_fabric **fabric, void *context)
14761476
{
@@ -1510,14 +1510,14 @@ int DEFAULT_SYMVER_PRE(fi_fabric)(struct fi_fabric_attr *attr,
15101510
}
15111511
DEFAULT_SYMVER(fi_fabric_, fi_fabric, FABRIC_1.1);
15121512

1513-
API_PREFIX
1513+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
15141514
uint32_t DEFAULT_SYMVER_PRE(fi_version)(void)
15151515
{
15161516
return FI_VERSION(FI_MAJOR_VERSION, FI_MINOR_VERSION);
15171517
}
15181518
DEFAULT_SYMVER(fi_version_, fi_version, FABRIC_1.0);
15191519

1520-
API_PREFIX
1520+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
15211521
int DEFAULT_SYMVER_PRE(fi_open)(uint32_t version, const char *name,
15221522
void *attr, size_t attr_len, uint64_t flags,
15231523
struct fid **fid, void *context)
@@ -1551,7 +1551,7 @@ static const char *const errstr[] = {
15511551
[FI_ENOMR - FI_ERRNO_OFFSET] = "Memory registration limit exceeded",
15521552
};
15531553

1554-
API_PREFIX
1554+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
15551555
const char *DEFAULT_SYMVER_PRE(fi_strerror)(int errnum)
15561556
{
15571557
if (errnum < 0)

src/fi_tostr.c

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

957-
API_PREFIX
957+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
958958
char *DEFAULT_SYMVER_PRE(fi_tostr_r)(char *buf, size_t len,
959959
const void *data, enum fi_type datatype)
960960
{
@@ -1083,7 +1083,7 @@ char *DEFAULT_SYMVER_PRE(fi_tostr_r)(char *buf, size_t len,
10831083
}
10841084
DEFAULT_SYMVER(fi_tostr_r_, fi_tostr_r, FABRIC_1.4);
10851085

1086-
API_PREFIX
1086+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
10871087
char *DEFAULT_SYMVER_PRE(fi_tostr)(const void *data, enum fi_type datatype)
10881088
{
10891089
static char *buf = NULL;

src/log.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ void fi_log_fini(void)
317317
ofi_free_filter(&prov_log_filter);
318318
}
319319

320-
API_PREFIX
320+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
321321
int DEFAULT_SYMVER_PRE(fi_log_enabled)(const struct fi_provider *prov,
322322
enum fi_log_level level,
323323
enum fi_log_subsys subsys)
@@ -331,7 +331,7 @@ int DEFAULT_SYMVER_PRE(fi_log_enabled)(const struct fi_provider *prov,
331331
}
332332
DEFAULT_SYMVER(fi_log_enabled_, fi_log_enabled, FABRIC_1.0);
333333

334-
API_PREFIX
334+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
335335
int DEFAULT_SYMVER_PRE(fi_log_ready)(const struct fi_provider *prov,
336336
enum fi_log_level level, enum fi_log_subsys subsys,
337337
uint64_t *showtime)
@@ -345,7 +345,7 @@ int DEFAULT_SYMVER_PRE(fi_log_ready)(const struct fi_provider *prov,
345345
}
346346
DEFAULT_SYMVER(fi_log_ready_, fi_log_ready, FABRIC_1.6);
347347

348-
API_PREFIX
348+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
349349
void DEFAULT_SYMVER_PRE(fi_log)(const struct fi_provider *prov, enum fi_log_level level,
350350
enum fi_log_subsys subsys, const char *func, int line,
351351
const char *fmt, ...)

src/var.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ fi_find_param(const struct fi_provider *provider, const char *param_name)
9292
return NULL;
9393
}
9494

95-
API_PREFIX
95+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
9696
int DEFAULT_SYMVER_PRE(fi_getparams)(struct fi_param **params, int *count)
9797
{
9898
struct fi_param *vhead = NULL;
@@ -139,7 +139,7 @@ int DEFAULT_SYMVER_PRE(fi_getparams)(struct fi_param **params, int *count)
139139
}
140140
DEFAULT_SYMVER(fi_getparams_, fi_getparams, FABRIC_1.0);
141141

142-
API_PREFIX
142+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
143143
void DEFAULT_SYMVER_PRE(fi_freeparams)(struct fi_param *params)
144144
{
145145
int i;
@@ -184,7 +184,7 @@ void fi_param_undefine(const struct fi_provider *provider)
184184
}
185185
}
186186

187-
API_PREFIX
187+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
188188
int DEFAULT_SYMVER_PRE(fi_param_define)(const struct fi_provider *provider,
189189
const char *param_name, enum fi_param_type type,
190190
const char *help_string_fmt, ...)
@@ -339,7 +339,7 @@ void ofi_dump_sysconfig(void)
339339
}
340340
}
341341

342-
API_PREFIX
342+
__attribute__((visibility ("default"),EXTERNALLY_VISIBLE))
343343
int DEFAULT_SYMVER_PRE(fi_param_get)(struct fi_provider *provider,
344344
const char *param_name, void *value)
345345
{

0 commit comments

Comments
 (0)