From 131ea04dd109ac087f1973cf7e8f5181b7d9fa08 Mon Sep 17 00:00:00 2001 From: Al Hoang <3811822-hoanga@users.noreply.gitlab.com> Date: Thu, 11 Sep 2025 16:58:29 -0500 Subject: [PATCH 1/3] fix compilation on freebsd and add ci --- .github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ llvm_config_llvm19.go | 3 +++ llvm_config_llvm20.go | 3 +++ llvm_config_llvm21.go | 3 +++ 4 files changed, 38 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8946fd3..ddacaeb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -55,3 +55,32 @@ jobs: if: matrix.llvm == 21 run: go test -v + test-freebsd: + name: test-freebsd + runs-on: ubuntu-latest + strategy: + matrix: + llvm: [19, 20] + steps: + - uses: actions/checkout@v4 + - name: FreeBSD test 14.3 + uses: vmactions/freebsd-vm@v1 + with: + release: '14.3' + usesh: true + prepare: | + # Update package database with IGNORE_OSVERSION + pkg update -f || true + # Install llvm build dependencies + pkg install -y llvm${{ matrix.llvm }} + # Install default version go dependency + pkg install -y go + run: | + # Show environment info + echo "FreeBSD version:" + freebsd-version + # Test with llvm${{ matrix.llvm }} + echo "Clang ${{ matrix.llvm }} version info:" + /usr/local/llvm${{ matrix.llvm }}/bin/clang --version + echo "Test with llvm${{ matrix.llvm }} tag" + go test -v -tags=llvm${{ matrix.llvm }} diff --git a/llvm_config_llvm19.go b/llvm_config_llvm19.go index 29e2246..a05623d 100644 --- a/llvm_config_llvm19.go +++ b/llvm_config_llvm19.go @@ -8,6 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@19/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@19/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm19/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-19/lib -lLLVM-19 diff --git a/llvm_config_llvm20.go b/llvm_config_llvm20.go index e0ca6a6..439a160 100644 --- a/llvm_config_llvm20.go +++ b/llvm_config_llvm20.go @@ -8,6 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@20/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@20/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm20/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-20/lib -lLLVM-20 diff --git a/llvm_config_llvm21.go b/llvm_config_llvm21.go index 904cc58..9c54d90 100644 --- a/llvm_config_llvm21.go +++ b/llvm_config_llvm21.go @@ -8,6 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@21/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@21/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm21/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-21/lib -lLLVM-21 From 309148d5bd60c614f9ffaabc54ed667be5267aba Mon Sep 17 00:00:00 2001 From: Al Hoang <3811822-hoanga@users.noreply.gitlab.com> Date: Wed, 24 Sep 2025 20:32:28 -0500 Subject: [PATCH 2/3] remove freebsd ci --- .github/workflows/test.yml | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ddacaeb..8946fd3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -55,32 +55,3 @@ jobs: if: matrix.llvm == 21 run: go test -v - test-freebsd: - name: test-freebsd - runs-on: ubuntu-latest - strategy: - matrix: - llvm: [19, 20] - steps: - - uses: actions/checkout@v4 - - name: FreeBSD test 14.3 - uses: vmactions/freebsd-vm@v1 - with: - release: '14.3' - usesh: true - prepare: | - # Update package database with IGNORE_OSVERSION - pkg update -f || true - # Install llvm build dependencies - pkg install -y llvm${{ matrix.llvm }} - # Install default version go dependency - pkg install -y go - run: | - # Show environment info - echo "FreeBSD version:" - freebsd-version - # Test with llvm${{ matrix.llvm }} - echo "Clang ${{ matrix.llvm }} version info:" - /usr/local/llvm${{ matrix.llvm }}/bin/clang --version - echo "Test with llvm${{ matrix.llvm }} tag" - go test -v -tags=llvm${{ matrix.llvm }} From b49f6a6baec8d4c3bcb51e84e85ce6f8ec43f255 Mon Sep 17 00:00:00 2001 From: Al Hoang <3811822-hoanga@users.noreply.gitlab.com> Date: Thu, 25 Sep 2025 07:33:18 -0500 Subject: [PATCH 3/3] fix bad formatting --- llvm_config_llvm19.go | 6 +++--- llvm_config_llvm20.go | 6 +++--- llvm_config_llvm21.go | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/llvm_config_llvm19.go b/llvm_config_llvm19.go index a05623d..e540f57 100644 --- a/llvm_config_llvm19.go +++ b/llvm_config_llvm19.go @@ -8,9 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@19/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@19/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm -// #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 -// #cgo freebsd CXXFLAGS: -std=c++17 -// #cgo freebsd LDFLAGS: -L/usr/local/llvm19/lib -lLLVM +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm19/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-19/lib -lLLVM-19 diff --git a/llvm_config_llvm20.go b/llvm_config_llvm20.go index 439a160..090bdd6 100644 --- a/llvm_config_llvm20.go +++ b/llvm_config_llvm20.go @@ -8,9 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@20/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@20/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm -// #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 -// #cgo freebsd CXXFLAGS: -std=c++17 -// #cgo freebsd LDFLAGS: -L/usr/local/llvm20/lib -lLLVM +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm20/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-20/lib -lLLVM-20 diff --git a/llvm_config_llvm21.go b/llvm_config_llvm21.go index 9c54d90..e74a1f8 100644 --- a/llvm_config_llvm21.go +++ b/llvm_config_llvm21.go @@ -8,9 +8,9 @@ package llvm // #cgo darwin,arm64 CPPFLAGS: -I/opt/homebrew/opt/llvm@21/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS // #cgo darwin,arm64 CXXFLAGS: -std=c++17 // #cgo darwin,arm64 LDFLAGS: -L/opt/homebrew/opt/llvm@21/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM -lz -lm -// #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 -// #cgo freebsd CXXFLAGS: -std=c++17 -// #cgo freebsd LDFLAGS: -L/usr/local/llvm21/lib -lLLVM +// #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 +// #cgo freebsd CXXFLAGS: -std=c++17 +// #cgo freebsd LDFLAGS: -L/usr/local/llvm21/lib -lLLVM // #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 // #cgo linux CXXFLAGS: -std=c++17 // #cgo linux LDFLAGS: -L/usr/lib/llvm-21/lib -lLLVM-21