Skip to content

Commit 9e86643

Browse files
committed
remove optional symbols
1 parent 52152a1 commit 9e86643

15 files changed

+197
-83
lines changed

CMakeLists.txt

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -423,29 +423,6 @@ if((UMF_BUILD_GPU_TESTS OR UMF_BUILD_GPU_EXAMPLES) AND UMF_BUILD_CUDA_PROVIDER)
423423
# TODO do the same for ze_loader
424424
endif()
425425

426-
# set optional symbols for map/def files
427-
#
428-
# TODO: ref. #649
429-
set(UMF_OPTIONAL_SYMBOLS_LINUX "")
430-
set(UMF_OPTIONAL_SYMBOLS_WINDOWS "")
431-
432-
if(UMF_BUILD_LEVEL_ZERO_PROVIDER)
433-
add_optional_symbol(umfLevelZeroMemoryProviderOps)
434-
endif()
435-
436-
# Conditional configuration for CUDA provider
437-
if(UMF_BUILD_CUDA_PROVIDER)
438-
add_optional_symbol(umfCUDAMemoryProviderOps)
439-
endif()
440-
441-
if(NOT UMF_DISABLE_HWLOC)
442-
add_optional_symbol(umfOsMemoryProviderOps)
443-
if(LINUX)
444-
add_optional_symbol(umfDevDaxMemoryProviderOps)
445-
add_optional_symbol(umfFileMemoryProviderOps)
446-
endif()
447-
endif()
448-
449426
add_subdirectory(src)
450427

451428
if(UMF_BUILD_TESTS)

cmake/helpers.cmake

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -446,12 +446,3 @@ macro(add_sanitizer_flag flag)
446446

447447
set(CMAKE_REQUIRED_FLAGS ${SAVED_CMAKE_REQUIRED_FLAGS})
448448
endmacro()
449-
450-
function(add_optional_symbol symbol)
451-
set(UMF_OPTIONAL_SYMBOLS_WINDOWS
452-
"${UMF_OPTIONAL_SYMBOLS_WINDOWS} \n ${symbol}"
453-
PARENT_SCOPE)
454-
set(UMF_OPTIONAL_SYMBOLS_LINUX
455-
"${UMF_OPTIONAL_SYMBOLS_LINUX} \n ${symbol};"
456-
PARENT_SCOPE)
457-
endfunction()

src/CMakeLists.txt

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,14 @@ set(UMF_SOURCES
110110
memtarget.c
111111
mempolicy.c
112112
memspace.c
113+
memspaces/memspace_host_all.c
114+
memspaces/memspace_highest_capacity.c
115+
memspaces/memspace_highest_bandwidth.c
116+
memspaces/memspace_lowest_latency.c
117+
memspaces/memspace_numa.c
113118
provider/provider_coarse.c
114119
provider/provider_tracking.c
120+
provider/provider_os_memory.c
115121
critnib/critnib.c
116122
ravl/ravl.c
117123
pool/pool_proxy.c
@@ -128,15 +134,8 @@ set(UMF_SOURCES_MACOSX libumf_linux.c)
128134
set(UMF_SOURCES_WINDOWS libumf_windows.c)
129135

130136
set(UMF_SOURCES_COMMON_LINUX_MACOSX
131-
provider/provider_devdax_memory.c
132-
provider/provider_file_memory.c
133-
provider/provider_os_memory.c
134-
memtargets/memtarget_numa.c
135-
memspaces/memspace_numa.c
136-
memspaces/memspace_host_all.c
137-
memspaces/memspace_highest_capacity.c
138-
memspaces/memspace_highest_bandwidth.c
139-
memspaces/memspace_lowest_latency.c)
137+
provider/provider_devdax_memory.c provider/provider_file_memory.c
138+
memtargets/memtarget_numa.c)
140139

