Skip to content

Commit 4b7cf61

Browse files
committed
remove optional symbols
1 parent 9fc6aa3 commit 4b7cf61

File tree

7 files changed

+116
-54
lines changed

7 files changed

+116
-54
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: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -149,28 +149,29 @@ 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+
if(UMF_DISABLE_HWLOC OR WINDOWS)
155+
set(UMF_SOURCES ${UMF_SOURCES} memspaces/memspace_unsupported.c)
166156
endif()
167157

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)
158+
# Add symbols for unsupported functions
159+
if(NOT UMF_BUILD_CUDA_PROVIDER)
160+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
161+
"UMF_NO_CUDA_PROVIDER=1")
162+
endif()
163+
if(NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)
164+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
165+
"UMF_NO_LEVEL_ZERO_PROVIDER=1")
166+
endif()
167+
if(UMF_DISABLE_HWLOC OR WINDOWS)
168+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
169+
"UMF_NO_DEVDAX_PROVIDER=1")
170+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
171+
"UMF_NO_FILE_PROVIDER=1")
172+
endif()
171173

172-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.map.in"
173-
"${CMAKE_CURRENT_BINARY_DIR}/libumf.map" @ONLY)
174+
set(UMF_SOURCES ${UMF_SOURCES} provider/provider_unsupported.c)
174175

175176
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
176177
${LIBHWLOC_LIBRARY_DIRS})
@@ -217,7 +218,7 @@ endif()
217218

218219
if(UMF_DISABLE_HWLOC)
219220
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
220-
UMF_NO_HWLOC=1)
221+
"UMF_NO_HWLOC=1")
221222
endif()
222223

223224
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_unsupported.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
*
3+
* Copyright (C) 2024 Intel Corporation
4+
*
5+
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
6+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
*
8+
*/
9+
10+
#include <umf.h>
11+
#include <umf/memspace.h>
12+
13+
umf_result_t umfMemspaceCreateFromNumaArray(unsigned *nodeIds, size_t numIds,
14+
umf_memspace_handle_t *hMemspace) {
15+
(void)nodeIds;
16+
(void)numIds;
17+
(void)hMemspace;
18+
19+
return UMF_RESULT_ERROR_NOT_SUPPORTED;
20+
}
21+
22+
umf_const_memspace_handle_t umfMemspaceHostAllGet(void) {
23+
// not supported
24+
return NULL;
25+
}
26+
27+
umf_const_memspace_handle_t umfMemspaceHighestCapacityGet(void) {
28+
// not supported
29+
return NULL;
30+
}
31+
32+
umf_const_memspace_handle_t umfMemspaceHighestBandwidthGet(void) {
33+
// not supported
34+
return NULL;
35+
}
36+
37+
umf_const_memspace_handle_t umfMemspaceLowestLatencyGet(void) {
38+
// not supported
39+
return NULL;
40+
}

src/provider/provider_unsupported.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
*
3+
* Copyright (C) 2024 Intel Corporation
4+
*
5+
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
6+
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
*
8+
*/
9+
10+
#include <umf.h>
11+
#include <umf/memory_provider.h>
12+
13+
#if defined(UMF_NO_HWLOC)
14+
umf_memory_provider_ops_t *umfOsMemoryProviderOps(void) {
15+
// not supported
16+
return NULL;
17+
}
18+
19+
#endif
20+
21+
#if defined(UMF_NO_CUDA_PROVIDER)
22+
umf_memory_provider_ops_t *umfCUDAMemoryProviderOps(void) {
23+
// not supported
24+
return NULL;
25+
}
26+
#endif
27+
28+
#if defined(UMF_NO_LEVEL_ZERO_PROVIDER)
29+
umf_memory_provider_ops_t *umfLevelZeroMemoryProviderOps(void) {
30+
// not supported
31+
return NULL;
32+
}
33+
#endif
34+
35+
#if defined(_WIN32) || defined(UMF_NO_HWLOC)
36+
umf_memory_provider_ops_t *umfDevDaxMemoryProviderOps(void) {
37+
// not supported
38+
return NULL;
39+
}
40+
41+
umf_memory_provider_ops_t *umfFileMemoryProviderOps(void) {
42+
// not supported
43+
return NULL;
44+
}
45+
#endif

0 commit comments

Comments
 (0)