tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
llvmPackages_rocm -> rocmPackages.llvm
Madoura
2 years ago
12e7fc69
41ab6719
+807
-685
30 changed files
expand all
collapse all
unified
split
pkgs
development
compilers
llvm
rocm
0000-fix-openmp.patch
default.nix
rocm-modules
5
default.nix
llvm
base.nix
default.nix
stage-1
clang-unwrapped.nix
lld.nix
llvm.nix
runtimes.nix
stage-2
1000-libcxx-failing-tests.list
bintools-unwrapped.nix
compiler-rt.nix
libc.nix
libcxx.nix
libcxxabi.nix
libunwind.nix
rstdenv.nix
stage-3
clang-tools-extra.nix
clang.nix
flang.nix
libclc.nix
lldb.nix
mlir.nix
openmp.nix
polly.nix
pstl.nix
update.nix
test
default.nix
top-level
all-packages.nix
python-packages.nix
-18
pkgs/development/compilers/llvm/rocm/0000-fix-openmp.patch
···
1
1
-
diff --git a/libomptarget/plugins/amdgpu/impl/impl.cpp b/libomptarget/plugins/amdgpu/impl/impl.cpp
2
2
-
index 80e024789..3a14e0889 100644
3
3
-
--- a/libomptarget/plugins/amdgpu/impl/impl.cpp
4
4
-
+++ b/libomptarget/plugins/amdgpu/impl/impl.cpp
5
5
-
@@ -21,10 +21,11 @@ bool is_locked(void *ptr, hsa_status_t *err_p, void **agentBaseAddress) {
6
6
-
info.size = sizeof(hsa_amd_pointer_info_t);
7
7
-
err = hsa_amd_pointer_info(ptr, &info, nullptr, nullptr, nullptr);
8
8
-
9
9
-
- if (err != HSA_STATUS_SUCCESS)
10
10
-
+ if (err != HSA_STATUS_SUCCESS) {
11
11
-
DP("Error when getting pointer info\n");
12
12
-
- else
13
13
-
+ } else {
14
14
-
is_locked = (info.type == HSA_EXT_POINTER_TYPE_LOCKED);
15
15
-
+ }
16
16
-
17
17
-
if (is_locked && agentBaseAddress != nullptr) {
18
18
-
// When user passes in a basePtr+offset we need to fix the
pkgs/development/compilers/llvm/rocm/1000-libcxx-failing-tests.list
pkgs/development/rocm-modules/5/llvm/stage-2/1000-libcxx-failing-tests.list
-644
pkgs/development/compilers/llvm/rocm/default.nix
···
1
1
-
{ lib
2
2
-
, stdenv
3
3
-
, callPackage
4
4
-
, overrideCC
5
5
-
, wrapCCWith
6
6
-
, wrapBintoolsWith
7
7
-
, runCommand
8
8
-
, lit
9
9
-
, glibc
10
10
-
, spirv-llvm-translator
11
11
-
, xz
12
12
-
, swig
13
13
-
, lua5_3
14
14
-
, gtest
15
15
-
, hip
16
16
-
, rocm-comgr
17
17
-
, vulkan-loader
18
18
-
, vulkan-headers
19
19
-
, glslang
20
20
-
, shaderc
21
21
-
, perl
22
22
-
, rocm-device-libs
23
23
-
, rocm-runtime
24
24
-
, elfutils
25
25
-
, graphviz
26
26
-
, python3Packages
27
27
-
}:
28
28
-
29
29
-
let
30
30
-
# Stage 1
31
31
-
# Base
32
32
-
llvm = callPackage ./llvm.nix {
33
33
-
requiredSystemFeatures = [ "big-parallel" ];
34
34
-
isBroken = stdenv.isAarch64; # https://github.com/RadeonOpenCompute/ROCm/issues/1831#issuecomment-1278205344
35
35
-
};
36
36
-
37
37
-
# Projects
38
38
-
clang-unwrapped = callPackage ./llvm.nix rec {
39
39
-
targetName = "clang";
40
40
-
targetDir = targetName;
41
41
-
extraBuildInputs = [ llvm ];
42
42
-
43
43
-
extraCMakeFlags = [
44
44
-
"-DCLANG_INCLUDE_DOCS=ON"
45
45
-
"-DCLANG_INCLUDE_TESTS=ON"
46
46
-
];
47
47
-
48
48
-
extraPostPatch = ''
49
49
-
# Looks like they forgot to add finding libedit to the standalone build
50
50
-
ln -s ../cmake/Modules/FindLibEdit.cmake cmake/modules
51
51
-
52
52
-
substituteInPlace CMakeLists.txt \
53
53
-
--replace "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)"
54
54
-
55
55
-
# `No such file or directory: '/build/source/clang/tools/scan-build/bin/scan-build'`
56
56
-
rm test/Analysis/scan-build/*.test
57
57
-
rm test/Analysis/scan-build/rebuild_index/rebuild_index.test
58
58
-
59
59
-
# `does not depend on a module exporting 'baz.h'`
60
60
-
rm test/Modules/header-attribs.cpp
61
61
-
62
62
-
# We do not have HIP or the ROCm stack available yet
63
63
-
rm test/Driver/hip-options.hip
64
64
-
65
65
-
# ???? `ld: cannot find crti.o: No such file or directory` linker issue?
66
66
-
rm test/Interpreter/dynamic-library.cpp
67
67
-
68
68
-
# `fatal error: 'stdio.h' file not found`
69
69
-
rm test/OpenMP/amdgcn_emit_llvm.c
70
70
-
'';
71
71
-
72
72
-
extraPostInstall = ''
73
73
-
mv bin/clang-tblgen $out/bin
74
74
-
'';
75
75
-
76
76
-
requiredSystemFeatures = [ "big-parallel" ];
77
77
-
};
78
78
-
79
79
-
lld = callPackage ./llvm.nix rec {
80
80
-
buildMan = false; # No man pages to build
81
81
-
targetName = "lld";
82
82
-
targetDir = targetName;
83
83
-
extraBuildInputs = [ llvm ];
84
84
-
checkTargets = [ "check-${targetName}" ];
85
85
-
};
86
86
-
87
87
-
# Runtimes
88
88
-
runtimes = callPackage ./llvm.nix rec {
89
89
-
buildDocs = false;
90
90
-
buildMan = false;
91
91
-
buildTests = false;
92
92
-
targetName = "runtimes";
93
93
-
targetDir = targetName;
94
94
-
95
95
-
targetRuntimes = [
96
96
-
"libunwind"
97
97
-
"libcxxabi"
98
98
-
"libcxx"
99
99
-
"compiler-rt"
100
100
-
];
101
101
-
102
102
-
extraBuildInputs = [ llvm ];
103
103
-
104
104
-
extraCMakeFlags = [
105
105
-
"-DLIBCXX_INCLUDE_BENCHMARKS=OFF"
106
106
-
"-DLIBCXX_CXX_ABI=libcxxabi"
107
107
-
];
108
108
-
109
109
-
extraLicenses = [ lib.licenses.mit ];
110
110
-
};
111
111
-
112
112
-
# Stage 2
113
113
-
# Helpers
114
114
-
rStdenv = overrideCC stdenv (wrapCCWith rec {
115
115
-
inherit bintools;
116
116
-
libcxx = runtimes;
117
117
-
cc = clang-unwrapped;
118
118
-
119
119
-
extraPackages = [
120
120
-
llvm
121
121
-
lld
122
122
-
];
123
123
-
124
124
-
nixSupport.cc-cflags = [
125
125
-
"-resource-dir=$out/resource-root"
126
126
-
"-fuse-ld=lld"
127
127
-
"-rtlib=compiler-rt"
128
128
-
"-unwindlib=libunwind"
129
129
-
"-Wno-unused-command-line-argument"
130
130
-
];
131
131
-
132
132
-
extraBuildCommands = ''
133
133
-
clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
134
134
-
mkdir -p $out/resource-root
135
135
-
ln -s ${cc}/lib/clang/$clang_version/include $out/resource-root
136
136
-
ln -s ${runtimes}/lib $out/resource-root
137
137
-
'';
138
138
-
});
139
139
-
140
140
-
bintools = wrapBintoolsWith { bintools = bintools-unwrapped; };
141
141
-
142
142
-
bintools-unwrapped = runCommand "rocm-llvm-binutils-${llvm.version}" { preferLocalBuild = true; } ''
143
143
-
mkdir -p $out/bin
144
144
-
145
145
-
for prog in ${lld}/bin/*; do
146
146
-
ln -s $prog $out/bin/$(basename $prog)
147
147
-
done
148
148
-
149
149
-
for prog in ${llvm}/bin/*; do
150
150
-
ln -sf $prog $out/bin/$(basename $prog)
151
151
-
done
152
152
-
153
153
-
ln -s ${llvm}/bin/llvm-ar $out/bin/ar
154
154
-
ln -s ${llvm}/bin/llvm-as $out/bin/as
155
155
-
ln -s ${llvm}/bin/llvm-dwp $out/bin/dwp
156
156
-
ln -s ${llvm}/bin/llvm-nm $out/bin/nm
157
157
-
ln -s ${llvm}/bin/llvm-objcopy $out/bin/objcopy
158
158
-
ln -s ${llvm}/bin/llvm-objdump $out/bin/objdump
159
159
-
ln -s ${llvm}/bin/llvm-ranlib $out/bin/ranlib
160
160
-
ln -s ${llvm}/bin/llvm-readelf $out/bin/readelf
161
161
-
ln -s ${llvm}/bin/llvm-size $out/bin/size
162
162
-
ln -s ${llvm}/bin/llvm-strip $out/bin/strip
163
163
-
ln -s ${lld}/bin/lld $out/bin/ld
164
164
-
'';
165
165
-
in rec {
166
166
-
inherit
167
167
-
llvm
168
168
-
clang-unwrapped
169
169
-
lld
170
170
-
bintools
171
171
-
bintools-unwrapped;
172
172
-
173
173
-
# Runtimes
174
174
-
libc = callPackage ./llvm.nix rec {
175
175
-
stdenv = rStdenv;
176
176
-
buildMan = false; # No man pages to build
177
177
-
targetName = "libc";
178
178
-
targetDir = "runtimes";
179
179
-
targetRuntimes = [ targetName ];
180
180
-
181
181
-
extraPostPatch = ''
182
182
-
# `Failed to match ... against ...` `Match value not within tolerance value of MPFR result:`
183
183
-
# We need a better way, but I don't know enough sed magic and patching `CMakeLists.txt` isn't working...
184
184
-
substituteInPlace ../libc/test/src/math/log10_test.cpp \
185
185
-
--replace "i < N" "i < 0" \
186
186
-
--replace "test(mpfr::RoundingMode::Nearest);" "" \
187
187
-
--replace "test(mpfr::RoundingMode::Downward);" "" \
188
188
-
--replace "test(mpfr::RoundingMode::Upward);" "" \
189
189
-
--replace "test(mpfr::RoundingMode::TowardZero);" ""
190
190
-
'';
191
191
-
192
192
-
checkTargets = [ "check-${targetName}" ];
193
193
-
hardeningDisable = [ "fortify" ]; # Prevent `error: "Assumed value of MB_LEN_MAX wrong"`
194
194
-
};
195
195
-
196
196
-
libunwind = callPackage ./llvm.nix rec {
197
197
-
stdenv = rStdenv;
198
198
-
buildMan = false; # No man pages to build
199
199
-
targetName = "libunwind";
200
200
-
targetDir = "runtimes";
201
201
-
targetRuntimes = [ targetName ];
202
202
-
203
203
-
extraCMakeFlags = [
204
204
-
"-DLIBUNWIND_INCLUDE_DOCS=ON"
205
205
-
"-DLIBUNWIND_INCLUDE_TESTS=ON"
206
206
-
"-DLIBUNWIND_USE_COMPILER_RT=ON"
207
207
-
];
208
208
-
209
209
-
extraPostPatch = ''
210
210
-
# `command had no output on stdout or stderr` (Says these unsupported tests)
211
211
-
chmod +w -R ../libunwind/test
212
212
-
rm ../libunwind/test/floatregister.pass.cpp
213
213
-
rm ../libunwind/test/unwind_leaffunction.pass.cpp
214
214
-
rm ../libunwind/test/libunwind_02.pass.cpp
215
215
-
'';
216
216
-
};
217
217
-
218
218
-
libcxxabi = callPackage ./llvm.nix rec {
219
219
-
stdenv = rStdenv;
220
220
-
buildDocs = false; # No documentation to build
221
221
-
buildMan = false; # No man pages to build
222
222
-
targetName = "libcxxabi";
223
223
-
targetDir = "runtimes";
224
224
-
225
225
-
targetRuntimes = [
226
226
-
"libunwind"
227
227
-
targetName
228
228
-
"libcxx"
229
229
-
];
230
230
-
231
231
-
extraCMakeFlags = [
232
232
-
"-DLIBCXXABI_INCLUDE_TESTS=ON"
233
233
-
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
234
234
-
"-DLIBCXXABI_USE_COMPILER_RT=ON"
235
235
-
236
236
-
# Workaround having to build combined
237
237
-
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
238
238
-
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
239
239
-
"-DLIBUNWIND_USE_COMPILER_RT=ON"
240
240
-
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
241
241
-
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
242
242
-
"-DLIBCXX_INCLUDE_DOCS=OFF"
243
243
-
"-DLIBCXX_INCLUDE_TESTS=OFF"
244
244
-
"-DLIBCXX_USE_COMPILER_RT=ON"
245
245
-
"-DLIBCXX_CXX_ABI=libcxxabi"
246
246
-
"-DLIBCXX_INSTALL_LIBRARY=OFF"
247
247
-
"-DLIBCXX_INSTALL_HEADERS=OFF"
248
248
-
];
249
249
-
};
250
250
-
251
251
-
libcxx = callPackage ./llvm.nix rec {
252
252
-
stdenv = rStdenv;
253
253
-
buildMan = false; # No man pages to build
254
254
-
targetName = "libcxx";
255
255
-
targetDir = "runtimes";
256
256
-
257
257
-
targetRuntimes = [
258
258
-
"libunwind"
259
259
-
"libcxxabi"
260
260
-
targetName
261
261
-
];
262
262
-
263
263
-
extraCMakeFlags = [
264
264
-
"-DLIBCXX_INCLUDE_DOCS=ON"
265
265
-
"-DLIBCXX_INCLUDE_TESTS=ON"
266
266
-
"-DLIBCXX_USE_COMPILER_RT=ON"
267
267
-
"-DLIBCXX_CXX_ABI=libcxxabi"
268
268
-
269
269
-
# Workaround having to build combined
270
270
-
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
271
271
-
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
272
272
-
"-DLIBUNWIND_USE_COMPILER_RT=ON"
273
273
-
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
274
274
-
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
275
275
-
"-DLIBCXXABI_INCLUDE_TESTS=OFF"
276
276
-
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
277
277
-
"-DLIBCXXABI_USE_COMPILER_RT=ON"
278
278
-
"-DLIBCXXABI_INSTALL_LIBRARY=OFF"
279
279
-
"-DLIBCXXABI_INSTALL_HEADERS=OFF"
280
280
-
];
281
281
-
282
282
-
# Most of these can't find `bash` or `mkdir`, might just be hard-coded paths, or PATH is altered
283
283
-
extraPostPatch = ''
284
284
-
chmod +w -R ../libcxx/test/{libcxx,std}
285
285
-
cat ${./1000-libcxx-failing-tests.list} | xargs -d \\n rm
286
286
-
'';
287
287
-
};
288
288
-
289
289
-
compiler-rt = callPackage ./llvm.nix rec {
290
290
-
stdenv = rStdenv;
291
291
-
buildDocs = false; # No documentation to build
292
292
-
buildMan = false; # No man pages to build
293
293
-
targetName = "compiler-rt";
294
294
-
targetDir = "runtimes";
295
295
-
296
296
-
targetRuntimes = [
297
297
-
"libunwind"
298
298
-
"libcxxabi"
299
299
-
"libcxx"
300
300
-
targetName
301
301
-
];
302
302
-
303
303
-
extraCMakeFlags = [
304
304
-
"-DCOMPILER_RT_INCLUDE_TESTS=ON"
305
305
-
"-DCOMPILER_RT_USE_LLVM_UNWINDER=ON"
306
306
-
"-DCOMPILER_RT_CXX_LIBRARY=libcxx"
307
307
-
"-DCOMPILER_RT_CAN_EXECUTE_TESTS=OFF" # We can't run most of these
308
308
-
309
309
-
# Workaround having to build combined
310
310
-
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
311
311
-
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
312
312
-
"-DLIBUNWIND_USE_COMPILER_RT=ON"
313
313
-
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
314
314
-
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
315
315
-
"-DLIBCXXABI_INCLUDE_TESTS=OFF"
316
316
-
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
317
317
-
"-DLIBCXXABI_USE_COMPILER_RT=ON"
318
318
-
"-DLIBCXXABI_INSTALL_LIBRARY=OFF"
319
319
-
"-DLIBCXXABI_INSTALL_HEADERS=OFF"
320
320
-
"-DLIBCXX_INCLUDE_DOCS=OFF"
321
321
-
"-DLIBCXX_INCLUDE_TESTS=OFF"
322
322
-
"-DLIBCXX_USE_COMPILER_RT=ON"
323
323
-
"-DLIBCXX_CXX_ABI=libcxxabi"
324
324
-
"-DLIBCXX_INSTALL_LIBRARY=OFF"
325
325
-
"-DLIBCXX_INSTALL_HEADERS=OFF"
326
326
-
];
327
327
-
328
328
-
extraPostPatch = ''
329
329
-
# `No such file or directory: 'ldd'`
330
330
-
substituteInPlace ../compiler-rt/test/lit.common.cfg.py \
331
331
-
--replace "'ldd'," "'${glibc.bin}/bin/ldd',"
332
332
-
333
333
-
# We can run these
334
334
-
substituteInPlace ../compiler-rt/test/CMakeLists.txt \
335
335
-
--replace "endfunction()" "endfunction()''\nadd_subdirectory(builtins)''\nadd_subdirectory(shadowcallstack)"
336
336
-
337
337
-
# Could not launch llvm-config in /build/source/runtimes/build/bin
338
338
-
mkdir -p build/bin
339
339
-
ln -s ${llvm}/bin/llvm-config build/bin
340
340
-
'';
341
341
-
342
342
-
extraLicenses = [ lib.licenses.mit ];
343
343
-
};
344
344
-
345
345
-
# Stage 3
346
346
-
# Helpers
347
347
-
rocmClangStdenv = overrideCC stdenv clang;
348
348
-
349
349
-
clang = wrapCCWith rec {
350
350
-
inherit libcxx bintools;
351
351
-
352
352
-
# We do this to avoid HIP pathing problems, and mimic a monolithic install
353
353
-
cc = stdenv.mkDerivation (finalAttrs: {
354
354
-
inherit (clang-unwrapped) pname version;
355
355
-
dontUnpack = true;
356
356
-
357
357
-
installPhase = ''
358
358
-
runHook preInstall
359
359
-
360
360
-
clang_version=`${clang-unwrapped}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
361
361
-
mkdir -p $out/{bin,include/c++/v1,lib/{cmake,clang/$clang_version/{include,lib}},libexec,share}
362
362
-
363
363
-
for path in ${llvm} ${clang-unwrapped} ${lld} ${libc} ${libunwind} ${libcxxabi} ${libcxx} ${compiler-rt}; do
364
364
-
cp -as $path/* $out
365
365
-
chmod +w $out/{*,include/c++/v1,lib/{clang/$clang_version/include,cmake}}
366
366
-
rm -f $out/lib/libc++.so
367
367
-
done
368
368
-
369
369
-
ln -s $out/lib/* $out/lib/clang/$clang_version/lib
370
370
-
ln -sf $out/include/* $out/lib/clang/$clang_version/include
371
371
-
372
372
-
runHook postInstall
373
373
-
'';
374
374
-
375
375
-
passthru.isClang = true;
376
376
-
});
377
377
-
378
378
-
extraPackages = [
379
379
-
llvm
380
380
-
lld
381
381
-
libc
382
382
-
libunwind
383
383
-
libcxxabi
384
384
-
compiler-rt
385
385
-
];
386
386
-
387
387
-
nixSupport.cc-cflags = [
388
388
-
"-resource-dir=$out/resource-root"
389
389
-
"-fuse-ld=lld"
390
390
-
"-rtlib=compiler-rt"
391
391
-
"-unwindlib=libunwind"
392
392
-
"-Wno-unused-command-line-argument"
393
393
-
];
394
394
-
395
395
-
extraBuildCommands = ''
396
396
-
clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
397
397
-
mkdir -p $out/resource-root
398
398
-
ln -s ${cc}/lib/clang/$clang_version/{include,lib} $out/resource-root
399
399
-
400
400
-
# Not sure why, but hardening seems to make things break
401
401
-
echo "" > $out/nix-support/add-hardening.sh
402
402
-
403
403
-
# GPU compilation uses builtin `lld`
404
404
-
substituteInPlace $out/bin/{clang,clang++} \
405
405
-
--replace "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;"
406
406
-
'';
407
407
-
};
408
408
-
409
409
-
# Base
410
410
-
# Unfortunately, we cannot build `clang-tools-extra` separately.
411
411
-
clang-tools-extra = callPackage ./llvm.nix {
412
412
-
stdenv = rocmClangStdenv;
413
413
-
buildTests = false; # `invalid operands to binary expression ('std::basic_stringstream<char>' and 'const llvm::StringRef')`
414
414
-
targetName = "clang-tools-extra";
415
415
-
416
416
-
targetProjects = [
417
417
-
"clang"
418
418
-
"clang-tools-extra"
419
419
-
];
420
420
-
421
421
-
extraBuildInputs = [ gtest ];
422
422
-
423
423
-
extraCMakeFlags = [
424
424
-
"-DLLVM_INCLUDE_DOCS=OFF"
425
425
-
"-DLLVM_INCLUDE_TESTS=OFF"
426
426
-
"-DCLANG_INCLUDE_DOCS=OFF"
427
427
-
"-DCLANG_INCLUDE_TESTS=ON"
428
428
-
"-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON"
429
429
-
];
430
430
-
431
431
-
extraPostInstall = ''
432
432
-
# Remove LLVM and Clang
433
433
-
for path in `find ${llvm} ${clang-unwrapped}`; do
434
434
-
if [ $path != ${llvm} ] && [ $path != ${clang-unwrapped} ]; then
435
435
-
rm -f $out''${path#${llvm}} $out''${path#${clang-unwrapped}} || true
436
436
-
fi
437
437
-
done
438
438
-
439
439
-
# Cleanup empty directories
440
440
-
find $out -type d -empty -delete
441
441
-
'';
442
442
-
443
443
-
requiredSystemFeatures = [ "big-parallel" ];
444
444
-
};
445
445
-
446
446
-
# Projects
447
447
-
libclc = let
448
448
-
spirv = (spirv-llvm-translator.override { inherit llvm; });
449
449
-
in callPackage ./llvm.nix rec {
450
450
-
stdenv = rocmClangStdenv;
451
451
-
buildDocs = false; # No documentation to build
452
452
-
buildMan = false; # No man pages to build
453
453
-
targetName = "libclc";
454
454
-
targetDir = targetName;
455
455
-
extraBuildInputs = [ spirv ];
456
456
-
457
457
-
# `spirv-mesa3d` isn't compiling with LLVM 15.0.0, it does with LLVM 14.0.0
458
458
-
# Try removing the `spirv-mesa3d` and `clspv` patches next update
459
459
-
# `clspv` tests fail, unresolved calls
460
460
-
extraPostPatch = ''
461
461
-
substituteInPlace CMakeLists.txt \
462
462
-
--replace "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
463
463
-
"find_program( LLVM_CLANG clang PATHS \"${clang}/bin\" NO_DEFAULT_PATH )" \
464
464
-
--replace "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
465
465
-
"find_program( LLVM_SPIRV llvm-spirv PATHS \"${spirv}/bin\" NO_DEFAULT_PATH )" \
466
466
-
--replace " spirv-mesa3d-" "" \
467
467
-
--replace " spirv64-mesa3d-" "" \
468
468
-
--replace "NOT \''${t} MATCHES" \
469
469
-
"NOT \''${ARCH} STREQUAL \"clspv\" AND NOT \''${ARCH} STREQUAL \"clspv64\" AND NOT \''${t} MATCHES"
470
470
-
'';
471
471
-
472
472
-
checkTargets = [ ];
473
473
-
isBroken = true; # ROCm 5.7.0 doesn't have IR/AttributeMask.h yet...?
474
474
-
};
475
475
-
476
476
-
lldb = callPackage ./llvm.nix rec {
477
477
-
stdenv = rocmClangStdenv;
478
478
-
buildTests = false; # FIXME: Bad pathing for clang executable in tests, using relative path most likely
479
479
-
targetName = "lldb";
480
480
-
targetDir = targetName;
481
481
-
extraNativeBuildInputs = [ python3Packages.sphinx-automodapi ];
482
482
-
483
483
-
extraBuildInputs = [
484
484
-
xz
485
485
-
swig
486
486
-
lua5_3
487
487
-
gtest
488
488
-
graphviz
489
489
-
];
490
490
-
491
491
-
extraCMakeFlags = [
492
492
-
"-DLLDB_EXTERNAL_CLANG_RESOURCE_DIR=${clang}/resource-root/lib/clang/$clang_version"
493
493
-
"-DLLDB_INCLUDE_TESTS=ON"
494
494
-
"-DLLDB_INCLUDE_UNITTESTS=ON"
495
495
-
];
496
496
-
497
497
-
extraPostPatch = ''
498
498
-
export clang_version=`clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
499
499
-
'';
500
500
-
501
501
-
checkTargets = [ "check-${targetName}" ];
502
502
-
};
503
503
-
504
504
-
mlir = callPackage ./llvm.nix rec {
505
505
-
stdenv = rocmClangStdenv;
506
506
-
buildDocs = false; # No decent way to hack this to work
507
507
-
buildMan = false; # No man pages to build
508
508
-
targetName = "mlir";
509
509
-
targetDir = targetName;
510
510
-
extraNativeBuildInputs = [ hip ];
511
511
-
512
512
-
extraBuildInputs = [
513
513
-
rocm-comgr
514
514
-
vulkan-headers
515
515
-
vulkan-loader
516
516
-
glslang
517
517
-
shaderc
518
518
-
];
519
519
-
520
520
-
extraCMakeFlags = [
521
521
-
"-DCMAKE_POLICY_DEFAULT_CMP0116=NEW"
522
522
-
"-DMLIR_INCLUDE_DOCS=ON"
523
523
-
"-DMLIR_INCLUDE_TESTS=ON"
524
524
-
"-DMLIR_ENABLE_ROCM_RUNNER=ON"
525
525
-
"-DMLIR_ENABLE_SPIRV_CPU_RUNNER=ON"
526
526
-
"-DMLIR_ENABLE_VULKAN_RUNNER=ON"
527
527
-
"-DROCM_TEST_CHIPSET=gfx000" # CPU runner
528
528
-
];
529
529
-
530
530
-
extraPostPatch = ''
531
531
-
chmod +w ../llvm
532
532
-
mkdir -p ../llvm/build/bin
533
533
-
ln -s ${lit}/bin/lit ../llvm/build/bin/llvm-lit
534
534
-
535
535
-
substituteInPlace test/CMakeLists.txt \
536
536
-
--replace "FileCheck count not" "" \
537
537
-
--replace "list(APPEND MLIR_TEST_DEPENDS mlir_rocm_runtime)" ""
538
538
-
539
539
-
substituteInPlace lib/ExecutionEngine/CMakeLists.txt \
540
540
-
--replace "return()" ""
541
541
-
542
542
-
# Remove problematic tests
543
543
-
rm test/CAPI/execution_engine.c
544
544
-
rm test/Target/LLVMIR/llvmir-intrinsics.mlir
545
545
-
rm test/Target/LLVMIR/llvmir.mlir
546
546
-
rm test/Target/LLVMIR/openmp-llvm.mlir
547
547
-
rm test/mlir-cpu-runner/*.mlir
548
548
-
rm test/mlir-vulkan-runner/*.mlir
549
549
-
'';
550
550
-
551
551
-
extraPostInstall = ''
552
552
-
mkdir -p $out/bin
553
553
-
mv bin/mlir-tblgen $out/bin
554
554
-
'';
555
555
-
556
556
-
checkTargets = [ "check-${targetName}" ];
557
557
-
requiredSystemFeatures = [ "big-parallel" ];
558
558
-
};
559
559
-
560
560
-
polly = callPackage ./llvm.nix rec {
561
561
-
stdenv = rocmClangStdenv;
562
562
-
targetName = "polly";
563
563
-
targetDir = targetName;
564
564
-
565
565
-
extraPostPatch = ''
566
566
-
# `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
567
567
-
substituteInPlace CMakeLists.txt \
568
568
-
--replace "NOT TARGET gtest" "FALSE"
569
569
-
'';
570
570
-
571
571
-
checkTargets = [ "check-${targetName}" ];
572
572
-
};
573
573
-
574
574
-
flang = callPackage ./llvm.nix rec {
575
575
-
stdenv = rocmClangStdenv;
576
576
-
buildTests = false; # `Executable "flang1" doesn't exist!`
577
577
-
targetName = "flang";
578
578
-
targetDir = targetName;
579
579
-
extraNativeBuildInputs = [ python3Packages.sphinx-markdown-tables ];
580
580
-
extraBuildInputs = [ mlir ];
581
581
-
582
582
-
extraCMakeFlags = [
583
583
-
"-DCMAKE_POLICY_DEFAULT_CMP0116=NEW"
584
584
-
"-DCLANG_DIR=${clang-unwrapped}/lib/cmake/clang"
585
585
-
"-DFLANG_INCLUDE_TESTS=OFF"
586
586
-
"-DMLIR_TABLEGEN_EXE=${mlir}/bin/mlir-tblgen"
587
587
-
];
588
588
-
589
589
-
extraPostPatch = ''
590
590
-
substituteInPlace test/CMakeLists.txt \
591
591
-
--replace "FileCheck" "" \
592
592
-
--replace "count" "" \
593
593
-
--replace "not" ""
594
594
-
595
595
-
substituteInPlace docs/CMakeLists.txt \
596
596
-
--replace "CLANG_TABLEGEN_EXE clang-tblgen" "CLANG_TABLEGEN_EXE ${clang-unwrapped}/bin/clang-tblgen"
597
597
-
'';
598
598
-
};
599
599
-
600
600
-
openmp = callPackage ./llvm.nix rec {
601
601
-
stdenv = rocmClangStdenv;
602
602
-
buildTests = false; # Too many failures, most pass
603
603
-
targetName = "openmp";
604
604
-
targetDir = targetName;
605
605
-
extraPatches = [ ./0000-fix-openmp.patch ];
606
606
-
extraNativeBuildInputs = [ perl ];
607
607
-
608
608
-
extraBuildInputs = [
609
609
-
rocm-device-libs
610
610
-
rocm-runtime
611
611
-
elfutils
612
612
-
];
613
613
-
614
614
-
extraCMakeFlags = [
615
615
-
"-DCMAKE_MODULE_PATH=/build/source/llvm/cmake/modules" # For docs
616
616
-
"-DCLANG_TOOL=${clang}/bin/clang"
617
617
-
"-DCLANG_OFFLOAD_BUNDLER_TOOL=${clang-unwrapped}/bin/clang-offload-bundler"
618
618
-
"-DOPENMP_LLVM_TOOLS_DIR=${llvm}/bin"
619
619
-
"-DOPENMP_LLVM_LIT_EXECUTABLE=${lit}/bin/.lit-wrapped"
620
620
-
"-DDEVICELIBS_ROOT=${rocm-device-libs.src}"
621
621
-
];
622
622
-
623
623
-
extraPostPatch = ''
624
624
-
# We can't build this target at the moment
625
625
-
substituteInPlace libomptarget/DeviceRTL/CMakeLists.txt \
626
626
-
--replace "gfx1010" ""
627
627
-
'';
628
628
-
629
629
-
checkTargets = [ "check-${targetName}" ];
630
630
-
extraLicenses = [ lib.licenses.mit ];
631
631
-
};
632
632
-
633
633
-
# Runtimes
634
634
-
pstl = callPackage ./llvm.nix rec {
635
635
-
stdenv = rocmClangStdenv;
636
636
-
buildDocs = false; # No documentation to build
637
637
-
buildMan = false; # No man pages to build
638
638
-
buildTests = false; # Too many errors
639
639
-
targetName = "pstl";
640
640
-
targetDir = "runtimes";
641
641
-
targetRuntimes = [ targetName ];
642
642
-
checkTargets = [ "check-${targetName}" ];
643
643
-
};
644
644
-
}
pkgs/development/compilers/llvm/rocm/llvm.nix
pkgs/development/rocm-modules/5/llvm/base.nix
+9
pkgs/development/rocm-modules/5/default.nix
···
1
1
+
{ callPackage
2
2
+
, recurseIntoAttrs
3
3
+
}:
4
4
+
5
5
+
let
6
6
+
rocmUpdateScript = callPackage ./update.nix { };
7
7
+
in {
8
8
+
llvm = recurseIntoAttrs (callPackage ./llvm/default.nix { inherit rocmUpdateScript; });
9
9
+
}
+53
pkgs/development/rocm-modules/5/llvm/default.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, wrapBintoolsWith
5
5
+
, overrideCC
6
6
+
}:
7
7
+
8
8
+
let
9
9
+
## Stage 1 ##
10
10
+
# Projects
11
11
+
llvm = callPackage ./stage-1/llvm.nix { inherit rocmUpdateScript; };
12
12
+
clang-unwrapped = callPackage ./stage-1/clang-unwrapped.nix { inherit rocmUpdateScript llvm; };
13
13
+
lld = callPackage ./stage-1/lld.nix { inherit rocmUpdateScript llvm; };
14
14
+
15
15
+
# Runtimes
16
16
+
runtimes = callPackage ./stage-1/runtimes.nix { inherit rocmUpdateScript llvm; };
17
17
+
18
18
+
## Stage 2 ##
19
19
+
# Helpers
20
20
+
bintools-unwrapped = callPackage ./stage-2/bintools-unwrapped.nix { inherit llvm lld; };
21
21
+
bintools = wrapBintoolsWith { bintools = bintools-unwrapped; };
22
22
+
rStdenv = callPackage ./stage-2/rstdenv.nix { inherit llvm clang-unwrapped lld runtimes bintools; };
23
23
+
in rec {
24
24
+
inherit
25
25
+
llvm
26
26
+
clang-unwrapped
27
27
+
lld
28
28
+
bintools;
29
29
+
30
30
+
# Runtimes
31
31
+
libc = callPackage ./stage-2/libc.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
32
32
+
libunwind = callPackage ./stage-2/libunwind.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
33
33
+
libcxxabi = callPackage ./stage-2/libcxxabi.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
34
34
+
libcxx = callPackage ./stage-2/libcxx.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
35
35
+
compiler-rt = callPackage ./stage-2/compiler-rt.nix { inherit rocmUpdateScript llvm; stdenv = rStdenv; };
36
36
+
37
37
+
## Stage 3 ##
38
38
+
# Helpers
39
39
+
clang = callPackage ./stage-3/clang.nix { inherit llvm lld clang-unwrapped bintools libc libunwind libcxxabi libcxx compiler-rt; };
40
40
+
rocmClangStdenv = overrideCC stdenv clang;
41
41
+
42
42
+
# Projects
43
43
+
clang-tools-extra = callPackage ./stage-3/clang-tools-extra.nix { inherit rocmUpdateScript llvm clang-unwrapped; stdenv = rocmClangStdenv; };
44
44
+
libclc = callPackage ./stage-3/libclc.nix { inherit rocmUpdateScript llvm clang; stdenv = rocmClangStdenv; };
45
45
+
lldb = callPackage ./stage-3/lldb.nix { inherit rocmUpdateScript clang; stdenv = rocmClangStdenv; };
46
46
+
mlir = callPackage ./stage-3/mlir.nix { inherit rocmUpdateScript; stdenv = rocmClangStdenv; };
47
47
+
polly = callPackage ./stage-3/polly.nix { inherit rocmUpdateScript; stdenv = rocmClangStdenv; };
48
48
+
flang = callPackage ./stage-3/flang.nix { inherit rocmUpdateScript clang-unwrapped mlir; stdenv = rocmClangStdenv; };
49
49
+
openmp = callPackage ./stage-3/openmp.nix { inherit rocmUpdateScript llvm clang-unwrapped clang; stdenv = rocmClangStdenv; };
50
50
+
51
51
+
# Runtimes
52
52
+
pstl = callPackage ./stage-3/pstl.nix { inherit rocmUpdateScript; stdenv = rocmClangStdenv; };
53
53
+
}
+46
pkgs/development/rocm-modules/5/llvm/stage-1/clang-unwrapped.nix
···
1
1
+
{ callPackage
2
2
+
, rocmUpdateScript
3
3
+
, llvm
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit rocmUpdateScript;
8
8
+
targetName = "clang-unwrapped";
9
9
+
targetDir = "clang";
10
10
+
extraBuildInputs = [ llvm ];
11
11
+
12
12
+
extraCMakeFlags = [
13
13
+
"-DCLANG_INCLUDE_DOCS=ON"
14
14
+
"-DCLANG_INCLUDE_TESTS=ON"
15
15
+
];
16
16
+
17
17
+
extraPostPatch = ''
18
18
+
# Looks like they forgot to add finding libedit to the standalone build
19
19
+
ln -s ../cmake/Modules/FindLibEdit.cmake cmake/modules
20
20
+
21
21
+
substituteInPlace CMakeLists.txt \
22
22
+
--replace "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)"
23
23
+
24
24
+
# `No such file or directory: '/build/source/clang/tools/scan-build/bin/scan-build'`
25
25
+
rm test/Analysis/scan-build/*.test
26
26
+
rm test/Analysis/scan-build/rebuild_index/rebuild_index.test
27
27
+
28
28
+
# `does not depend on a module exporting 'baz.h'`
29
29
+
rm test/Modules/header-attribs.cpp
30
30
+
31
31
+
# We do not have HIP or the ROCm stack available yet
32
32
+
rm test/Driver/hip-options.hip
33
33
+
34
34
+
# ???? `ld: cannot find crti.o: No such file or directory` linker issue?
35
35
+
rm test/Interpreter/dynamic-library.cpp
36
36
+
37
37
+
# `fatal error: 'stdio.h' file not found`
38
38
+
rm test/OpenMP/amdgcn_emit_llvm.c
39
39
+
'';
40
40
+
41
41
+
extraPostInstall = ''
42
42
+
mv bin/clang-tblgen $out/bin
43
43
+
'';
44
44
+
45
45
+
requiredSystemFeatures = [ "big-parallel" ];
46
46
+
}
+13
pkgs/development/rocm-modules/5/llvm/stage-1/lld.nix
···
1
1
+
{ callPackage
2
2
+
, rocmUpdateScript
3
3
+
, llvm
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit rocmUpdateScript;
8
8
+
buildMan = false; # No man pages to build
9
9
+
targetName = "lld";
10
10
+
targetDir = targetName;
11
11
+
extraBuildInputs = [ llvm ];
12
12
+
checkTargets = [ "check-${targetName}" ];
13
13
+
}
+10
pkgs/development/rocm-modules/5/llvm/stage-1/llvm.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix {
7
7
+
inherit rocmUpdateScript;
8
8
+
requiredSystemFeatures = [ "big-parallel" ];
9
9
+
isBroken = stdenv.isAarch64; # https://github.com/RadeonOpenCompute/ROCm/issues/1831#issuecomment-1278205344
10
10
+
}
+30
pkgs/development/rocm-modules/5/llvm/stage-1/runtimes.nix
···
1
1
+
{ lib
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, llvm
5
5
+
}:
6
6
+
7
7
+
callPackage ../base.nix rec {
8
8
+
inherit rocmUpdateScript;
9
9
+
buildDocs = false;
10
10
+
buildMan = false;
11
11
+
buildTests = false;
12
12
+
targetName = "runtimes";
13
13
+
targetDir = targetName;
14
14
+
15
15
+
targetRuntimes = [
16
16
+
"libunwind"
17
17
+
"libcxxabi"
18
18
+
"libcxx"
19
19
+
"compiler-rt"
20
20
+
];
21
21
+
22
22
+
extraBuildInputs = [ llvm ];
23
23
+
24
24
+
extraCMakeFlags = [
25
25
+
"-DLIBCXX_INCLUDE_BENCHMARKS=OFF"
26
26
+
"-DLIBCXX_CXX_ABI=libcxxabi"
27
27
+
];
28
28
+
29
29
+
extraLicenses = [ lib.licenses.mit ];
30
30
+
}
+28
pkgs/development/rocm-modules/5/llvm/stage-2/bintools-unwrapped.nix
···
1
1
+
{ runCommand
2
2
+
, llvm
3
3
+
, lld
4
4
+
}:
5
5
+
6
6
+
runCommand "rocm-llvm-binutils-${llvm.version}" { preferLocalBuild = true; } ''
7
7
+
mkdir -p $out/bin
8
8
+
9
9
+
for prog in ${lld}/bin/*; do
10
10
+
ln -s $prog $out/bin/$(basename $prog)
11
11
+
done
12
12
+
13
13
+
for prog in ${llvm}/bin/*; do
14
14
+
ln -sf $prog $out/bin/$(basename $prog)
15
15
+
done
16
16
+
17
17
+
ln -s ${llvm}/bin/llvm-ar $out/bin/ar
18
18
+
ln -s ${llvm}/bin/llvm-as $out/bin/as
19
19
+
ln -s ${llvm}/bin/llvm-dwp $out/bin/dwp
20
20
+
ln -s ${llvm}/bin/llvm-nm $out/bin/nm
21
21
+
ln -s ${llvm}/bin/llvm-objcopy $out/bin/objcopy
22
22
+
ln -s ${llvm}/bin/llvm-objdump $out/bin/objdump
23
23
+
ln -s ${llvm}/bin/llvm-ranlib $out/bin/ranlib
24
24
+
ln -s ${llvm}/bin/llvm-readelf $out/bin/readelf
25
25
+
ln -s ${llvm}/bin/llvm-size $out/bin/size
26
26
+
ln -s ${llvm}/bin/llvm-strip $out/bin/strip
27
27
+
ln -s ${lld}/bin/lld $out/bin/ld
28
28
+
''
+63
pkgs/development/rocm-modules/5/llvm/stage-2/compiler-rt.nix
···
1
1
+
{ lib
2
2
+
, stdenv
3
3
+
, callPackage
4
4
+
, rocmUpdateScript
5
5
+
, llvm
6
6
+
, glibc
7
7
+
}:
8
8
+
9
9
+
callPackage ../base.nix rec {
10
10
+
inherit stdenv rocmUpdateScript;
11
11
+
buildDocs = false; # No documentation to build
12
12
+
buildMan = false; # No man pages to build
13
13
+
targetName = "compiler-rt";
14
14
+
targetDir = "runtimes";
15
15
+
16
16
+
targetRuntimes = [
17
17
+
"libunwind"
18
18
+
"libcxxabi"
19
19
+
"libcxx"
20
20
+
targetName
21
21
+
];
22
22
+
23
23
+
extraCMakeFlags = [
24
24
+
"-DCOMPILER_RT_INCLUDE_TESTS=ON"
25
25
+
"-DCOMPILER_RT_USE_LLVM_UNWINDER=ON"
26
26
+
"-DCOMPILER_RT_CXX_LIBRARY=libcxx"
27
27
+
"-DCOMPILER_RT_CAN_EXECUTE_TESTS=OFF" # We can't run most of these
28
28
+
29
29
+
# Workaround having to build combined
30
30
+
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
31
31
+
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
32
32
+
"-DLIBUNWIND_USE_COMPILER_RT=ON"
33
33
+
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
34
34
+
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
35
35
+
"-DLIBCXXABI_INCLUDE_TESTS=OFF"
36
36
+
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
37
37
+
"-DLIBCXXABI_USE_COMPILER_RT=ON"
38
38
+
"-DLIBCXXABI_INSTALL_LIBRARY=OFF"
39
39
+
"-DLIBCXXABI_INSTALL_HEADERS=OFF"
40
40
+
"-DLIBCXX_INCLUDE_DOCS=OFF"
41
41
+
"-DLIBCXX_INCLUDE_TESTS=OFF"
42
42
+
"-DLIBCXX_USE_COMPILER_RT=ON"
43
43
+
"-DLIBCXX_CXX_ABI=libcxxabi"
44
44
+
"-DLIBCXX_INSTALL_LIBRARY=OFF"
45
45
+
"-DLIBCXX_INSTALL_HEADERS=OFF"
46
46
+
];
47
47
+
48
48
+
extraPostPatch = ''
49
49
+
# `No such file or directory: 'ldd'`
50
50
+
substituteInPlace ../compiler-rt/test/lit.common.cfg.py \
51
51
+
--replace "'ldd'," "'${glibc.bin}/bin/ldd',"
52
52
+
53
53
+
# We can run these
54
54
+
substituteInPlace ../compiler-rt/test/CMakeLists.txt \
55
55
+
--replace "endfunction()" "endfunction()''\nadd_subdirectory(builtins)''\nadd_subdirectory(shadowcallstack)"
56
56
+
57
57
+
# Could not launch llvm-config in /build/source/runtimes/build/bin
58
58
+
mkdir -p build/bin
59
59
+
ln -s ${llvm}/bin/llvm-config build/bin
60
60
+
'';
61
61
+
62
62
+
extraLicenses = [ lib.licenses.mit ];
63
63
+
}
+26
pkgs/development/rocm-modules/5/llvm/stage-2/libc.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
buildMan = false; # No man pages to build
9
9
+
targetName = "libc";
10
10
+
targetDir = "runtimes";
11
11
+
targetRuntimes = [ targetName ];
12
12
+
13
13
+
extraPostPatch = ''
14
14
+
# `Failed to match ... against ...` `Match value not within tolerance value of MPFR result:`
15
15
+
# We need a better way, but I don't know enough sed magic and patching `CMakeLists.txt` isn't working...
16
16
+
substituteInPlace ../libc/test/src/math/log10_test.cpp \
17
17
+
--replace "i < N" "i < 0" \
18
18
+
--replace "test(mpfr::RoundingMode::Nearest);" "" \
19
19
+
--replace "test(mpfr::RoundingMode::Downward);" "" \
20
20
+
--replace "test(mpfr::RoundingMode::Upward);" "" \
21
21
+
--replace "test(mpfr::RoundingMode::TowardZero);" ""
22
22
+
'';
23
23
+
24
24
+
checkTargets = [ "check-${targetName}" ];
25
25
+
hardeningDisable = [ "fortify" ]; # Prevent `error: "Assumed value of MB_LEN_MAX wrong"`
26
26
+
}
+42
pkgs/development/rocm-modules/5/llvm/stage-2/libcxx.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
buildMan = false; # No man pages to build
9
9
+
targetName = "libcxx";
10
10
+
targetDir = "runtimes";
11
11
+
12
12
+
targetRuntimes = [
13
13
+
"libunwind"
14
14
+
"libcxxabi"
15
15
+
targetName
16
16
+
];
17
17
+
18
18
+
extraCMakeFlags = [
19
19
+
"-DLIBCXX_INCLUDE_DOCS=ON"
20
20
+
"-DLIBCXX_INCLUDE_TESTS=ON"
21
21
+
"-DLIBCXX_USE_COMPILER_RT=ON"
22
22
+
"-DLIBCXX_CXX_ABI=libcxxabi"
23
23
+
24
24
+
# Workaround having to build combined
25
25
+
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
26
26
+
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
27
27
+
"-DLIBUNWIND_USE_COMPILER_RT=ON"
28
28
+
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
29
29
+
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
30
30
+
"-DLIBCXXABI_INCLUDE_TESTS=OFF"
31
31
+
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
32
32
+
"-DLIBCXXABI_USE_COMPILER_RT=ON"
33
33
+
"-DLIBCXXABI_INSTALL_LIBRARY=OFF"
34
34
+
"-DLIBCXXABI_INSTALL_HEADERS=OFF"
35
35
+
];
36
36
+
37
37
+
# Most of these can't find `bash` or `mkdir`, might just be hard-coded paths, or PATH is altered
38
38
+
extraPostPatch = ''
39
39
+
chmod +w -R ../libcxx/test/{libcxx,std}
40
40
+
cat ${./1000-libcxx-failing-tests.list} | xargs -d \\n rm
41
41
+
'';
42
42
+
}
+37
pkgs/development/rocm-modules/5/llvm/stage-2/libcxxabi.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
buildDocs = false; # No documentation to build
9
9
+
buildMan = false; # No man pages to build
10
10
+
targetName = "libcxxabi";
11
11
+
targetDir = "runtimes";
12
12
+
13
13
+
targetRuntimes = [
14
14
+
"libunwind"
15
15
+
targetName
16
16
+
"libcxx"
17
17
+
];
18
18
+
19
19
+
extraCMakeFlags = [
20
20
+
"-DLIBCXXABI_INCLUDE_TESTS=ON"
21
21
+
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
22
22
+
"-DLIBCXXABI_USE_COMPILER_RT=ON"
23
23
+
24
24
+
# Workaround having to build combined
25
25
+
"-DLIBUNWIND_INCLUDE_DOCS=OFF"
26
26
+
"-DLIBUNWIND_INCLUDE_TESTS=OFF"
27
27
+
"-DLIBUNWIND_USE_COMPILER_RT=ON"
28
28
+
"-DLIBUNWIND_INSTALL_LIBRARY=OFF"
29
29
+
"-DLIBUNWIND_INSTALL_HEADERS=OFF"
30
30
+
"-DLIBCXX_INCLUDE_DOCS=OFF"
31
31
+
"-DLIBCXX_INCLUDE_TESTS=OFF"
32
32
+
"-DLIBCXX_USE_COMPILER_RT=ON"
33
33
+
"-DLIBCXX_CXX_ABI=libcxxabi"
34
34
+
"-DLIBCXX_INSTALL_LIBRARY=OFF"
35
35
+
"-DLIBCXX_INSTALL_HEADERS=OFF"
36
36
+
];
37
37
+
}
+26
pkgs/development/rocm-modules/5/llvm/stage-2/libunwind.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
buildMan = false; # No man pages to build
9
9
+
targetName = "libunwind";
10
10
+
targetDir = "runtimes";
11
11
+
targetRuntimes = [ targetName ];
12
12
+
13
13
+
extraCMakeFlags = [
14
14
+
"-DLIBUNWIND_INCLUDE_DOCS=ON"
15
15
+
"-DLIBUNWIND_INCLUDE_TESTS=ON"
16
16
+
"-DLIBUNWIND_USE_COMPILER_RT=ON"
17
17
+
];
18
18
+
19
19
+
extraPostPatch = ''
20
20
+
# `command had no output on stdout or stderr` (Says these unsupported tests)
21
21
+
chmod +w -R ../libunwind/test
22
22
+
rm ../libunwind/test/floatregister.pass.cpp
23
23
+
rm ../libunwind/test/unwind_leaffunction.pass.cpp
24
24
+
rm ../libunwind/test/libunwind_02.pass.cpp
25
25
+
'';
26
26
+
}
+35
pkgs/development/rocm-modules/5/llvm/stage-2/rstdenv.nix
···
1
1
+
{ stdenv
2
2
+
, overrideCC
3
3
+
, wrapCCWith
4
4
+
, llvm
5
5
+
, clang-unwrapped
6
6
+
, lld
7
7
+
, runtimes
8
8
+
, bintools
9
9
+
}:
10
10
+
11
11
+
overrideCC stdenv (wrapCCWith rec {
12
12
+
inherit bintools;
13
13
+
libcxx = runtimes;
14
14
+
cc = clang-unwrapped;
15
15
+
16
16
+
extraPackages = [
17
17
+
llvm
18
18
+
lld
19
19
+
];
20
20
+
21
21
+
nixSupport.cc-cflags = [
22
22
+
"-resource-dir=$out/resource-root"
23
23
+
"-fuse-ld=lld"
24
24
+
"-rtlib=compiler-rt"
25
25
+
"-unwindlib=libunwind"
26
26
+
"-Wno-unused-command-line-argument"
27
27
+
];
28
28
+
29
29
+
extraBuildCommands = ''
30
30
+
clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
31
31
+
mkdir -p $out/resource-root
32
32
+
ln -s ${cc}/lib/clang/$clang_version/include $out/resource-root
33
33
+
ln -s ${runtimes}/lib $out/resource-root
34
34
+
'';
35
35
+
})
+42
pkgs/development/rocm-modules/5/llvm/stage-3/clang-tools-extra.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, llvm
5
5
+
, clang-unwrapped
6
6
+
, gtest
7
7
+
}:
8
8
+
9
9
+
callPackage ../base.nix rec {
10
10
+
inherit stdenv rocmUpdateScript;
11
11
+
buildTests = false; # `invalid operands to binary expression ('std::basic_stringstream<char>' and 'const llvm::StringRef')`
12
12
+
targetName = "clang-tools-extra";
13
13
+
14
14
+
targetProjects = [
15
15
+
"clang"
16
16
+
"clang-tools-extra"
17
17
+
];
18
18
+
19
19
+
extraBuildInputs = [ gtest ];
20
20
+
21
21
+
extraCMakeFlags = [
22
22
+
"-DLLVM_INCLUDE_DOCS=OFF"
23
23
+
"-DLLVM_INCLUDE_TESTS=OFF"
24
24
+
"-DCLANG_INCLUDE_DOCS=OFF"
25
25
+
"-DCLANG_INCLUDE_TESTS=ON"
26
26
+
"-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON"
27
27
+
];
28
28
+
29
29
+
extraPostInstall = ''
30
30
+
# Remove LLVM and Clang
31
31
+
for path in `find ${llvm} ${clang-unwrapped}`; do
32
32
+
if [ $path != ${llvm} ] && [ $path != ${clang-unwrapped} ]; then
33
33
+
rm -f $out''${path#${llvm}} $out''${path#${clang-unwrapped}} || true
34
34
+
fi
35
35
+
done
36
36
+
37
37
+
# Cleanup empty directories
38
38
+
find $out -type d -empty -delete
39
39
+
'';
40
40
+
41
41
+
requiredSystemFeatures = [ "big-parallel" ];
42
42
+
}
+73
pkgs/development/rocm-modules/5/llvm/stage-3/clang.nix
···
1
1
+
{ stdenv
2
2
+
, wrapCCWith
3
3
+
, llvm
4
4
+
, lld
5
5
+
, clang-unwrapped
6
6
+
, bintools
7
7
+
, libc
8
8
+
, libunwind
9
9
+
, libcxxabi
10
10
+
, libcxx
11
11
+
, compiler-rt
12
12
+
}:
13
13
+
14
14
+
wrapCCWith rec {
15
15
+
inherit libcxx bintools;
16
16
+
17
17
+
# We do this to avoid HIP pathing problems, and mimic a monolithic install
18
18
+
cc = stdenv.mkDerivation (finalAttrs: {
19
19
+
inherit (clang-unwrapped) version;
20
20
+
pname = "rocm-llvm-clang";
21
21
+
dontUnpack = true;
22
22
+
23
23
+
installPhase = ''
24
24
+
runHook preInstall
25
25
+
26
26
+
clang_version=`${clang-unwrapped}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
27
27
+
mkdir -p $out/{bin,include/c++/v1,lib/{cmake,clang/$clang_version/{include,lib}},libexec,share}
28
28
+
29
29
+
for path in ${llvm} ${clang-unwrapped} ${lld} ${libc} ${libunwind} ${libcxxabi} ${libcxx} ${compiler-rt}; do
30
30
+
cp -as $path/* $out
31
31
+
chmod +w $out/{*,include/c++/v1,lib/{clang/$clang_version/include,cmake}}
32
32
+
rm -f $out/lib/libc++.so
33
33
+
done
34
34
+
35
35
+
ln -s $out/lib/* $out/lib/clang/$clang_version/lib
36
36
+
ln -sf $out/include/* $out/lib/clang/$clang_version/include
37
37
+
38
38
+
runHook postInstall
39
39
+
'';
40
40
+
41
41
+
passthru.isClang = true;
42
42
+
});
43
43
+
44
44
+
extraPackages = [
45
45
+
llvm
46
46
+
lld
47
47
+
libc
48
48
+
libunwind
49
49
+
libcxxabi
50
50
+
compiler-rt
51
51
+
];
52
52
+
53
53
+
nixSupport.cc-cflags = [
54
54
+
"-resource-dir=$out/resource-root"
55
55
+
"-fuse-ld=lld"
56
56
+
"-rtlib=compiler-rt"
57
57
+
"-unwindlib=libunwind"
58
58
+
"-Wno-unused-command-line-argument"
59
59
+
];
60
60
+
61
61
+
extraBuildCommands = ''
62
62
+
clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
63
63
+
mkdir -p $out/resource-root
64
64
+
ln -s ${cc}/lib/clang/$clang_version/{include,lib} $out/resource-root
65
65
+
66
66
+
# Not sure why, but hardening seems to make things break
67
67
+
echo "" > $out/nix-support/add-hardening.sh
68
68
+
69
69
+
# GPU compilation uses builtin `lld`
70
70
+
substituteInPlace $out/bin/{clang,clang++} \
71
71
+
--replace "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;"
72
72
+
'';
73
73
+
}
+33
pkgs/development/rocm-modules/5/llvm/stage-3/flang.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, clang-unwrapped
5
5
+
, mlir
6
6
+
, python3Packages
7
7
+
}:
8
8
+
9
9
+
callPackage ../base.nix rec {
10
10
+
inherit stdenv rocmUpdateScript;
11
11
+
buildTests = false; # `Executable "flang1" doesn't exist!`
12
12
+
targetName = "flang";
13
13
+
targetDir = targetName;
14
14
+
extraNativeBuildInputs = [ python3Packages.sphinx-markdown-tables ];
15
15
+
extraBuildInputs = [ mlir ];
16
16
+
17
17
+
extraCMakeFlags = [
18
18
+
"-DCMAKE_POLICY_DEFAULT_CMP0116=NEW"
19
19
+
"-DCLANG_DIR=${clang-unwrapped}/lib/cmake/clang"
20
20
+
"-DFLANG_INCLUDE_TESTS=OFF"
21
21
+
"-DMLIR_TABLEGEN_EXE=${mlir}/bin/mlir-tblgen"
22
22
+
];
23
23
+
24
24
+
extraPostPatch = ''
25
25
+
substituteInPlace test/CMakeLists.txt \
26
26
+
--replace "FileCheck" "" \
27
27
+
--replace "count" "" \
28
28
+
--replace "not" ""
29
29
+
30
30
+
substituteInPlace docs/CMakeLists.txt \
31
31
+
--replace "CLANG_TABLEGEN_EXE clang-tblgen" "CLANG_TABLEGEN_EXE ${clang-unwrapped}/bin/clang-tblgen"
32
32
+
'';
33
33
+
}
+36
pkgs/development/rocm-modules/5/llvm/stage-3/libclc.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, llvm
5
5
+
, clang
6
6
+
, spirv-llvm-translator
7
7
+
}:
8
8
+
9
9
+
let
10
10
+
spirv = (spirv-llvm-translator.override { inherit llvm; });
11
11
+
in callPackage ../base.nix rec {
12
12
+
inherit stdenv rocmUpdateScript;
13
13
+
buildDocs = false; # No documentation to build
14
14
+
buildMan = false; # No man pages to build
15
15
+
targetName = "libclc";
16
16
+
targetDir = targetName;
17
17
+
extraBuildInputs = [ spirv ];
18
18
+
19
19
+
# `spirv-mesa3d` isn't compiling with LLVM 15.0.0, it does with LLVM 14.0.0
20
20
+
# Try removing the `spirv-mesa3d` and `clspv` patches next update
21
21
+
# `clspv` tests fail, unresolved calls
22
22
+
extraPostPatch = ''
23
23
+
substituteInPlace CMakeLists.txt \
24
24
+
--replace "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
25
25
+
"find_program( LLVM_CLANG clang PATHS \"${clang}/bin\" NO_DEFAULT_PATH )" \
26
26
+
--replace "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
27
27
+
"find_program( LLVM_SPIRV llvm-spirv PATHS \"${spirv}/bin\" NO_DEFAULT_PATH )" \
28
28
+
--replace " spirv-mesa3d-" "" \
29
29
+
--replace " spirv64-mesa3d-" "" \
30
30
+
--replace "NOT \''${t} MATCHES" \
31
31
+
"NOT \''${ARCH} STREQUAL \"clspv\" AND NOT \''${ARCH} STREQUAL \"clspv64\" AND NOT \''${t} MATCHES"
32
32
+
'';
33
33
+
34
34
+
checkTargets = [ ];
35
35
+
isBroken = true; # ROCm 5.7.0 doesn't have IR/AttributeMask.h yet...?
36
36
+
}
+39
pkgs/development/rocm-modules/5/llvm/stage-3/lldb.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
, clang
5
5
+
, xz
6
6
+
, swig
7
7
+
, lua5_3
8
8
+
, graphviz
9
9
+
, gtest
10
10
+
, python3Packages
11
11
+
}:
12
12
+
13
13
+
callPackage ../base.nix rec {
14
14
+
inherit stdenv rocmUpdateScript;
15
15
+
buildTests = false; # FIXME: Bad pathing for clang executable in tests, using relative path most likely
16
16
+
targetName = "lldb";
17
17
+
targetDir = targetName;
18
18
+
extraNativeBuildInputs = [ python3Packages.sphinx-automodapi ];
19
19
+
20
20
+
extraBuildInputs = [
21
21
+
xz
22
22
+
swig
23
23
+
lua5_3
24
24
+
graphviz
25
25
+
gtest
26
26
+
];
27
27
+
28
28
+
extraCMakeFlags = [
29
29
+
"-DLLDB_EXTERNAL_CLANG_RESOURCE_DIR=${clang}/resource-root/lib/clang/$clang_version"
30
30
+
"-DLLDB_INCLUDE_TESTS=ON"
31
31
+
"-DLLDB_INCLUDE_UNITTESTS=ON"
32
32
+
];
33
33
+
34
34
+
extraPostPatch = ''
35
35
+
export clang_version=`clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
36
36
+
'';
37
37
+
38
38
+
checkTargets = [ "check-${targetName}" ];
39
39
+
}
+67
pkgs/development/rocm-modules/5/llvm/stage-3/mlir.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
# , hip
5
5
+
# , rocm-comgr
6
6
+
, vulkan-headers
7
7
+
, vulkan-loader
8
8
+
, glslang
9
9
+
, shaderc
10
10
+
, lit
11
11
+
}:
12
12
+
13
13
+
callPackage ../base.nix rec {
14
14
+
inherit stdenv rocmUpdateScript;
15
15
+
buildDocs = false; # No decent way to hack this to work
16
16
+
buildMan = false; # No man pages to build
17
17
+
targetName = "mlir";
18
18
+
targetDir = targetName;
19
19
+
# extraNativeBuildInputs = [ hip ];
20
20
+
21
21
+
extraBuildInputs = [
22
22
+
# rocm-comgr
23
23
+
vulkan-headers
24
24
+
vulkan-loader
25
25
+
glslang
26
26
+
shaderc
27
27
+
];
28
28
+
29
29
+
extraCMakeFlags = [
30
30
+
"-DCMAKE_POLICY_DEFAULT_CMP0116=NEW"
31
31
+
"-DMLIR_INCLUDE_DOCS=ON"
32
32
+
"-DMLIR_INCLUDE_TESTS=ON"
33
33
+
"-DMLIR_ENABLE_ROCM_RUNNER=ON"
34
34
+
"-DMLIR_ENABLE_SPIRV_CPU_RUNNER=ON"
35
35
+
"-DMLIR_ENABLE_VULKAN_RUNNER=ON"
36
36
+
"-DROCM_TEST_CHIPSET=gfx000" # CPU runner
37
37
+
];
38
38
+
39
39
+
extraPostPatch = ''
40
40
+
chmod +w ../llvm
41
41
+
mkdir -p ../llvm/build/bin
42
42
+
ln -s ${lit}/bin/lit ../llvm/build/bin/llvm-lit
43
43
+
44
44
+
substituteInPlace test/CMakeLists.txt \
45
45
+
--replace "FileCheck count not" "" \
46
46
+
--replace "list(APPEND MLIR_TEST_DEPENDS mlir_rocm_runtime)" ""
47
47
+
48
48
+
substituteInPlace lib/ExecutionEngine/CMakeLists.txt \
49
49
+
--replace "return()" ""
50
50
+
51
51
+
# Remove problematic tests
52
52
+
rm test/CAPI/execution_engine.c
53
53
+
rm test/Target/LLVMIR/llvmir-intrinsics.mlir
54
54
+
rm test/Target/LLVMIR/llvmir.mlir
55
55
+
rm test/Target/LLVMIR/openmp-llvm.mlir
56
56
+
rm test/mlir-cpu-runner/*.mlir
57
57
+
rm test/mlir-vulkan-runner/*.mlir
58
58
+
'';
59
59
+
60
60
+
extraPostInstall = ''
61
61
+
mkdir -p $out/bin
62
62
+
mv bin/mlir-tblgen $out/bin
63
63
+
'';
64
64
+
65
65
+
checkTargets = [ "check-${targetName}" ];
66
66
+
requiredSystemFeatures = [ "big-parallel" ];
67
67
+
}
+45
pkgs/development/rocm-modules/5/llvm/stage-3/openmp.nix
···
1
1
+
{ lib
2
2
+
, stdenv
3
3
+
, callPackage
4
4
+
, rocmUpdateScript
5
5
+
, llvm
6
6
+
, clang
7
7
+
, clang-unwrapped
8
8
+
# , rocm-device-libs
9
9
+
# , rocm-runtime
10
10
+
, perl
11
11
+
, elfutils
12
12
+
, lit
13
13
+
}:
14
14
+
15
15
+
callPackage ../base.nix rec {
16
16
+
inherit stdenv rocmUpdateScript;
17
17
+
buildTests = false; # Too many failures, most pass
18
18
+
targetName = "openmp";
19
19
+
targetDir = targetName;
20
20
+
extraNativeBuildInputs = [ perl ];
21
21
+
22
22
+
extraBuildInputs = [
23
23
+
# rocm-device-libs
24
24
+
# rocm-runtime
25
25
+
elfutils
26
26
+
];
27
27
+
28
28
+
extraCMakeFlags = [
29
29
+
"-DCMAKE_MODULE_PATH=/build/source/llvm/cmake/modules" # For docs
30
30
+
"-DCLANG_TOOL=${clang}/bin/clang"
31
31
+
"-DCLANG_OFFLOAD_BUNDLER_TOOL=${clang-unwrapped}/bin/clang-offload-bundler"
32
32
+
"-DOPENMP_LLVM_TOOLS_DIR=${llvm}/bin"
33
33
+
"-DOPENMP_LLVM_LIT_EXECUTABLE=${lit}/bin/.lit-wrapped"
34
34
+
# "-DDEVICELIBS_ROOT=${rocm-device-libs.src}"
35
35
+
];
36
36
+
37
37
+
extraPostPatch = ''
38
38
+
# We can't build this target at the moment
39
39
+
substituteInPlace libomptarget/DeviceRTL/CMakeLists.txt \
40
40
+
--replace "gfx1010" ""
41
41
+
'';
42
42
+
43
43
+
checkTargets = [ "check-${targetName}" ];
44
44
+
extraLicenses = [ lib.licenses.mit ];
45
45
+
}
+18
pkgs/development/rocm-modules/5/llvm/stage-3/polly.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
targetName = "polly";
9
9
+
targetDir = targetName;
10
10
+
11
11
+
extraPostPatch = ''
12
12
+
# `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
13
13
+
substituteInPlace CMakeLists.txt \
14
14
+
--replace "NOT TARGET gtest" "FALSE"
15
15
+
'';
16
16
+
17
17
+
checkTargets = [ "check-${targetName}" ];
18
18
+
}
+15
pkgs/development/rocm-modules/5/llvm/stage-3/pstl.nix
···
1
1
+
{ stdenv
2
2
+
, callPackage
3
3
+
, rocmUpdateScript
4
4
+
}:
5
5
+
6
6
+
callPackage ../base.nix rec {
7
7
+
inherit stdenv rocmUpdateScript;
8
8
+
buildDocs = false; # No documentation to build
9
9
+
buildMan = false; # No man pages to build
10
10
+
buildTests = false; # Too many errors
11
11
+
targetName = "pstl";
12
12
+
targetDir = "runtimes";
13
13
+
targetRuntimes = [ targetName ];
14
14
+
checkTargets = [ "check-${targetName}" ];
15
15
+
}
+1
-1
pkgs/development/rocm-modules/update-script/default.nix
pkgs/development/rocm-modules/5/update.nix
···
12
12
let
13
13
pname =
14
14
if lib.hasPrefix "rocm-llvm-" name
15
15
-
then "llvmPackages_rocm.${lib.removePrefix "rocm-llvm-" name}"
15
15
+
then "rocmPackages_5.llvm.${lib.removePrefix "rocm-llvm-" name}"
16
16
else name;
17
17
18
18
updateScript = writeScript "update.sh" ''
+1
-1
pkgs/test/default.nix
···
8
8
llvmTests = let
9
9
pkgSets = lib.pipe pkgNames [
10
10
(filter (lib.hasPrefix "llvmPackages"))
11
11
-
(filter (n: n != "llvmPackages_rocm"))
11
11
+
(filter (n: n != "rocmPackages.llvm"))
12
12
(filter (n: n != "llvmPackages_latest"))
13
13
(filter (n: n != "llvmPackages_git"))
14
14
];
+17
-19
pkgs/top-level/all-packages.nix
···
7766
7766
7767
7767
rar2fs = callPackage ../tools/filesystems/rar2fs { };
7768
7768
7769
7769
+
rocmPackages = rocmPackages_5;
7770
7770
+
rocmPackages_5 = recurseIntoAttrs (callPackage ../development/rocm-modules/5 { });
7771
7771
+
7769
7772
rune = callPackage ../development/interpreters/rune { };
7770
7773
7771
7774
s9fes = callPackage ../development/interpreters/s9fes { };
···
15716
15719
clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
15717
15720
clang-sierraHack-stdenv = overrideCC stdenv buildPackages.clang-sierraHack;
15718
15721
libcxxStdenv = if stdenv.isDarwin then stdenv else lowPrio llvmPackages.libcxxStdenv;
15719
15719
-
rocmClangStdenv = llvmPackages_rocm.rocmClangStdenv;
15720
15722
15721
15723
clean = callPackage ../development/compilers/clean { };
15722
15724
···
16771
16773
targetLlvm = targetPackages.llvmPackages_16.llvm or llvmPackages_16.llvm;
16772
16774
}));
16773
16775
16774
16774
-
llvmPackages_rocm = recurseIntoAttrs (callPackage ../development/compilers/llvm/rocm { });
16775
16775
-
16776
16776
lorri = callPackage ../tools/misc/lorri {
16777
16777
inherit (darwin.apple_sdk.frameworks) CoreServices Security;
16778
16778
};
···
16958
16958
rml = callPackage ../development/compilers/rml { };
16959
16959
16960
16960
composable_kernel = callPackage ../development/libraries/composable_kernel {
16961
16961
-
inherit (llvmPackages_rocm) openmp clang-tools-extra;
16961
16961
+
inherit (rocmPackages.llvm) openmp clang-tools-extra;
16962
16962
stdenv = rocmClangStdenv;
16963
16963
};
16964
16964
···
16977
16977
};
16978
16978
16979
16979
hip-common = callPackage ../development/compilers/hip-common {
16980
16980
-
inherit (llvmPackages_rocm) llvm;
16980
16980
+
inherit (rocmPackages.llvm) llvm;
16981
16981
stdenv = rocmClangStdenv;
16982
16982
};
16983
16983
16984
16984
hipcc = callPackage ../development/compilers/hipcc {
16985
16985
-
inherit (llvmPackages_rocm) llvm;
16985
16985
+
inherit (rocmPackages.llvm) llvm;
16986
16986
stdenv = rocmClangStdenv;
16987
16987
};
16988
16988
16989
16989
hip = callPackage ../development/compilers/hip {
16990
16990
-
inherit (llvmPackages_rocm) llvm;
16990
16990
+
inherit (rocmPackages.llvm) llvm;
16991
16991
inherit (cudaPackages) cudatoolkit;
16992
16992
stdenv = rocmClangStdenv;
16993
16993
};
···
17009
17009
};
17010
17010
17011
17011
hipsparse = callPackage ../development/libraries/hipsparse {
17012
17012
-
inherit (llvmPackages_rocm) openmp;
17012
17012
+
inherit (rocmPackages.llvm) openmp;
17013
17013
stdenv = rocmClangStdenv;
17014
17014
};
17015
17015
···
17018
17018
};
17019
17019
17020
17020
hipfft = callPackage ../development/libraries/hipfft {
17021
17021
-
inherit (llvmPackages_rocm) openmp;
17021
17021
+
inherit (rocmPackages.llvm) openmp;
17022
17022
stdenv = rocmClangStdenv;
17023
17023
};
17024
17024
···
17031
17031
};
17032
17032
17033
17033
migraphx = callPackage ../development/libraries/migraphx {
17034
17034
-
inherit (llvmPackages_rocm) clang-tools-extra openmp;
17034
17034
+
inherit (rocmPackages.llvm) clang-tools-extra openmp;
17035
17035
stdenv = rocmClangStdenv;
17036
17036
rocmlir = rocmlir-rock;
17037
17037
};
···
17049
17049
};
17050
17050
17051
17051
rocalution = callPackage ../development/libraries/rocalution {
17052
17052
-
inherit (llvmPackages_rocm) openmp;
17052
17052
+
inherit (rocmPackages.llvm) openmp;
17053
17053
stdenv = rocmClangStdenv;
17054
17054
};
17055
17055
···
17122
17122
};
17123
17123
17124
17124
rocfft = callPackage ../development/libraries/rocfft {
17125
17125
-
inherit (llvmPackages_rocm) openmp;
17125
17125
+
inherit (rocmPackages.llvm) openmp;
17126
17126
stdenv = rocmClangStdenv;
17127
17127
};
17128
17128
···
17135
17135
};
17136
17136
17137
17137
rocwmma = callPackage ../development/libraries/rocwmma {
17138
17138
-
inherit (llvmPackages_rocm) openmp;
17138
17138
+
inherit (rocmPackages.llvm) openmp;
17139
17139
stdenv = rocmClangStdenv;
17140
17140
};
17141
17141
17142
17142
rocblas = callPackage ../development/libraries/rocblas {
17143
17143
-
inherit (llvmPackages_rocm) openmp;
17143
17143
+
inherit (rocmPackages.llvm) openmp;
17144
17144
stdenv = rocmClangStdenv;
17145
17145
};
17146
17146
···
17153
17153
};
17154
17154
17155
17155
miopen = callPackage ../development/libraries/miopen {
17156
17156
-
inherit (llvmPackages_rocm) llvm clang-tools-extra;
17156
17156
+
inherit (rocmPackages.llvm) llvm clang-tools-extra;
17157
17157
stdenv = rocmClangStdenv;
17158
17158
rocmlir = rocmlir-rock;
17159
17159
boost = boost179.override { enableStatic = true; };
···
17167
17167
useOpenCL = true;
17168
17168
};
17169
17169
17170
17170
-
rocmUpdateScript = callPackage ../development/rocm-modules/update-script { };
17171
17171
-
17172
17170
# Requires GCC
17173
17171
roctracer = callPackage ../development/libraries/roctracer {
17174
17174
-
inherit (llvmPackages_rocm) clang;
17172
17172
+
inherit (rocmPackages.llvm) clang;
17175
17173
};
17176
17174
17177
17175
rtags = callPackage ../development/tools/rtags {
···
39477
39475
lie = callPackage ../applications/science/math/LiE { };
39478
39476
39479
39477
inherit (callPackage ../development/libraries/science/math/magma {
39480
39480
-
inherit (llvmPackages_rocm) openmp;
39478
39478
+
inherit (rocmPackages.llvm) openmp;
39481
39479
}) magma magma_2_7_2 magma_2_6_2;
39482
39480
39483
39481
magma-cuda = magma.override {
+2
-2
pkgs/top-level/python-packages.nix
···
8349
8349
8350
8350
open-meteo = callPackage ../development/python-modules/open-meteo { };
8351
8351
8352
8352
-
openai-triton = callPackage ../development/python-modules/openai-triton { llvmPackages = pkgs.llvmPackages_rocm; };
8352
8352
+
openai-triton = callPackage ../development/python-modules/openai-triton { llvmPackages = pkgs.rocmPackages.llvm; };
8353
8353
8354
8354
openai-triton-bin = callPackage ../development/python-modules/openai-triton/bin.nix { };
8355
8355
···
13902
13902
else pkgs.magma;
13903
13903
inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreServices;
13904
13904
inherit (pkgs.darwin) libobjc;
13905
13905
-
inherit (pkgs.llvmPackages_rocm) openmp;
13905
13905
+
inherit (pkgs.rocmPackages.llvm) openmp;
13906
13906
};
13907
13907
13908
13908
torch-bin = callPackage ../development/python-modules/torch/bin.nix {