Skip to content

Commit f24e8e2

Browse files
bratpiorkalukaszstolarczuk
authored andcommitted
remove optional symbols
1 parent fa006ee commit f24e8e2

15 files changed

+204
-107
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: 33 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -110,69 +110,52 @@ 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
118+
provider/provider_cuda.c
119+
provider/provider_devdax_memory.c
120+
provider/provider_file_memory.c
121+
provider/provider_level_zero.c
122+
provider/provider_os_memory.c
113123
provider/provider_tracking.c
114124
critnib/critnib.c
115125
ravl/ravl.c
116126
pool/pool_proxy.c
117127
pool/pool_scalable.c)
118128

119129
if(NOT UMF_DISABLE_HWLOC)
120-
set(UMF_SOURCES ${UMF_SOURCES} ${HWLOC_DEPENDENT_SOURCES})
130+
set(UMF_SOURCES ${UMF_SOURCES} ${HWLOC_DEPENDENT_SOURCES}
131+
memtargets/memtarget_numa.c)
132+
set(UMF_LIBS ${UMF_LIBS} ${LIBHWLOC_LIBRARIES})
133+
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
134+
${LIBHWLOC_LIBRARY_DIRS})
135+
else()
136+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
137+
"UMF_NO_HWLOC=1")
121138
endif()
122139

123140
set(UMF_SOURCES_LINUX libumf_linux.c)
124-
125141
set(UMF_SOURCES_MACOSX libumf_linux.c)
126-
127142
set(UMF_SOURCES_WINDOWS libumf_windows.c)
128143

129-
set(UMF_SOURCES_COMMON_LINUX_MACOSX
130-
provider/provider_devdax_memory.c
131-
provider/provider_file_memory.c
132-
provider/provider_os_memory.c
133-
memtargets/memtarget_numa.c
134-
memspaces/memspace_numa.c
135-
memspaces/memspace_host_all.c
136-
memspaces/memspace_highest_capacity.c
137-
memspaces/memspace_highest_bandwidth.c
138-
memspaces/memspace_lowest_latency.c)
139-
140-
if(NOT UMF_DISABLE_HWLOC)
141-
set(UMF_SOURCES_LINUX ${UMF_SOURCES_LINUX}
142-
${UMF_SOURCES_COMMON_LINUX_MACOSX})
143-
144-
set(UMF_SOURCES_MACOSX ${UMF_SOURCES_MACOSX}
145-
${UMF_SOURCES_COMMON_LINUX_MACOSX})
146-
147-
set(UMF_SOURCES_WINDOWS ${UMF_SOURCES_WINDOWS}
148-
provider/provider_os_memory.c)
149-
150-
set(UMF_LIBS ${UMF_LIBS} ${LIBHWLOC_LIBRARIES})
151-
152-
if(NOT WINDOWS)
153-
add_optional_symbol(umfMemspaceCreateFromNumaArray)
154-
add_optional_symbol(umfMemspaceHighestBandwidthGet)
155-
add_optional_symbol(umfMemspaceHighestCapacityGet)
156-
add_optional_symbol(umfMemspaceHostAllGet)
157-
add_optional_symbol(umfMemspaceLowestLatencyGet)
158-
endif()
144+
# Add compile definitions to handle unsupported functions
145+
if(NOT UMF_BUILD_CUDA_PROVIDER)
146+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
147+
"UMF_NO_CUDA_PROVIDER=1")
159148
endif()
160-
161-
if(WINDOWS)
162-
message(STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_WINDOWS}")
163-
else()
164-
message(STATUS "UMF_OPTIONAL_SYMBOLS: ${UMF_OPTIONAL_SYMBOLS_LINUX}")
149+
if(NOT UMF_BUILD_LEVEL_ZERO_PROVIDER)
150+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
151+
"UMF_NO_LEVEL_ZERO_PROVIDER=1")
152+
endif()
153+
if(UMF_DISABLE_HWLOC OR WINDOWS)
154+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
155+
"UMF_NO_DEVDAX_PROVIDER=1")
156+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
157+
"UMF_NO_FILE_PROVIDER=1")
165158
endif()
166-
167-
# Configure map/def files with optional symbols
168-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.def.in"
169-
"${CMAKE_CURRENT_BINARY_DIR}/libumf.def" @ONLY)
170-
171-
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libumf.map.in"
172-
"${CMAKE_CURRENT_BINARY_DIR}/libumf.map" @ONLY)
173-
174-
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
175-
${LIBHWLOC_LIBRARY_DIRS})
176159

177160
if(LINUX)
178161
set(UMF_SOURCES ${UMF_SOURCES} ${UMF_SOURCES_LINUX})
@@ -197,8 +180,8 @@ if(UMF_BUILD_SHARED_LIBRARY)
197180
TYPE SHARED
198181
SRCS ${UMF_SOURCES}
199182
LIBS ${UMF_LIBS} ${HWLOC_LIB}
200-
LINUX_MAP_FILE ${CMAKE_CURRENT_BINARY_DIR}/libumf.map
201-
WINDOWS_DEF_FILE ${CMAKE_CURRENT_BINARY_DIR}/libumf.def)
183+
LINUX_MAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.map
184+
WINDOWS_DEF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libumf.def)
202185
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
203186
"UMF_SHARED_LIBRARY")
204187
set_target_properties(
@@ -214,11 +197,6 @@ else()
214197
LIBS ${UMF_LIBS})
215198
endif()
216199

