Commit Graph

19 Commits

Author SHA1 Message Date
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
nixpkgs-ci[bot]
ad3c932e68 Merge staging-next into staging 2026-06-08 00:49:28 +00:00
Tristan Ross
0917fee1c3 llvmPackages_git: 23.0.0-unstable-2026-05-24 -> 23.0.0-unstable-2026-05-31 2026-05-31 22:49:57 -07: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
K900
b715e74ab2 Merge remote-tracking branch 'origin/master' into staging-next 2025-12-22 21:42:30 +03:00
Tristan Ross
1f0c5e638b llvmPackages_git: 22.0.0-unstable-2025-12-14 -> 22.0.0-unstable-2025-12-21 2025-12-21 19:44:49 -08:00
ghpzin
9ecbf0230d llvmPackages_{18,19}.mlir: fix build with gcc15
- add patch from 2 upstream commits that were not backported to llvm_18
and llvm_19:

41eb186fbb
Fixes build failure with gcc15:
```
In file included from /build/mlir-src-18.1.8/mlir/lib/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.cpp:9:
/build/mlir-src-18.1.8/mlir/include/mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h:31:11:
error: 'int64_t' was not declared in this scope
   31 | FailureOr<int64_t> fullyComposeAndComputeConstantDelta(Value value1,
      |           ^~~~~~~
/build/mlir-src-18.1.8/mlir/include/mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h:13:1:
note: 'int64_t' is defined in header '<cstdint>'; this is probably
fixable by adding '#include <cstdint>'
   12 | #include "mlir/Support/LogicalResult.h"
  +++ |+#include <cstdint>
   13 |
```

101109fc54
Fixes failure with gcc15:
```
In file included from /build/mlir-src-19.1.7/mlir/lib/Target/SPIRV/Deserialization/Deserialization.cpp:9:
/build/mlir-src-19.1.7/mlir/include/mlir/Target/SPIRV/Deserialization.h:29:51:
error: 'uint32_t' was not declared in this scope
   29 | OwningOpRef<spirv::ModuleOp> deserialize(ArrayRef<uint32_t> binary,
      |                                                   ^~~~~~~~
/build/mlir-src-19.1.7/mlir/include/mlir/Target/SPIRV/Deserialization.h:18:1:
note: 'uint32_t' is defined in header '<cstdint>'; this is probably
fixable by adding '#include <cstdint>'
   17 | #include "mlir/Support/LLVM.h"
  +++ |+#include <cstdint>
   18 |
```

First patch can be applied with `fetchpatch`, but only on llvm_19, because
of changed include line right above.
So use 2 versions of combined patches with 2 commits.
2025-12-04 07:21:16 +03:00
Tristan Ross
d55bbdcbf5 llvmPackages_20.libclc: rebase use-default-paths patch 2025-09-15 20:33:57 -07:00
Emily
2dac87bbde llvmPackages_17: drop 2025-09-14 19:03:24 +01:00
Emily
a892ce396d llvmPackages_16: drop 2025-09-14 19:03:24 +01:00
Emily
77acbe1f9c llvmPackages_15: drop 2025-09-14 19:03:24 +01:00
Emily
f470ea24b6 llvmPackages_14: drop 2025-09-14 19:03:24 +01:00
Emily
791fe23b63 llvmPackages_13: drop 2025-09-14 19:03:24 +01:00
Emily
9b8a66c3a4 llvmPackages_12: drop 2025-09-14 19:03:24 +01:00
blenderfreaky
fd261cb094 llvmPackages_{20,21}.libclc: reenable and update patches 2025-08-29 21:45:56 +02:00
Tristan Ross
2e8a2ab9e3 llvmPackages_git: 22.0.0-unstable-2025-08-17 -> 22.0.0-unstable-2025-08-24 2025-08-27 19:22:20 +02:00
Michael Daniels
788161457d llvm_{12,13,14,15}: fix build with Python 3.13
Python 3.13 removed the "pipes" module, which LLVM used through v16.

So we need a patch. It's only used once though!

A similar patch was used by Arch: https://gitlab.archlinux.org/archlinux/packaging/packages/llvm15/-/blob/main/nopipes.diff?ref_type=heads
2025-05-30 21:37:33 -04: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
Tristan Ross
3cbbfb1795 pkgs/development/compilers/llvm/common/default.nix: move patches into… (#389658)
pkgs/development/compilers/llvm/common/default.nix: move patches into patches.nix
2025-03-16 23:36:53 -04:00