Skip to content

Commit 2b803c8

Browse files
committed
remove optional symbols
1 parent 9fc6aa3 commit 2b803c8

11 files changed

+146
-62
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: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ 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
115119
critnib/critnib.c
@@ -132,11 +136,7 @@ set(UMF_SOURCES_COMMON_LINUX_MACOSX
132136
provider/provider_file_memory.c
133137
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}
@@ -149,28 +149,25 @@ if(NOT UMF_DISABLE_HWLOC)
149149
provider/provider_os_memory.c)
150150

151151
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()
160152
endif()
161153

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

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

175172
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
176173
${LIBHWLOC_LIBRARY_DIRS})
@@ -198,8 +195,8 @@ if(UMF_BUILD_SHARED_LIBRARY)
198195
TYPE SHARED
199196
SRCS ${UMF_SOURCES}
200197
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)
198+
LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.map
199+
WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.def)
203200
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
204201
"UMF_SHARED_LIBRARY")
205202
set_target_properties(
@@ -217,7 +214,7 @@ endif()
217214

218215
if(UMF_DISABLE_HWLOC)
219216
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
220-
UMF_NO_HWLOC=1)
217+
"UMF_NO_HWLOC=1")
221218
endif()
222219

223220
if(UMF_LINK_HWLOC_STATICALLY)

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ EXPORTS
1919
umfFree
2020
umfGetIPCHandle
2121
umfGetLastFailedMemoryProvider
22-
umfMemoryTrackerGetAllocInfo
2322
umfMemoryProviderAlloc
2423
umfMemoryProviderAllocationMerge
2524
umfMemoryProviderAllocationSplit
@@ -38,14 +37,20 @@ EXPORTS
3837
umfMemoryProviderPurgeForce
3938
umfMemoryProviderPurgeLazy
4039
umfMemoryProviderPutIPCHandle
40+
umfMemoryTrackerGetAllocInfo
4141
umfMempolicyCreate
4242
umfMempolicyDestroy
4343
umfMempolicySetCustomSplitPartitions
4444
umfMempolicySetInterleavePartSize
4545
umfMemspaceClone
46+
umfMemspaceCreateFromNumaArray
4647
umfMemspaceDestroy
4748
umfMemspaceFilterByCapacity
4849
umfMemspaceFilterById
50+
umfMemspaceHighestBandwidthGet
51+
umfMemspaceHighestCapacityGet
52+
umfMemspaceHostAllGet
53+
umfMemspaceLowestLatencyGet
4954
umfMemspaceMemtargetAdd
5055
umfMemspaceMemtargetGet
5156
umfMemspaceMemtargetNum
@@ -72,4 +77,3 @@ EXPORTS
7277
umfProxyPoolOps
7378
umfPutIPCHandle
7479
umfScalablePoolOps
75-
@UMF_OPTIONAL_SYMBOLS_WINDOWS@

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ UMF_1.0 {
1313
umfFree;
1414
umfGetIPCHandle;
1515
umfGetLastFailedMemoryProvider;
16-
umfMemoryTrackerGetAllocInfo;
1716
umfMemoryProviderAlloc;
1817
umfMemoryProviderAllocationMerge;
1918
umfMemoryProviderAllocationSplit;
@@ -32,14 +31,20 @@ UMF_1.0 {
3231
umfMemoryProviderPurgeForce;
3332
umfMemoryProviderPurgeLazy;
3433
umfMemoryProviderPutIPCHandle;
34+
umfMemoryTrackerGetAllocInfo;
3535
umfMempolicyCreate;
3636
umfMempolicyDestroy;
3737
umfMempolicySetCustomSplitPartitions;
3838
umfMempolicySetInterleavePartSize;
3939
umfMemspaceClone;
40+
umfMemspaceCreateFromNumaArray;
4041
umfMemspaceDestroy;
4142
umfMemspaceFilterByCapacity;
4243
umfMemspaceFilterById;
44+
umfMemspaceHighestBandwidthGet;
45+
umfMemspaceHighestCapacityGet;
46+
umfMemspaceHostAllGet;
47+
umfMemspaceLowestLatencyGet;
4348
umfMemspaceMemtargetAdd;
4449
umfMemspaceMemtargetGet;
4550
umfMemspaceMemtargetNum;
@@ -66,7 +71,6 @@ UMF_1.0 {
6671
umfProxyPoolOps;
6772
umfPutIPCHandle;
6873
umfScalablePoolOps;
69-
@UMF_OPTIONAL_SYMBOLS_LINUX@
7074
local:
7175
*;
7276
};

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)