7 Commits

Author SHA1 Message Date
Ihar Hrachyshka
3a76fb80bb llvmPackages.mlir: version tablegen patch
The patch failed to apply on 18 and 19. We have to version it.

LLVM 18 has no MLIR_SRC_SHARDER_TABLEGEN_EXE. LLVM 19 and 20 fail to
apply the 21+ patch due to mechanical hunk failures, but otherwise use
an identical patch to 21+.
2026-09-06 21:44:24 -04:00
Randy Eckenrode
6fb7a4dc0c llvmPackages_{18,19,20,21,22}.libllvm: backport Darwin triple parsing
This fixes breakage on triples for macOS 27, which aligned the Darwin
version with the OS version (darwin26 is macOS 27, but so is darwin27,
which will be incorrectly interpreted as macOS 28 without this patch).
This is probably harmless in most cases, but it causes a test failure in
LLVM’s test suite when running under macOS 27.
2026-08-16 06:59:26 -04:00
K900
935c23a7e9 libclc: drop
Nothing but Mesa uses it, and Mesa uses mesa-libclc now,
so simplify the LLVM builds by deleting this.
2026-08-06 17:26:46 +03:00
whispers
f8a025c964 llvm_21: backport patch for selectiondag freeze condition miscompile
Several LLVM versions have a bug in SelectionDAG that causes
miscompilations around conditional poisions. This was exposed due to
Rust 1.97.0 exercising the involved code path heavily and generating
segfaulting code, but the bug existed beforehand as well. The patch was
made to LLVM 23, but the tests have many conflicts, so this is a manual
backport. This backport was made by:

- applying the code change to `llvm/lib`
- hand-updating `test/CodeGen/Mips/cmov.ll` with the same diff as the PR
- updating the rest with `utils/update_llc_test_checks.py` from the LLVM
  source tree, and verifying the diff against the one in the PR.

The last step made this a rather large and gnarly patch, but it's mostly
mechanical.

Rust issue: https://github.com/rust-lang/rust/issues/159035
LLVM issue: https://github.com/llvm/llvm-project/issues/208611
LLVM PR: https://github.com/llvm/llvm-project/pull/208683
2026-07-15 07:16:19 -04:00
Acture
1ba36147a8 flang: package standalone flang with LLVM 20+ driver fixes
Wire flang into llvmPackages as a first-class Fortran compiler. flang
is built standalone on top of the LLVM/clang package set rather than
bundled into the llvm derivation, with passthru metadata
(`langFortran`, `isFlang`, `isClang`, `hardeningUnsupportedFlags`) so
cc-wrapper and downstream tooling can detect and adapt to it.

Driver compatibility patches backported from upstream are applied
selectively per LLVM version:

  * `use-xflang-in-diagnostics` is applied to LLVM 20 and newer; it
    teaches the driver to suggest `-Xflang` instead of `-Xclang` in
    error messages for options only available to `flang -fc1`.
  * `warn-on-fbuiltin-and-fno-builtin` and
    `accept-and-ignore-some-gfortran-optimization-flags` are applied
    to LLVM 20 and 21 only. LLVM 22 has equivalent behaviour merged
    upstream (`warn_drv_invalid_argument_for_flang` and
    `clang_ignored_gcc_optimization_f_Group` handling in
    clang/lib/Driver/ToolChains/Flang.cpp), so the patches are skipped
    there.

Patches live under pkgs/development/compilers/llvm/21/flang/ and are
shared across versions via patches.nix. They are applied to a private
libclang variant rather than the flang source tree because standalone
flang resolves driver/option definitions through the installed libclang
package.

Two focused passthru tests are added:

  * `compile-smoke` exercises basic compilation and `@response-file`
    handling.
  * `driver-flags` covers wrapper flag isolation
    (`NIX_CFLAGS_COMPILE` must not leak into flang;
    `NIX_FFLAGS_COMPILE` must reach it), the backported driver
    diagnostics, and regression coverage for previously hard-erroring
    flags.

Build on the earlier standalone flang work by @picostove.

Co-authored-by: stove <stove@rivosinc.com>
Co-authored-by: acture <acture@gmail.com>
Co-authored-by: Alyssa Ross <hi@alyssa.is>
2026-05-04 18:06:36 +08:00
blenderfreaky
fd261cb094 llvmPackages_{20,21}.libclc: reenable and update patches 2025-08-29 21:45:56 +02:00
Tristan Ross
17ef8f50b7 llvmPackages_git: 21.0.0-unstable-2025-04-13 -> 21.0.0-unstable-2025-04-27 2025-04-27 22:37:41 -07:00