Skip to content

Commit b8f1709

Browse files
committed
Add support for LLVM 20
Support for recursive types was removed in LLVM 20, so let's also remove the test for those.
1 parent c13b41d commit b8f1709

7 files changed

+38
-40
lines changed

.github/workflows/test.yml

+8-7
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,32 @@ jobs:
1010
runs-on: macos-latest
1111
strategy:
1212
matrix:
13-
llvm: [14, 15, 16, 17, 18, 19]
13+
llvm: [14, 15, 16, 17, 18, 19, 20]
1414
steps:
1515
- name: Checkout
1616
uses: actions/checkout@v4
1717
- name: Set up Go
1818
uses: actions/setup-go@v5
1919
with:
2020
go-version: '1.22'
21-
#- name: Update Homebrew
22-
# if: matrix.llvm == 17 # needed as long as LLVM 17 is still fresh
23-
# run: brew update
21+
# Optional step when a LLVM version is very new.
22+
- name: Update Homebrew
23+
if: matrix.llvm == 20
24+
run: brew update
2425
- name: Install LLVM
2526
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install llvm@${{ matrix.llvm }}
2627
- name: Test LLVM ${{ matrix.llvm }}
2728
run:
2829
go test -v -tags=llvm${{ matrix.llvm }}
2930
- name: Test default LLVM
30-
if: matrix.llvm == 19
31+
if: matrix.llvm == 20
3132
run:
3233
go test -v
3334
test-linux:
3435
runs-on: ubuntu-22.04
3536
strategy:
3637
matrix:
37-
llvm: [14, 15, 16, 17, 18, 19]
38+
llvm: [14, 15, 16, 17, 18, 19, 20]
3839
steps:
3940
- name: Checkout
4041
uses: actions/checkout@v4
@@ -52,6 +53,6 @@ jobs:
5253
run:
5354
go test -v -tags=llvm${{ matrix.llvm }}
5455
- name: Test default LLVM
55-
if: matrix.llvm == 19
56+
if: matrix.llvm == 20
5657
run:
5758
go test -v

README.markdown

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ This library provides bindings to a system-installed LLVM.
44

55
Currently supported:
66

7-
* LLVM 19, 18, 17, 16, 15 and 14 from [apt.llvm.org](http://apt.llvm.org/) on Debian/Ubuntu.
8-
* LLVM 19, 18, 17, 16, 15 and 14 from Homebrew on macOS.
9-
* LLVM 19 with a manually built LLVM through the `byollvm` build tag. You
10-
need to set up `CFLAGS`/`LDFLAGS` etc yourself in this case.
7+
* LLVM 20, 19, 18, 17, 16, 15 and 14 from [apt.llvm.org](http://apt.llvm.org/) on Debian/Ubuntu.
8+
* LLVM 20, 19, 18, 17, 16, 15 and 14 from Homebrew on macOS.
9+
* Any of the above versions with a manually built LLVM through the `byollvm` build tag. You need to set up `CFLAGS`/`LDFLAGS` etc yourself in this case.
1110

1211
You can select the LLVM version using a build tag, for example `-tags=llvm17`
1312
to use LLVM 17.

llvm_config_darwin_llvm19.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//go:build !byollvm && darwin && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18
1+
//go:build !byollvm && darwin && llvm19
22

33
package llvm
44

llvm_config_darwin_llvm20.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//go:build !byollvm && darwin && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18 && !llvm19
2+
3+
package llvm
4+
5+
// Automatically generated by `make config BUILDDIR=`, do not edit.
6+
7+
// #cgo amd64 CPPFLAGS: -I/usr/local/opt/llvm@20/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
8+
// #cgo amd64 CXXFLAGS: -std=c++17
9+
// #cgo amd64 LDFLAGS: -L/usr/local/opt/llvm@20/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
10+
// #cgo arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@20/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
11+
// #cgo arm64 CXXFLAGS: -std=c++17
12+
// #cgo arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@20/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
13+
import "C"
14+
15+
type run_build_sh int

llvm_config_linux_llvm19.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18
1+
//go:build !byollvm && linux && llvm19
22

33
package llvm
44

llvm_config_linux_llvm20.go

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//go:build !byollvm && linux && !llvm14 && !llvm15 && !llvm16 && !llvm17 && !llvm18 && !llvm19
2+
3+
package llvm
4+
5+
// #cgo CPPFLAGS: -I/usr/include/llvm-20 -I/usr/include/llvm-c-20 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
6+
// #cgo CXXFLAGS: -std=c++17
7+
// #cgo LDFLAGS: -L/usr/lib/llvm-20/lib -lLLVM-20
8+
import "C"
9+
10+
type run_build_sh int

string_test.go

-27
This file was deleted.

0 commit comments

Comments
 (0)