flake: update to LLVM 14 and llvmlite 0.40.0+master

This commit is contained in:
Egor Savkin 2023-06-09 13:25:08 +08:00 committed by GitHub
parent 30ef8d8cb4
commit c25c0bd55a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 15 deletions

View File

@ -18,13 +18,13 @@ def entrypoint():
return_str() return_str()
# CHECK: declare void @accept_str\({ i8\*, i32 }\* byval\) # CHECK: declare void @accept_str\({ i8\*, i32 }\* byval\({ i8\*, i32 }\)\)
@syscall @syscall
def accept_str(name: TStr) -> TNone: def accept_str(name: TStr) -> TNone:
pass pass
# CHECK: declare void @return_str\({ i8\*, i32 }\* sret\) # CHECK: declare void @return_str\({ i8\*, i32 }\* sret\({ i8\*, i32 }\)\)
@syscall @syscall
def return_str() -> TStr: def return_str() -> TStr:
pass pass

View File

@ -15,7 +15,7 @@ def foo() -> TNone:
# sret nowrite functions shouldn't be marked inaccessiblememonly. # sret nowrite functions shouldn't be marked inaccessiblememonly.
# CHECK-L: ; Function Attrs: nounwind # CHECK-L: ; Function Attrs: nounwind
# CHECK-NEXT-L: declare void @bar({ i32, i64 }* sret) # CHECK-NEXT-L: declare void @bar({ i32, i64 }* sret({ i32, i64 }))
@syscall(flags={"nounwind", "nowrite"}) @syscall(flags={"nounwind", "nowrite"})
def bar() -> TTuple([TInt32, TInt64]): def bar() -> TTuple([TInt32, TInt64]):
pass pass

View File

