-
Notifications
You must be signed in to change notification settings - Fork 262
Closed
Description
When building skopeo from git, the following error occurs
go build "-buildmode=pie" -ldflags '-X main.gitCommit=64361bde0687b2d8ae490fd9d7358a1e89d70e5b ' -gcflags "" -tags " libsubid" -o bin/skopeo ./cmd/skopeo
github.com/containers/skopeo/cmd/skopeo/opt/go1.23.6/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/gcc -m64 -Wl,-z,relro -pie -o $WORK/b001/exe/a.out -Wl,--export-dynamic-symbol=_cgo_panic -Wl,--export-dynamic-symbol=_cgo_topofstack -Wl,--export-dynamic-symbol=authorizerTrampoline -Wl,--export-dynamic-symbol=callbackTrampoline -Wl,--export-dynamic-symbol=commitHookTrampoline -Wl,--export-dynamic-symbol=compareTrampoline -Wl,--export-dynamic-symbol=crosscall2 -Wl,--export-dynamic-symbol=doneTrampoline -Wl,--export-dynamic-symbol=gogpgme_assuan_data_callback -Wl,--export-dynamic-
symbol=gogpgme_assuan_inquiry_callback -Wl,--export-dynamic-symbol=gogpgme_assuan_status_callback -Wl,--export-dynamic-symbol=gogpgme_passfunc -Wl,--export-dynamic-symbol=gogpgme_readfunc -Wl,--export-dynamic-symbol=gogpgme_seekfunc -Wl,--export-dynamic-symbol=gogpgme_writefunc -Wl,--export-dynamic-symbol=preUpdateHookTrampoline -Wl,--export-dynamic-symbol=rollbackHookTrampoline -Wl,--export-dynamic-symbol=stepTrampoline -Wl,--export-dynamic-symbol=updateHookTrampoline -Wl,--compress-debug-sections=zlib /tmp/go-link-1078823919/go.o /tmp/go-link-1078823919/000000.o /tmp/go-link-1078823919/000001.o /tmp/go-link-1078823919/000002.o /tmp/go-link-1078823919/000003.o /tmp/go-link-1078823919/000004.o /tmp/go-link-1078823919/000005.o /tmp/go-link-1078823919/000006.o /tmp/go-link-1078823919/000007.o /tmp/go-link-1078823919/000008.o /tmp/go-link-1078823919/000009.o /tmp/go-link-1078823919/000010.o /tmp/go-link-1078823919/000011.o /tmp/go-link-1078823919/000012.o /tmp/go-link-1078823919/000013.o /tmp/go-link-1078823919/000014.o /tmp/go-link-1078823919/000015.o /tmp/go-link-1078823919/000016.o /tmp/go-link-1078823919/000017.o /tmp/go-link-1078823919/000018.o /tmp/go-link-1078823919/000019.o /tmp/go-link-1078823919/000020.o /tmp/go-link-1078823919/000021.o /tmp/go-link-1078823919/000022.o /tmp/go-link-1078823919/000023.o /tmp/go-link-1078823919/000024.o /tmp/go-link-1078823919/000025.o /tmp/go-link-1078823919/000026.o /tmp/go-link-1078823919/000027.o /tmp/go-link-1078823919/000028.o /tmp/go-link-1078823919/000029.o /tmp/go-link-1078823919/000030.o /tmp/go-link-1078823919/000031.o /tmp/go-link-1078823919/000032.o /tmp/go-link-1078823919/000033.o /tmp/go-link-1078823919/000034.o /tmp/go-link-1078823919/000035.o /tmp/go-link-1078823919/000036.o /tmp/go-link-1078823919/000037.o /tmp/go-link-1078823919/000038.o /tmp/go-link-1078823919/000039.o /tmp/go-link-1078823919/000040.o /tmp/go-link-1078823919/000041.o /tmp/go-link-1078823919/000042.o /tmp/go-link-1078823919/000043.o /tmp/go-link-1078823919/000044.o /tmp/go-link-1078823919/000045.o /tmp/go-link-1078823919/000046.o /tmp/go-link-1078823919/000047.o /tmp/go-link-1078823919/000048.o /tmp/go-link-1078823919/000049.o /tmp/go-link-1078823919/000050.o /tmp/go-link-1078823919/000051.o /tmp/go-link-1078823919/000052.o /tmp/go-link-1078823919/000053.o /tmp/go-link-1078823919/000054.o /tmp/go-link-1078823919/000055.o /tmp/go-link-1078823919/000056.o /tmp/go-link-1078823919/000057.o -O2 -g -lresolv -O2 -g -O2 -g -lgpgme -O2 -g -lpthread -O2 -g -O2 -g -l subid -O2 -g -ldl -O2 -g -ldl -O2 -g -O2 -g -O2 -g
/usr/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/14.2.0/../../../../lib64/libsubid.a(libshadow_la-shadowlog.o):(.bss+0x0): multiple definition of `shadow_logfd'; /tmp/go-link-1078823919/000033.o:/spare/sources/skopeo/vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go:17: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:134: bin/skopeo] Error 1
I'm building on Slackware current with gcc 14.2 and go v1.23.6. The following patch fixes it:
diff --git a/vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go b/vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go
index 2bd26d0e..3b9f88e1 100644
--- a/vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go
+++ b/vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go
@@ -14,7 +14,7 @@ import (
#include <stdlib.h>
#include <stdio.h>
const char *Prog = "storage";
-FILE *shadow_logfd = NULL;
+extern FILE *shadow_logfd;
struct subid_range get_range(struct subid_range *ranges, int i)
{
Metadata
Metadata
Assignees
Labels
No labels