141140
if(NOT UMF_DISABLE_HWLOC)
142141
set(UMF_SOURCES_LINUX ${UMF_SOURCES_LINUX}
@@ -145,32 +144,24 @@ if(NOT UMF_DISABLE_HWLOC)
145144
set(UMF_SOURCES_MACOSX ${UMF_SOURCES_MACOSX}
146145
${UMF_SOURCES_COMMON_LINUX_MACOSX})
147146

148-
set(UMF_SOURCES_WINDOWS ${UMF_SOURCES_WINDOWS}
149-
provider/provider_os_memory.c)
150-
151147
set(UMF_LIBS ${UMF_LIBS} ${LIBHWLOC_LIBRARIES})
152-
153-
if(NOT WINDOWS)
154-
add_optional_symbol(umfMemspaceCreateFromNumaArray)
155-
add_optional_symbol(umfMemspaceHighestBandwidthGet)
156-
add_optional_symbol(umfMemspaceHighestCapacityGet)
157-
add_optional_symbol(umfMemspaceHostAllGet)
158-
add_optional_symbol(umfMemspaceLowestLatencyGet)
159-
endif()
160148
endif()
161149

162-
if(WINDOWS)
163-
message(STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_WINDOWS}")
164-
else()
165-
message(STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_LINUX}")
150+
# Add symbols for unsupported functions
151+
if(NOT UMF_BUILD_CUDA_PROVIDER)
152+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
153+
"UMF_NO_CUDA_PROVIDER=1")
154+
endif()
155+
if(NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)
156+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
157+
"UMF_NO_LEVEL_ZERO_PROVIDER=1")
158+
endif()
159+
if(UMF_DISABLE_HWLOC OR WINDOWS)
160+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
161+
"UMF_NO_DEVDAX_PROVIDER=1")
162+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
163+
"UMF_NO_FILE_PROVIDER=1")
166164
endif()
167-
168-
# Configure map/def files with optional symbols
169-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.def.in"
170-
"${CMAKE_CURRENT_BINARY_DIR}/libumf.def" @ONLY)
171-
172-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.map.in"
173-
"${CMAKE_CURRENT_BINARY_DIR}/libumf.map" @ONLY)
174165

175166
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
176167
${LIBHWLOC_LIBRARY_DIRS})
@@ -198,8 +189,8 @@ if(UMF_BUILD_SHARED_LIBRARY)
198189
TYPE SHARED
199190
SRCS ${UMF_SOURCES}
200191
LIBS ${UMF_LIBS} ${HWLOC_LIB}
201-
LINUX_MAP_FILE ${CMAKE_CURRENT_BINARY_DIR}/libumf.map
202-
WINDOWS_DEF_FILE ${CMAKE_CURRENT_BINARY_DIR}/libumf.def)
192+
LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.map
193+
WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.def)
203194
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
204195
"UMF_SHARED_LIBRARY")
205196
set_target_properties(
@@ -217,7 +208,7 @@ endif()
217208

218209
if(UMF_DISABLE_HWLOC)
219210
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
220-
UMF_NO_HWLOC=1)
211+
"UMF_NO_HWLOC=1")
221212
endif()
222213

223214
if(UMF_LINK_HWLOC_STATICALLY)

src/libumf.def.in renamed to src/libumf.def

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ EXPORTS
1616
umfCloseIPCHandle
1717
umfCoarseMemoryProviderGetStats
1818
umfCoarseMemoryProviderOps
19+
umfCUDAMemoryProviderOps
20+
umfDevDaxMemoryProviderOps
1921
umfFree
22+
umfFileMemoryProviderOps
2023
umfGetIPCHandle
2124
umfGetLastFailedMemoryProvider
22-
umfMemoryTrackerGetAllocInfo
25+
umfLevelZeroMemoryProviderOps
2326
umfMemoryProviderAlloc
2427
umfMemoryProviderAllocationMerge
2528
umfMemoryProviderAllocationSplit
@@ -38,14 +41,20 @@ EXPORTS
3841
umfMemoryProviderPurgeForce
3942
umfMemoryProviderPurgeLazy
4043
umfMemoryProviderPutIPCHandle
44+
umfMemoryTrackerGetAllocInfo
4145
umfMempolicyCreate
4246
umfMempolicyDestroy
4347
umfMempolicySetCustomSplitPartitions
4448
umfMempolicySetInterleavePartSize
4549
umfMemspaceClone
50+
umfMemspaceCreateFromNumaArray
4651
umfMemspaceDestroy
4752
umfMemspaceFilterByCapacity
4853
umfMemspaceFilterById
54+
umfMemspaceHighestBandwidthGet
55+
umfMemspaceHighestCapacityGet
56+
umfMemspaceHostAllGet
57+
umfMemspaceLowestLatencyGet
4958
umfMemspaceMemtargetAdd
5059
umfMemspaceMemtargetGet
5160
umfMemspaceMemtargetNum
@@ -55,7 +64,8 @@ EXPORTS
5564
umfMemtargetGetCapacity
5665
umfMemtargetGetId
5766
umfMemtargetGetType
58-
umfOpenIPCHandle
67+
umfOpenIPCHandle
68+
umfOsMemoryProviderOps
5969
umfPoolAlignedMalloc
6070
umfPoolByPtr
6171
umfPoolCalloc
@@ -72,4 +82,3 @@ EXPORTS
7282
umfProxyPoolOps
7383
umfPutIPCHandle
7484
umfScalablePoolOps
75-
@UMF_OPTIONAL_SYMBOLS_WINDOWS@

