Loading
Commits on Source 46
-
Peter Marheine authored
Based on llvm 18.1.0-rc2.
-
Peter Marheine authored
Since the API changes are based on LLVM 18.1.0-rc2, this is currently tagged as a prerelease (-rc2) crate.
-
Peter Marheine authored
-
xbjfk authored
-
Peter Marheine authored
Link system libraries based on crt-static feature. See merge request !43
-
Peter Marheine authored
-
Lukas authored
-
Peter Marheine authored
fix LLVMTargetMachineEmitToFile signature See merge request taricorp/llvm-sys.rs!44
-
Peter Marheine authored
-
Peter Marheine authored
Since the API changes are based on LLVM 19.1.0-rc1, this is currently tagged as a prerelease (-rc1) crate.
-
Peter Marheine authored
-
Peter Marheine authored
-
Yorick Peterse authored
This is needed to ensure that additional libraries such as zstd are found when building.
-
Yorick Peterse authored
Homebrew installs LLVM in non-standard locations, and compilers won't find the necessary libraries without fiddling around with `brew link`, PATH, and LIBRARY_PATH. This updates the build script such that it tries to automatically detect the necessary paths when using Homebrew, removing the need for any manual intervention.
-
Peter Marheine authored
Make it easier to build on macOS and FreeBSD See merge request taricorp/llvm-sys.rs!45
-
Peter Marheine authored
I find I need to look at the implementation to figure out how to use this script every time I use it, so make it print help to avoid that.
-
Peter Marheine authored
Same as the backport script, I never remember how to use it.
-
Peter Marheine authored
Greater distro compatibility is probably more worthwhile than guaranteed static linking. Closes #65.
-
These distros provide llvm-config in their llvm-devel package.
-
vad authored
Before this change, build.rs had two problems which were making it impossible to build on different musl-based Linux environments: - It was assuming that the C++ library on all musl-based systems is LLVM libc++. - In the most cases, it's the opposite. LLVM packaged in Alpine is linked against GNU libstdc++, as well as LLVM tarballs in Rust CI. - Gentoo with musl-llvm profile, even though it links LLVM against libc++, has a different name for the system-wide static library (`/usr/lib/libc++_static.a` instead of `/usr/lib/libc++.a`, which is a link script). - When linking runtime libraries statically (`crt-static`), Cargo doesn't look for the system-wide static libraries in `/usr/lib`, unless that directory is added to the link flags with `-L`. The first point is addressed by: - Linking to libstdc++ by default, even for musl systems. - Ability to override that choice with `LLVM_SYS_LIBCPP` environment variable for environments which use LLVM libc++. The second point is addressed by: - Adding `/usr/lib` and other system dirs to `cargo::rustc-link-search` on Linux with `crt-static` builds. - Exposing `LLVM_SYS_SYSTEM_LIBRARY_DIRS` environment variable, where callers can add additional paths. After this change, building llvm-sys on Alpine can be done just with the usual `cargo build` and `LLVM_SYS_191_PREFIX` variable pointing to the LLVM 19 prefix. In CI, we are using Rust CI tarballs for that. On any Linux environment where LLVM is linked against libc++, llvm-sys can be built with: ``` LLVM_SYS_LIBCPP=c++ cargo build --no-default-features ``` Building llvm-sys Gentoo with llvm-musl profile, where libc++ static library is called `libc++_static.a` and it needs `libc++abi.a` to work, can be done with: ``` LLVM_SYS_LIBCPP=c++_static RUSTFLAGS="-lc++abi" cargo test --no-default-features ``` Unfortunately, the latter configurations are not tested in CI - as for now, there are no publicly available libLLVM binary blobs linked against LLVM libc++ - such configuration requires compilation of LLVM. -
Peter Marheine authored
build: Fix build for variety of musl-based Linux distributions See merge request taricorp/llvm-sys.rs!46
-
Peter Marheine authored
-
Peter Marheine authored
This is a new warning in (or around) Rust 1.80.
-
Peter Marheine authored
-
Peter Marheine authored
llvm.sh seems to have started not installing llvm-$VERSION-dev by default, which leaves llvm-config unavailable so our builds fail.
-
Peter Marheine authored
The requirement for rust 1.65 is inherited from the regex-lite dependency, and upgrading beyond the 2015 edition currently requires code changes to handle changed import rules in Rust 2018.
-
Peter Marheine authored
-
vad authored
Use the `c_char` type instead of `i8` - the type used as `char` (signed or unsigned) differs across architectures.
-
Peter Marheine authored
Improve portability of examples (was: support cross-compilation) See merge request taricorp/llvm-sys.rs!49
-
Alexandru B. Geană authored
See also https://github.com/llvm/llvm-project/pull/99087
-
Peter Marheine authored
add LLVMGetValueContext and LLVMGetBuilderContext See merge request taricorp/llvm-sys.rs!51
-
tamird authored
Seems we're past the limit of the retention period; bump the revision to a slightly newer one to revive our CI.
-
tamird authored
-
tamird authored
-
tamird authored
-
Peter Marheine authored
This applies some clippy-suggested fixes for style, notably changing `since` in deprecations to refer to a crate version rather than LLVM version. The rust snapshot hash is also updated to one that still exists. See merge request !52
-
vad authored
Since the API changes are based on LLVM 20.1.0-rc1, this is currently tagged as a prerelease (-rc1) crate.
-
Peter Marheine authored
Update for LLVM 20 See merge request taricorp/llvm-sys.rs!53
-
Peter Marheine authored
-
Peter Marheine authored
This change fixes the build script's logic for resolving library paths into linker flags when llvm-config returns the path to a static archive; apparently some configurations will behave this way. Fixes #75.
-
Peter Marheine authored
-
Peter Marheine authored
There's work upstream on enabling this, so point to the upstream issue to ease tracking.
-
vad authored
Since the API changes are based on LLVM 21.1.0-rc1, this is currently tagged as a prerelase (-rc1) crate.
-
Peter Marheine authored
Update for LLVM 21 See merge request taricorp/llvm-sys.rs!55
-
Peter Marheine authored