@ -111,6 +111,28 @@
''; '';
}; };
llvmlite-new = pkgs.python3Packages.buildPythonPackage rec {
pname = "llvmlite";
version = "0.40.0";
src = pkgs.fetchFromGitHub {
owner = "numba";
repo = "llvmlite";
rev = "70f057b59a9d11de1c4d1792aabe6d5bf24eacc3";
sha256 = "sha256-8t8fg8LnNC4wRPBcP0Il1ibHTBTqEd4mkis/CjsAO5c=";
};
nativeBuildInputs = [ pkgs.llvm_14 ];
# Disable static linking
# https://github.com/numba/llvmlite/issues/93
postPatch = ''
substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
'';
# Set directory containing llvm-config binary
preConfigure = ''
export LLVM_CONFIG=${pkgs.llvm_14.dev}/bin/llvm-config
'';
};
artiq-upstream = pkgs.python3Packages.buildPythonPackage rec { artiq-upstream = pkgs.python3Packages.buildPythonPackage rec {
pname = "artiq"; pname = "artiq";
version = artiqVersion; version = artiqVersion;
@ -124,8 +146,8 @@
nativeBuildInputs = [ pkgs.qt5.wrapQtAppsHook ]; nativeBuildInputs = [ pkgs.qt5.wrapQtAppsHook ];
# keep llvm_x and lld_x in sync with llvmlite # keep llvm_x and lld_x in sync with llvmlite
propagatedBuildInputs = [ pkgs.llvm_11 pkgs.lld_11 sipyco.packages.x86_64-linux.sipyco pythonparser pkgs.qt5.qtsvg artiq-comtools.packages.x86_64-linux.artiq-comtools ] propagatedBuildInputs = [ pkgs.llvm_14 pkgs.lld_11 sipyco.packages.x86_64-linux.sipyco pythonparser artiq-comtools.packages.x86_64-linux.artiq-comtools llvmlite-new ]
++ (with pkgs.python3Packages; [ llvmlite pyqtgraph pygit2 numpy dateutil scipy prettytable pyserial levenshtein h5py pyqt5 qasync tqdm lmdb jsonschema ]); ++ (with pkgs.python3Packages; [ pyqtgraph pygit2 numpy dateutil scipy prettytable pyserial levenshtein h5py pyqt5 qasync tqdm lmdb jsonschema ]);
dontWrapQtApps = true; dontWrapQtApps = true;
postFixup = '' postFixup = ''
@ -147,10 +169,10 @@
"--set FONTCONFIG_FILE ${pkgs.fontconfig.out}/etc/fonts/fonts.conf" "--set FONTCONFIG_FILE ${pkgs.fontconfig.out}/etc/fonts/fonts.conf"
]; ];
# FIXME: automatically propagate lld_11 llvm_11 dependencies # FIXME: automatically propagate lld_11 llvm_14 dependencies
# cacert is required in the check stage only, as certificates are to be # cacert is required in the check stage only, as certificates are to be
# obtained from system elsewhere # obtained from system elsewhere
nativeCheckInputs = [ pkgs.lld_11 pkgs.llvm_11 libartiq-support pkgs.lit outputcheck pkgs.cacert ]; nativeCheckInputs = [ pkgs.lld_11 pkgs.llvm_14 libartiq-support pkgs.lit outputcheck pkgs.cacert ];
checkPhase = '' checkPhase = ''
python -m unittest discover -v artiq.test python -m unittest discover -v artiq.test
@ -227,8 +249,8 @@
(pkgs.python3.withPackages(ps: [ migen misoc (artiq.withExperimentalFeatures experimentalFeatures) ps.packaging ])) (pkgs.python3.withPackages(ps: [ migen misoc (artiq.withExperimentalFeatures experimentalFeatures) ps.packaging ]))
rust rust
pkgs.cargo-xbuild pkgs.cargo-xbuild
pkgs.llvmPackages_11.clang-unwrapped pkgs.llvmPackages_14.clang-unwrapped
pkgs.llvm_11 pkgs.llvm_14
pkgs.lld_11 pkgs.lld_11
vivado vivado
rustPlatform.cargoSetupHook rustPlatform.cargoSetupHook
@ -325,7 +347,7 @@
}; };
in rec { in rec {
packages.x86_64-linux = { packages.x86_64-linux = {
inherit pythonparser qasync artiq; inherit pythonparser llvmlite-new qasync artiq;
inherit migen misoc asyncserial microscope vivadoEnv vivado; inherit migen misoc asyncserial microscope vivadoEnv vivado;
openocd-bscanspi = openocd-bscanspi-f pkgs; openocd-bscanspi = openocd-bscanspi-f pkgs;
artiq-board-kc705-nist_clock = makeArtiqBoardPackage { artiq-board-kc705-nist_clock = makeArtiqBoardPackage {
@ -390,8 +412,8 @@
(pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ migen misoc ps.paramiko microscope ps.packaging ] ++ artiq.propagatedBuildInputs )) (pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ migen misoc ps.paramiko microscope ps.packaging ] ++ artiq.propagatedBuildInputs ))
rust rust
pkgs.cargo-xbuild pkgs.cargo-xbuild
pkgs.llvmPackages_11.clang-unwrapped pkgs.llvmPackages_14.clang-unwrapped
pkgs.llvm_11 pkgs.llvm_14
pkgs.lld_11 pkgs.lld_11
# To manually run compiler tests: # To manually run compiler tests:
pkgs.lit pkgs.lit
@ -418,8 +440,8 @@
(pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ migen misoc artiq ps.packaging ])) (pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ migen misoc artiq ps.packaging ]))
rust rust
pkgs.cargo-xbuild pkgs.cargo-xbuild
pkgs.llvmPackages_11.clang-unwrapped pkgs.llvmPackages_14.clang-unwrapped
pkgs.llvm_11 pkgs.llvm_14
pkgs.lld_11 pkgs.lld_11
packages.x86_64-linux.vivado packages.x86_64-linux.vivado
packages.x86_64-linux.openocd-bscanspi packages.x86_64-linux.openocd-bscanspi
@ -453,7 +475,7 @@
buildInputs = [ buildInputs = [
(pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ artiq ps.paramiko ])) (pkgs.python3.withPackages(ps: with packages.x86_64-linux; [ artiq ps.paramiko ]))
pkgs.llvm_11 pkgs.llvm_14
pkgs.lld_11 pkgs.lld_11
pkgs.openssh pkgs.openssh
packages.x86_64-linux.openocd-bscanspi # for the bscanspi bitstreams packages.x86_64-linux.openocd-bscanspi # for the bscanspi bitstreams