@@ -31,11 +31,17 @@ function cmake_os(p::AbstractPlatform)
31
31
end
32
32
end
33
33
34
- lld_str (p:: AbstractPlatform ) = Sys. isapple (p) ? " ld64.lld" : " ld.lld"
35
- function linker_string (p:: AbstractPlatform , clang_use_lld)
34
+ lld_string (p:: AbstractPlatform ) = Sys. isapple (p) ? " ld64.lld" : " ld.lld"
35
+ function linker_string (bt :: CMake{:gcc} , p:: AbstractPlatform , clang_use_lld)
36
36
target = triplet (p)
37
37
aatarget = aatriplet (p)
38
- return clang_use_lld ? " /opt/bin/$(target) /$(lld_str (p)) " : " /opt/bin/$(target) /$(aatarget) -ld"
38
+ return " /opt/bin/$(target) /$(aatarget) -ld"
39
+ end
40
+
41
+ function linker_string (bt:: CMake{:clang} , p:: AbstractPlatform , clang_use_lld)
42
+ target = triplet (p)
43
+ aatarget = aatriplet (p)
44
+ return clang_use_lld ? " /opt/bin/$(target) /$(lld_string (p)) " : " /opt/bin/$(target) /$(aatarget) -ld"
39
45
end
40
46
41
47
function toolchain_file (bt:: CMake , p:: AbstractPlatform , host_platform:: AbstractPlatform ; is_host:: Bool = false , clang_use_lld:: Bool = false )
@@ -95,7 +101,7 @@ function toolchain_file(bt::CMake, p::AbstractPlatform, host_platform::AbstractP
95
101
set(CMAKE_CXX_COMPILER /opt/bin/$(target) /$(aatarget) -$(cxx_compiler (bt)) )
96
102
set(CMAKE_Fortran_COMPILER /opt/bin/$(target) /$(aatarget) -$(fortran_compiler (bt)) )
97
103
98
- set(CMAKE_LINKER $(linker_string (p, clang_use_lld)) )
104
+ set(CMAKE_LINKER $(linker_string (bt, p, clang_use_lld)) )
99
105
set(CMAKE_OBJCOPY /opt/bin/$(target) /$(aatarget) -objcopy)
100
106
101
107
set(CMAKE_AR /opt/bin/$(target) /$(aatarget) -ar)
@@ -167,6 +173,18 @@ function meson_cpu_family(p::AbstractPlatform)
167
173
end
168
174
end
169
175
176
+ function linker_string (bt:: Meson{:gcc} , p:: AbstractPlatform , clang_use_lld)
177
+ target = triplet (p)
178
+ aatarget = aatriplet (p)
179
+ return " bfd"
180
+ end
181
+
182
+ function linker_string (bt:: Meson{:clang} , p:: AbstractPlatform , clang_use_lld)
183
+ target = triplet (p)
184
+ aatarget = aatriplet (p)
185
+ return clang_use_lld ? " /opt/bin/$(target) /$(lld_string (p)) " : " /opt/bin/$(target) /$(aatarget) -ld"
186
+ end
187
+
170
188
function toolchain_file (bt:: Meson , p:: AbstractPlatform , envs:: Dict{String,String} ;
171
189
is_host:: Bool = false , clang_use_lld:: Bool = false )
172
190
target = triplet (p)
@@ -179,9 +197,9 @@ function toolchain_file(bt::Meson, p::AbstractPlatform, envs::Dict{String,String
179
197
fortran = '/opt/bin/$(target) /$(aatarget) -$(fortran_compiler (bt)) '
180
198
objc = '/opt/bin/$(target) /$(aatarget) -cc'
181
199
ar = '/opt/bin/$(target) /$(aatarget) -ar'
182
- ld = '$(linker_string (p, clang_use_lld)) '
183
- cpp_ld = '$(linker_string (p, clang_use_lld)) '
184
- c_ld = '$(linker_string (p, clang_use_lld)) '
200
+ ld = '$(linker_string (bt, p, clang_use_lld)) '
201
+ cpp_ld = '$(linker_string (bt, p, clang_use_lld)) '
202
+ c_ld = '$(linker_string (bt, p, clang_use_lld)) '
185
203
nm = '/opt/bin/$(target) /$(aatarget) -nm'
186
204
strip = '/opt/bin/$(target) /$(aatarget) -strip'
187
205
pkgconfig = '/usr/bin/pkg-config'
0 commit comments