[Libguestfs] [nbdkit PATCH 4/5] golang: Skip CI builds on MacOS and newer FreeBSD

Eric Blake eblake at redhat.com
Wed Mar 1 16:54:45 UTC 2023


golang is causing odd linker errors on these platforms:

FreeBSD 13:
go build -o /tmp/cirrus-ci-build/plugins/golang/examples/disk/nbdkit-godisk-plugin.so -buildmode=c-shared
# main
/usr/local/go119/pkg/tool/freebsd_amd64/link: running cc failed: exit status 1
ld: error: /lib/libc.so.7: undefined reference to environ [--no-allow-shlib-undefined]
ld: error: /lib/libc.so.7: undefined reference to __progname [--no-allow-shlib-undefined]
cc: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [Makefile:1097: examples/disk/nbdkit-godisk-plugin.so] Error 2

MacOS 12:
go build -o /private/var/folders/76/zy5ktkns50v6gt5g8r0sf6sc0000gn/T/cirrus-ci-build/plugins/golang/examples/disk/nbdkit-godisk-plugin.so -buildmode=c-shared
# main
/opt/homebrew/Cellar/go/1.20.1/libexec/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: unknown option: --unresolved-symbols=ignore-in-object-files
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [Makefile:1097: examples/disk/nbdkit-godisk-plugin.so] Error 1

It's easier to just ignore golang on these platforms than to worry
about why the Go community is playing weird games with the linker.
---
 ci/gitlab/builds.yml |  5 ++++-
 ci/manifest.yml      | 14 +++++++++++---
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index 2db78e23..1772f882 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -374,6 +374,7 @@ x86_64-freebsd-13:
     CIRRUS_VM_IMAGE_NAME: freebsd-13-1
     CIRRUS_VM_IMAGE_SELECTOR: image_family
     CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+    GOLANG: skip
     INSTALL_COMMAND: pkg install -y
     NAME: freebsd-13
     UPDATE_COMMAND: pkg update
@@ -388,6 +389,7 @@ x86_64-freebsd-current:
     CIRRUS_VM_IMAGE_NAME: freebsd-13-0-snap
     CIRRUS_VM_IMAGE_SELECTOR: image_family
     CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+    GOLANG: skip
     INSTALL_COMMAND: pkg install -y
     NAME: freebsd-current
     UPDATE_COMMAND: pkg update
@@ -397,11 +399,12 @@ x86_64-freebsd-current:
 aarch64-macos-12:
   extends: .cirrus_build_job
   needs: []
-  allow_failure: true
+  allow_failure: false
   variables:
     CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-monterey-base:latest
     CIRRUS_VM_IMAGE_SELECTOR: image
     CIRRUS_VM_INSTANCE_TYPE: macos_instance
+    GOLANG: skip
     INSTALL_COMMAND: brew install
     NAME: macos-12
     PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 4ad070d7..554641b6 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -82,9 +82,17 @@ targets:

   freebsd-12: x86_64

-  freebsd-13: x86_64
+  freebsd-13:
+    jobs:
+      - arch: x86_64
+        variables:
+          GOLANG: skip

-  freebsd-current: x86_64
+  freebsd-current:
+    jobs:
+      - arch: x86_64
+        variables:
+          GOLANG: skip

   opensuse-leap-153: x86_64

@@ -95,10 +103,10 @@ targets:
   macos-12:
     jobs:
       - arch: aarch64
-        allow-failure: true
         variables:
           PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
           PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig:/opt/homebrew/opt/e2fsprogs/lib/pkgconfig
           RUST: skip
+          GOLANG: skip

   ubuntu-2004: x86_64
-- 
2.39.2



More information about the Libguestfs mailing list