Skip to content

Commit 13e244e

Browse files
committed
remove optional symbols
1 parent 52152a1 commit 13e244e

11 files changed

+159
-67
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: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,13 @@ 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
113117
provider/provider_coarse.c
114118
provider/provider_tracking.c
119+
provider/provider_os_memory.c
115120
critnib/critnib.c
116121
ravl/ravl.c
117122
pool/pool_proxy.c
@@ -130,13 +135,8 @@ set(UMF_SOURCES_WINDOWS libumf_windows.c)
130135
set(UMF_SOURCES_COMMON_LINUX_MACOSX
131136
provider/provider_devdax_memory.c
132137
provider/provider_file_memory.c
133-
provider/provider_os_memory.c
134138
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)
139+
memspaces/memspace_numa.c)
140140

141141
if(NOT UMF_DISABLE_HWLOC)
142142
set(UMF_SOURCES_LINUX ${UMF_SOURCES_LINUX}
@@ -145,32 +145,26 @@ if(NOT UMF_DISABLE_HWLOC)
145145
set(UMF_SOURCES_MACOSX ${UMF_SOURCES_MACOSX}
146146
${UMF_SOURCES_COMMON_LINUX_MACOSX})
147147

148-
set(UMF_SOURCES_WINDOWS ${UMF_SOURCES_WINDOWS}
149-
provider/provider_os_memory.c)
150-
151148
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()
160149
endif()
161150

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}")
151+
# Add symbols for unsupported functions
152+
if(NOT UMF_BUILD_CUDA_PROVIDER)
153+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
154+
"UMF_NO_CUDA_PROVIDER=1")
155+
endif()
156+
if(NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)
157+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
158+
"UMF_NO_LEVEL_ZERO_PROVIDER=1")
159+
endif()
160+
if(UMF_DISABLE_HWLOC OR WINDOWS)
161+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
162+
"UMF_NO_DEVDAX_PROVIDER=1")
163+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
164+
"UMF_NO_FILE_PROVIDER=1")
166165
endif()
167166

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)
167+
set(UMF_SOURCES ${UMF_SOURCES} provider/provider_unsupported.c)
174168

175169
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
176170
${LIBHWLOC_LIBRARY_DIRS})
@@ -198,8 +192,8 @@ if(UMF_BUILD_SHARED_LIBRARY)
198192
TYPE SHARED
199193
SRCS ${UMF_SOURCES}
200194
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)
195+
LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.map
196+
WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.def)
203197
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
204198
"UMF_SHARED_LIBRARY")
205199
set_target_properties(
@@ -217,7 +211,7 @@ endif()
217211

218212
if(UMF_DISABLE_HWLOC)
219213
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
220-
UMF_NO_HWLOC=1)
214+
"UMF_NO_HWLOC=1")
221215
endif()
222216

223217
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: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@
1111
#include <ctype.h>
1212
#include <stdlib.h>
1313

14+
// UMF_MEMSPACE_HIGHEST_BANDWIDTH requires HWLOC
15+
// Additionally, it is currently unsupported on Win
16+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
17+
18+
umf_const_memspace_handle_t umfMemspaceHighestBandwidthGet(void) {
19+
// not supported
20+
return NULL;
21+
}
22+
23+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
24+
1425
#include "base_alloc_global.h"
1526
#include "memspace_internal.h"
1627
#include "memtarget_numa.h"
@@ -100,3 +111,5 @@ umf_const_memspace_handle_t umfMemspaceHighestBandwidthGet(void) {
100111
umfMemspaceHighestBandwidthInit);
101112
return UMF_MEMSPACE_HIGHEST_BANDWIDTH;
102113
}
114+
115+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_highest_capacity.c

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

13+
// UMF_MEMSPACE_HIGHEST_CAPACITY requires HWLOC
14+
// Additionally, it is currently unsupported on Win
15+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
16+
17+
umf_const_memspace_handle_t umfMemspaceHighestCapacityGet(void) {
18+
// not supported
19+
return NULL;
20+
}
21+
22+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
23+
1324
#include "base_alloc_global.h"
1425
#include "memspace_internal.h"
1526
#include "memtarget_numa.h"
@@ -72,3 +83,5 @@ umf_const_memspace_handle_t umfMemspaceHighestCapacityGet(void) {
7283
umfMemspaceHighestCapacityInit);
7384
return UMF_MEMSPACE_HIGHEST_CAPACITY;
7485
}
86+
87+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_host_all.c

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

13+
// UMF_MEMSPACE_HOST_ALL requires HWLOC
14+
// Additionally, it is currently unsupported on Win
15+
16+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
17+
umf_const_memspace_handle_t umfMemspaceHostAllGet(void) {
18+
// not supported
19+
return NULL;
20+
}
21+
22+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
23+
1324
#include "base_alloc_global.h"
1425
#include "memspace_internal.h"
1526
#include "memtarget_numa.h"
@@ -93,3 +104,5 @@ umf_const_memspace_handle_t umfMemspaceHostAllGet(void) {
93104
utils_init_once(&UMF_MEMSPACE_HOST_ALL_INITIALIZED, umfMemspaceHostAllInit);
94105
return UMF_MEMSPACE_HOST_ALL;
95106
}
107+
108+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_lowest_latency.c

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

14+
// UMF_MEMSPACE_LOWEST_LATENCY requires HWLOC
15+
// Additionally, it is currently unsupported on Win
16+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
17+
18+
umf_const_memspace_handle_t umfMemspaceLowestLatencyGet(void) {
19+
// not supported
20+
return NULL;
21+
}
22+
23+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
24+
1425
#include "base_alloc_global.h"
1526
#include "memspace_internal.h"
1627
#include "memtarget_numa.h"
@@ -100,3 +111,5 @@ umf_const_memspace_handle_t umfMemspaceLowestLatencyGet(void) {
100111
umfMemspaceLowestLatencyInit);
101112
return UMF_MEMSPACE_LOWEST_LATENCY;
102113
}
114+
115+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

src/memspaces/memspace_numa.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@
88
*/
99

1010
#include <stdlib.h>
11+
#include <umf.h>
12+
13+
// umfMemspaceCreateFromNumaArray requires HWLOC
14+
// Additionally, it is currently unsupported on Win
15+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
16+
umf_result_t umfMemspaceCreateFromNumaArray(unsigned *nodeIds, size_t numIds,
17+
umf_memspace_handle_t *hMemspace) {
18+
// not supported
19+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
20+
}
21+
22+
#else // !defined(_WIN32) && !defined(UMF_NO_HWLOC)
1123

1224
#include "../memspace_internal.h"
1325
#include "../memtargets/memtarget_numa.h"
@@ -57,3 +69,5 @@ umf_result_t umfMemspaceCreateFromNumaArray(unsigned *nodeIds, size_t numIds,
5769
umf_ba_global_free(memspace);
5870
return ret;
5971
}
72+
73+
#endif // !defined(_WIN32) && !defined(UMF_NO_HWLOC)

0 commit comments

Comments
 (0)