src/libumf.map.in renamed to src/libumf.map

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ UMF_1.0 {
1010
umfCloseIPCHandle;
1111
umfCoarseMemoryProviderGetStats;
1212
umfCoarseMemoryProviderOps;
13+
umfCUDAMemoryProviderOps;
14+
umfDevDaxMemoryProviderOps;
1315
umfFree;
16+
umfFileMemoryProviderOps;
1417
umfGetIPCHandle;
1518
umfGetLastFailedMemoryProvider;
16-
umfMemoryTrackerGetAllocInfo;
19+
umfLevelZeroMemoryProviderOps;
1720
umfMemoryProviderAlloc;
1821
umfMemoryProviderAllocationMerge;
1922
umfMemoryProviderAllocationSplit;
@@ -32,14 +35,20 @@ UMF_1.0 {
3235
umfMemoryProviderPurgeForce;
3336
umfMemoryProviderPurgeLazy;
3437
umfMemoryProviderPutIPCHandle;
38+
umfMemoryTrackerGetAllocInfo;
3539
umfMempolicyCreate;
3640
umfMempolicyDestroy;
3741
umfMempolicySetCustomSplitPartitions;
3842
umfMempolicySetInterleavePartSize;
3943
umfMemspaceClone;
44+
umfMemspaceCreateFromNumaArray;
4045
umfMemspaceDestroy;
4146
umfMemspaceFilterByCapacity;
4247
umfMemspaceFilterById;
48+
umfMemspaceHighestBandwidthGet;
49+
umfMemspaceHighestCapacityGet;
50+
umfMemspaceHostAllGet;
51+
umfMemspaceLowestLatencyGet;
4352
umfMemspaceMemtargetAdd;
4453
umfMemspaceMemtargetGet;
4554
umfMemspaceMemtargetNum;
@@ -50,6 +59,7 @@ UMF_1.0 {
5059
umfMemtargetGetId;
5160
umfMemtargetGetType;
5261
umfOpenIPCHandle;
62+
umfOsMemoryProviderOps;
5363
umfPoolAlignedMalloc;
5464
umfPoolByPtr;
5565
umfPoolCalloc;
@@ -66,7 +76,6 @@ UMF_1.0 {
6676
umfProxyPoolOps;
6777
umfPutIPCHandle;
6878
umfScalablePoolOps;
69-
@UMF_OPTIONAL_SYMBOLS_LINUX@
7079
local:
7180
*;
7281
};

src/memspaces/memspace_highest_bandwidth.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@
1111
#include <ctype.h>
1212
#include <stdlib.h>
1313

14+
#include <umf.h>
15+
#include <umf/memspace.h>
16+
17+
// UMF_MEMSPACE_HIGHEST_BANDWIDTH requires HWLOC
18+
// Additionally, it is currently unsupported on Win
19+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
20+
21+
umf_const_memspace_handle_t umfMemspaceHighestBandwidthGet(void) {
22+
// not supported
23+
return NULL;
24+
}
25+
26+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
27+
1428
#include "base_alloc_global.h"
1529
#include "memspace_internal.h"
1630
#include "memtarget_numa.h"
@@ -100,3 +114,5 @@ umf_const_memspace_handle_t umfMemspaceHighestBandwidthGet(void) {
100114
umfMemspaceHighestBandwidthInit);
101115
return UMF_MEMSPACE_HIGHEST_BANDWIDTH;
102116
}
117+
118+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_highest_capacity.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@
1010
#include <assert.h>
1111
#include <stdlib.h>
1212

13+
#include <umf.h>
14+
#include <umf/memspace.h>
15+
16+
// UMF_MEMSPACE_HIGHEST_CAPACITY requires HWLOC
17+
// Additionally, it is currently unsupported on Win
18+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
19+
20+
umf_const_memspace_handle_t umfMemspaceHighestCapacityGet(void) {
21+
// not supported
22+
return NULL;
23+
}
24+
25+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
26+
1327
#include "base_alloc_global.h"
1428
#include "memspace_internal.h"
1529
#include "memtarget_numa.h"
@@ -72,3 +86,5 @@ umf_const_memspace_handle_t umfMemspaceHighestCapacityGet(void) {
7286
umfMemspaceHighestCapacityInit);
7387
return UMF_MEMSPACE_HIGHEST_CAPACITY;
7488
}
89+
90+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_host_all.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@
1010
#include <assert.h>
1111
#include <stdlib.h>
1212

13+
#include <umf.h>
14+
#include <umf/memspace.h>
15+
16+
// UMF_MEMSPACE_HOST_ALL requires HWLOC
17+
// Additionally, it is currently unsupported on Win
18+
19+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
20+
umf_const_memspace_handle_t umfMemspaceHostAllGet(void) {
21+
// not supported
22+
return NULL;
23+
}
24+
25+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
26+
1327
#include "base_alloc_global.h"
1428
#include "memspace_internal.h"
1529
#include "memtarget_numa.h"
@@ -93,3 +107,5 @@ umf_const_memspace_handle_t umfMemspaceHostAllGet(void) {
93107
utils_init_once(&UMF_MEMSPACE_HOST_ALL_INITIALIZED, umfMemspaceHostAllInit);
94108
return UMF_MEMSPACE_HOST_ALL;
95109
}
110+
111+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_lowest_latency.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@
1111
#include <ctype.h>
1212
#include <stdlib.h>
1313

14+
#include <umf.h>
15+
#include <umf/memspace.h>
16+
17+
// UMF_MEMSPACE_LOWEST_LATENCY requires HWLOC
18+
// Additionally, it is currently unsupported on Win
19+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
20+
21+
umf_const_memspace_handle_t umfMemspaceLowestLatencyGet(void) {
22+
// not supported
23+
return NULL;
24+
}
25+
26+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
27+
1428
#include "base_alloc_global.h"
1529
#include "memspace_internal.h"
1630
#include "memtarget_numa.h"
@@ -100,3 +114,5 @@ umf_const_memspace_handle_t umfMemspaceLowestLatencyGet(void) {
100114
umfMemspaceLowestLatencyInit);
101115
return UMF_MEMSPACE_LOWEST_LATENCY;
102116
}
117+
118+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_numa.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,24 @@
99

1010
#include <stdlib.h>
1111

12+
#include <umf.h>
13+
#include <umf/memspace.h>
14+
15+
// umfMemspaceCreateFromNumaArray requires HWLOC
16+
// Additionally, it is currently unsupported on Win
17+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
18+
umf_result_t umfMemspaceCreateFromNumaArray(unsigned *nodeIds, size_t numIds,
19+
umf_memspace_handle_t *hMemspace) {
20+
(void)nodeIds;
21+
(void)numIds;
22+
(void)hMemspace;
23+
24+
// not supported
25+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
26+
}
27+
28+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
29+
1230
#include "../memspace_internal.h"
1331
#include "../memtargets/memtarget_numa.h"
1432
#include "base_alloc_global.h"
@@ -57,3 +75,5 @@ umf_result_t umfMemspaceCreateFromNumaArray(unsigned *nodeIds, size_t numIds,
5775
umf_ba_global_free(memspace);
5876
return ret;
5977
}
78+
79+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

0 commit comments

Comments
 (0)