SWDEV-273235 - Correct linker export file usage

CMake doesn't handle linker export files in a general way well. On
Windows it is able to recognize a .def file and pass it to the linker.
Unfortunately it cannot do the same thing on Linux, so we have to
manually specify it.

Note that CMake can't recognize the current Windows export file due to
the .in suffix, hence why the amdocl.def file is being added. The
amdocl.def.in file will be removed later, as the Makefile build still
uses it.

Change-Id: I33a4151af0257d56d46cd27cbd028b34b77b706b


[ROCm/clr commit: 75b232eea2]
Este commit está contenido en:
Vladislav Sytchenko
2021-05-31 19:28:19 -04:00
padre 41a101bd58
commit 208c198d71
Se han modificado 3 ficheros con 127 adiciones y 0 borrados
+1
Ver fichero
@@ -97,6 +97,7 @@ if(BUILD_SHARED_LIBS)
if(WIN32)
target_sources(amdocl PRIVATE amdocl.def)
else()
target_link_options(amdocl PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/amdocl.map")
set_target_properties(amdocl PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/amdocl.map")
endif()
endif()
+125
Ver fichero
@@ -0,0 +1,125 @@
EXPORTS
clBuildProgram
clCreateBuffer
clCreateCommandQueue
clCreateContext
clCreateContextFromType
clCreateFromGLBuffer
clCreateFromGLRenderbuffer
clCreateFromGLTexture2D
clCreateFromGLTexture3D
clCreateImage2D
clCreateImage3D
clCreateKernel
clCreateKernelsInProgram
clCreateProgramWithBinary
clCreateProgramWithSource
clCreateSampler
clEnqueueAcquireGLObjects
clEnqueueBarrier
clEnqueueCopyBuffer
clEnqueueCopyBufferToImage
clEnqueueCopyImage
clEnqueueCopyImageToBuffer
clEnqueueMapBuffer
clEnqueueMapImage
clEnqueueMarker
clEnqueueNDRangeKernel
clEnqueueNativeKernel
clEnqueueReadBuffer
clEnqueueReadImage
clEnqueueReleaseGLObjects
clEnqueueTask
clEnqueueUnmapMemObject
clEnqueueWaitForEvents
clEnqueueWriteBuffer
clEnqueueWriteImage
clFinish
clFlush
clGetCommandQueueInfo
clGetContextInfo
clGetDeviceIDs
clGetDeviceInfo
clGetEventInfo
clGetEventProfilingInfo
clGetExtensionFunctionAddress
clGetGLObjectInfo
clGetGLTextureInfo
clGetImageInfo
clGetKernelInfo
clGetKernelWorkGroupInfo
clGetMemObjectInfo
clGetPlatformIDs
clGetPlatformInfo
clGetProgramBuildInfo
clGetProgramInfo
clGetSamplerInfo
clGetSupportedImageFormats
clReleaseCommandQueue
clReleaseContext
clReleaseEvent
clReleaseKernel
clReleaseMemObject
clReleaseProgram
clReleaseSampler
clRetainCommandQueue
clRetainContext
clRetainEvent
clRetainKernel
clRetainMemObject
clRetainProgram
clRetainSampler
clSetCommandQueueProperty
clSetKernelArg
clUnloadCompiler
clWaitForEvents
clIcdGetPlatformIDsKHR
clCreateUserEvent
clSetUserEventStatus
clSetEventCallback
clSetMemObjectDestructorCallback
clCreateSubBuffer
clEnqueueReadBufferRect
clEnqueueWriteBufferRect
clEnqueueCopyBufferRect
clCompileProgram
clCreateFromGLTexture
clCreateImage
clCreateProgramWithBuiltInKernels
clCreateSubDevices
clEnqueueBarrierWithWaitList
clEnqueueFillBuffer
clEnqueueFillImage
clEnqueueMarkerWithWaitList
clEnqueueMigrateMemObjects
clGetExtensionFunctionAddressForPlatform
clGetKernelArgInfo
clLinkProgram
clReleaseDevice
clRetainDevice
clUnloadPlatformCompiler
clCreateCommandQueueWithProperties
clCreateSamplerWithProperties
clCreatePipe
clGetPipeInfo
clSVMAlloc
clSVMFree
clSetKernelArgSVMPointer
clSetKernelExecInfo
clEnqueueSVMFree
clEnqueueSVMMemcpy
clEnqueueSVMMemFill
clEnqueueSVMMap
clEnqueueSVMUnmap
clCloneKernel
clCreateProgramWithIL
clEnqueueSVMMigrateMem
clGetDeviceAndHostTimer
clGetHostTimer
clGetKernelSubGroupInfo
clSetDefaultDeviceCommandQueue
clCreateProgramWithIL
@@ -3,6 +3,7 @@ add_library(cltrace SHARED cltrace.cpp)
if(WIN32)
target_sources(cltrace PRIVATE cltrace.def)
else()
target_link_options(cltrace PRIVATE "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/cltrace.map")
set_target_properties(cltrace PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/cltrace.map")
endif()