217-
if(UMF_DISABLE_HWLOC)
218-
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
219-
UMF_NO_HWLOC=1)
220-
endif()
221-
222200
if(UMF_LINK_HWLOC_STATICALLY)
223201
add_dependencies(umf ${UMF_HWLOC_NAME})
224202
endif()
@@ -228,8 +206,6 @@ target_link_directories(umf PRIVATE ${UMF_PRIVATE_LIBRARY_DIRS})
228206
target_compile_definitions(umf PRIVATE ${UMF_COMMON_COMPILE_DEFINITIONS})
229207

230208
if(UMF_BUILD_LEVEL_ZERO_PROVIDER)
231-
target_sources(umf PRIVATE provider/provider_level_zero.c)
232-
233209
if(LINUX)
234210
# WA for error ze_api.h:14234:20: no newline at end of file
235211
# [-Werror,-Wnewline-eof]
@@ -243,7 +219,6 @@ if(UMF_BUILD_LEVEL_ZERO_PROVIDER)
243219
endif()
244220

245221
if(UMF_BUILD_CUDA_PROVIDER)
246-
target_sources(umf PRIVATE provider/provider_cuda.c)
247222
set(UMF_COMPILE_DEFINITIONS ${UMF_COMPILE_DEFINITIONS}
248223
"UMF_BUILD_CUDA_PROVIDER=1")
249224
endif()

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@ EXPORTS
1414
umfTearDown
1515
umfGetCurrentVersion
1616
umfCloseIPCHandle
17+
umfCUDAMemoryProviderOps
18+
umfDevDaxMemoryProviderOps
1719
umfFree
20+
umfFileMemoryProviderOps
1821
umfGetIPCHandle
1922
umfGetLastFailedMemoryProvider
20-
umfMemoryTrackerGetAllocInfo
23+
umfLevelZeroMemoryProviderOps
2124
umfMemoryProviderAlloc
2225
umfMemoryProviderAllocationMerge
2326
umfMemoryProviderAllocationSplit
@@ -36,14 +39,20 @@ EXPORTS
3639
umfMemoryProviderPurgeForce
3740
umfMemoryProviderPurgeLazy
3841
umfMemoryProviderPutIPCHandle
42+
umfMemoryTrackerGetAllocInfo
3943
umfMempolicyCreate
4044
umfMempolicyDestroy
4145
umfMempolicySetCustomSplitPartitions
4246
umfMempolicySetInterleavePartSize
4347
umfMemspaceClone
48+
umfMemspaceCreateFromNumaArray
4449
umfMemspaceDestroy
4550
umfMemspaceFilterByCapacity
4651
umfMemspaceFilterById
52+
umfMemspaceHighestBandwidthGet
53+
umfMemspaceHighestCapacityGet
54+
umfMemspaceHostAllGet
55+
umfMemspaceLowestLatencyGet
4756
umfMemspaceMemtargetAdd
4857
umfMemspaceMemtargetGet
4958
umfMemspaceMemtargetNum
@@ -53,7 +62,8 @@ EXPORTS
5362
umfMemtargetGetCapacity
5463
umfMemtargetGetId
5564
umfMemtargetGetType
56-
umfOpenIPCHandle
65+
umfOpenIPCHandle
66+
umfOsMemoryProviderOps
5767
umfPoolAlignedMalloc
5868
umfPoolByPtr
5969
umfPoolCalloc
@@ -70,4 +80,3 @@ EXPORTS
7080
umfProxyPoolOps
7181
umfPutIPCHandle
7282
umfScalablePoolOps
73-
@UMF_OPTIONAL_SYMBOLS_WINDOWS@

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ UMF_1.0 {
88
umfTearDown;
99
umfGetCurrentVersion;
1010
umfCloseIPCHandle;
11+
umfCUDAMemoryProviderOps;
12+
umfDevDaxMemoryProviderOps;
1113
umfFree;
14+
umfFileMemoryProviderOps;
1215
umfGetIPCHandle;
1316
umfGetLastFailedMemoryProvider;
14-
umfMemoryTrackerGetAllocInfo;
17+
umfLevelZeroMemoryProviderOps;
1518
umfMemoryProviderAlloc;
1619
umfMemoryProviderAllocationMerge;
1720
umfMemoryProviderAllocationSplit;
@@ -30,6 +33,7 @@ UMF_1.0 {
3033
umfMemoryProviderPurgeForce;
3134
umfMemoryProviderPurgeLazy;
3235
umfMemoryProviderPutIPCHandle;
36+
umfMemoryTrackerGetAllocInfo;
3337
umfMempolicyCreate;
3438
umfMempolicyDestroy;
3539
umfMempolicySetCustomSplitPartitions;
@@ -39,6 +43,10 @@ UMF_1.0 {
3943
umfMemspaceDestroy;
4044
umfMemspaceFilterByCapacity;
4145
umfMemspaceFilterById;
46+
umfMemspaceHighestBandwidthGet;
47+
umfMemspaceHighestCapacityGet;
48+
umfMemspaceHostAllGet;
49+
umfMemspaceLowestLatencyGet;
4250
umfMemspaceMemtargetAdd;
4351
umfMemspaceMemtargetGet;
4452
umfMemspaceMemtargetNum;
@@ -49,6 +57,7 @@ UMF_1.0 {
4957
umfMemtargetGetId;
5058
umfMemtargetGetType;
5159
umfOpenIPCHandle;
60+
umfOsMemoryProviderOps;
5261
umfPoolAlignedMalloc;
5362
umfPoolByPtr;
5463
umfPoolCalloc;
@@ -65,7 +74,6 @@ UMF_1.0 {
6574
umfProxyPoolOps;
6675
umfPutIPCHandle;
6776
umfScalablePoolOps;
68-
@UMF_OPTIONAL_SYMBOLS_LINUX@
6977
local:
7078
*;
7179
};

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)

0 commit comments

Comments
 (0)