Skip to content

Commit 131ea04

Browse files
author
Al Hoang
committed
fix compilation on freebsd and add ci
1 parent 5ab4b69 commit 131ea04

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

.github/workflows/test.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,32 @@ jobs:
5555
if: matrix.llvm == 21
5656
run:
5757
go test -v
58+
test-freebsd:
59+
name: test-freebsd
60+
runs-on: ubuntu-latest
61+
strategy:
62+
matrix:
63+
llvm: [19, 20]
64+
steps:
65+
- uses: actions/checkout@v4
66+
- name: FreeBSD test 14.3
67+
uses: vmactions/freebsd-vm@v1
68+
with:
69+
release: '14.3'
70+
usesh: true
71+
prepare: |
72+
# Update package database with IGNORE_OSVERSION
73+
pkg update -f || true
74+
# Install llvm build dependencies
75+
pkg install -y llvm${{ matrix.llvm }}
76+
# Install default version go dependency
77+
pkg install -y go
78+
run: |
79+
# Show environment info
80+
echo "FreeBSD version:"
81+
freebsd-version
82+
# Test with llvm${{ matrix.llvm }}
83+
echo "Clang ${{ matrix.llvm }} version info:"
84+
/usr/local/llvm${{ matrix.llvm }}/bin/clang --version
85+
echo "Test with llvm${{ matrix.llvm }} tag"
86+
go test -v -tags=llvm${{ matrix.llvm }}

llvm_config_llvm19.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ package llvm
88
// #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@19/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
99
// #cgo darwin,arm64 CXXFLAGS: -std=c++17
1010
// #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@19/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
11+
// #cgo freebsd CPPFLAGS: -I/usr/local/llvm19/include -I/usr/local/llvm19/include/llvm-c -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
12+
// #cgo freebsd CXXFLAGS: -std=c++17
13+
// #cgo freebsd LDFLAGS: -L/usr/local/llvm19/lib -lLLVM
1114
// #cgo linux CPPFLAGS: -I/usr/include/llvm-19 -I/usr/include/llvm-c-19 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
1215
// #cgo linux CXXFLAGS: -std=c++17
1316
// #cgo linux LDFLAGS: -L/usr/lib/llvm-19/lib -lLLVM-19

llvm_config_llvm20.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ package llvm
88
// #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@20/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
99
// #cgo darwin,arm64 CXXFLAGS: -std=c++17
1010
// #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@20/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
11+
// #cgo freebsd CPPFLAGS: -I/usr/local/llvm20/include -I/usr/local/llvm20/include/llvm-c -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
12+
// #cgo freebsd CXXFLAGS: -std=c++17
13+
// #cgo freebsd LDFLAGS: -L/usr/local/llvm20/lib -lLLVM
1114
// #cgo linux 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
1215
// #cgo linux CXXFLAGS: -std=c++17
1316
// #cgo linux LDFLAGS: -L/usr/lib/llvm-20/lib -lLLVM-20

llvm_config_llvm21.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ package llvm
88
// #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@21/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
99
// #cgo darwin,arm64 CXXFLAGS: -std=c++17
1010
// #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@21/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm
11+
// #cgo freebsd CPPFLAGS: -I/usr/local/llvm21/include -I/usr/local/llvm21/include/llvm-c -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
12+
// #cgo freebsd CXXFLAGS: -std=c++17
13+
// #cgo freebsd LDFLAGS: -L/usr/local/llvm21/lib -lLLVM
1114
// #cgo linux CPPFLAGS: -I/usr/include/llvm-21 -I/usr/include/llvm-c-21 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
1215
// #cgo linux CXXFLAGS: -std=c++17
1316
// #cgo linux LDFLAGS: -L/usr/lib/llvm-21/lib -lLLVM-21

0 commit comments

Comments
 (0)