Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: go build fails to create a c-archive when using binary-only-packages #26590

Closed
triztian opened this issue Jul 25, 2018 · 6 comments

Comments

Projects
None yet
4 participants
@triztian
Copy link

commented Jul 25, 2018

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

go version go1.10.3 linux/arm

Does this issue reproduce with the latest release?

Yes, tested with go1.10.1 and then upgraded to go1.10.3

What operating system and processor architecture are you using (go env)?

GOARCH="arm"
GOBIN="/home/pi/go/bin"
GOCACHE="/home/pi/.cache/go-build"
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pi/go"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_arm"
GCCGO="gccgo"
GOARM="6"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build014995354=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Created a simple package called github.com/triztian/carchive that imports a Binary Only Package

The packages source:

github.com/triztian/carchive/main.go:

package main

import (
	"C"
	"encoding/json"
	"fmt"

	"github.com/triztian/bop"
)

func main() {}

//export Stringify
func Stringify(n C.int) {
       p := bop.Properties{
		"n": int(n),
	}

	data, err := json.Marshal(p)
	if err != nil {
            bop.Error(err.Error())
            return
	}

	fmt.Println(string(data))
}

github.com/triztian/bop-src/props.go:

package bop

import "fmt"

type Properties map[string]interface{}

func Error(str string) {
	fmt.Println("ERROR: ", str)
}

And the sources of the BOP go file:

//go:binary-only-package

package bop

import "fmt"

And finally my $GOPATH tree before running the build command:

/home/pi/Workspace/c-archive-go/go
├── bin
├── pkg
│   └── linux_arm
│       └── github.com
│           └── triztian
│               └── bop.a
└── src
    └── github.com
        └── triztian
            ├── bop
            │   └── bop.go
            ├── bop-src
            │   └── props.go
            └── carchive
                ├── main.go
                └── Makefile

The command used to do the build

go build -buildmode=c-archive -o libcarchive.a github.com/triztian/carchive

What did you expect to see?

A libcarchive.a file in my current directory

What did you see instead?

The following output:

go build -v -buildmode=c-archive -o libcarchive.a github.com/triztian/carchive
runtime/cgo
github.com/triztian/bop
go build github.com/triztian/bop: missing or invalid binary-only package

Exit status:

echo $?
1

And the command output of go build (-x):

env GOARM=6 go build -v -x -buildmode=c-archive -o libcarchive.a github.com/triztian/carchive
WORK=/tmp/go-build667998517
runtime/cgo
mkdir -p $WORK/b031/
cd /usr/local/go/src/runtime/cgo
CGO_LDFLAGS='"-g" "-O2" "-lpthread"' /usr/local/go/pkg/tool/linux_arm/cgo -objdir $WORK/b031/ -importpath runtime/cgo -import_runtime_cgo=false -import_syscall=false -exportheader=$WORK/b031/_cgo_install.h -- -I $WORK/b031/ -g -O2 -Wall -Werror ./cgo.go
cd $WORK
gcc -fno-caret-diagnostics -c -x c - || true
gcc -Qunused-arguments -c -x c - || true
gcc -fdebug-prefix-map=a=b -c -x c - || true
gcc -gno-record-gcc-switches -c -x c - || true
cd $WORK/b031
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_x001.o -c _cgo_export.c
github.com/triztian/bop
go build github.com/triztian/bop: missing or invalid binary-only package
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_x002.o -c cgo.cgo2.c
cd /usr/local/go/src/runtime/cgo
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x003.o -c gcc_context.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x004.o -c gcc_fatalf.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x005.o -c gcc_libinit.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x006.o -c gcc_linux_arm.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x007.o -c gcc_setenv.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x008.o -c gcc_traceback.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x009.o -c gcc_util.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x010.o -c gcc_arm.S
cd $WORK/b031
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_cgo_main.o -c _cgo_main.c
cd /usr/local/go/src/runtime/cgo
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -o $WORK/b031/_cgo_.o $WORK/b031/_cgo_main.o $WORK/b031/_x001.o $WORK/b031/_x002.o $WORK/b031/_x003.o $WORK/b031/_x004.o $WORK/b031/_x005.o $WORK/b031/_x006.o $WORK/b031/_x007.o $WORK/b031/_x008.o $WORK/b031/_x009.o $WORK/b031/_x010.o -g -O2 -lpthread -pie
/usr/local/go/pkg/tool/linux_arm/cgo -dynpackage cgo -dynimport $WORK/b031/_cgo_.o -dynout $WORK/b031/_cgo_import.go -dynlinker
@triztian

This comment has been minimized.

Copy link
Author

commented Jul 25, 2018

I have just tested with the latest (https://golang.org/doc/install?download=go1.10.3.linux-armv6l.tar.gz), and it seems like the c-archive is produced:

go version && go build -v -o libcarchive.a github.com/triztian/carchive && ls
go version go1.10.3 linux/arm
github.com/triztian/bop
libcarchive.a  main.go  Makefile
@triztian

This comment has been minimized.

Copy link
Author

commented Jul 25, 2018

Ok, so after the update it seems to have only worked once, now if I try to rebuild it I get the same error:

go build -v -buildmode=c-archive -o libcarchive.a github.com/triztian/carchive
runtime/cgo
github.com/triztian/bop
go build github.com/triztian/bop: missing or invalid binary-only package
Makefile:2: recipe for target 'build' failed

Tree of GOPATH:

/home/pi/Workspace/c-archive-go/go
├── bin
├── pkg
│   └── linux_arm
│       └── github.com
│           └── triztian
│               └── bop.a
└── src
    └── github.com
        └── triztian
            ├── bop
            │   └── bop.go
            ├── bop-src
            │   └── props.go
            └── carchive
                ├── main.go
                └── Makefile

Is there a way to get more information with regards of what could be causing the message:

github.com/triztian/bop
go build github.com/triztian/bop: missing or invalid binary-only package

If I try to build the package on it's own it succeeds:

pi@rpi-tristian:~/Workspace/c-archive-go/go/src/github.com/triztian/carchive $ go build -v -x -n -work github.com/triztian/bop

#
# github.com/triztian/bop
#

github.com/triztian/bop

@triztian triztian changed the title Command go build fails to create a c-archive when using binary-only-packages cmd/go: go build fails to create a c-archive when using binary-only-packages Jul 25, 2018

@andybons

This comment has been minimized.

Copy link
Member

commented Jul 25, 2018

@andybons andybons added this to the Unplanned milestone Jul 25, 2018

@gopherbot

This comment has been minimized.

Copy link

commented Jul 25, 2018

Change https://golang.org/cl/125818 mentions this issue: cmd/go: for missing binary-only package, say where it should be

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Jul 25, 2018

I would guess that the package is expected to be in linux_arm_shared, because using -buildmode=c-archive implies building with -fPIC. I sent CL 125818 so that the error messages indicates where the package is expected.

@triztian

This comment has been minimized.

Copy link
Author

commented Jul 25, 2018

@ianlancetaylor and @andybons, thank you for the quick reply and for the patch. I can confirm that after moving the BOP archive into $GOPATH/pkg/linux_arm_shared the sample test case builds.

Tree of $GOPATPH after successful build:

/home/pi/Workspace/c-archive-go/go
├── bin
├── pkg
│   ├── linux_arm
│   │   └── github.com
│   │       └── triztian
│   └── linux_arm_shared
│       └── github.com
│           └── triztian
│               └── bop.a
└── src
    └── github.com
        └── triztian
            ├── bop
            │   └── bop.go
            ├── bop-src
            │   └── bop.go
            └── carchive
                ├── libcarchive.a
                ├── libcarchive.h
                ├── main.go
                └── Makefile

Output of go build -x ...:

env GOARM=6 go build -v -x -buildmode=c-archive -o libcarchive.a github.com/triztian/carchive
WORK=/tmp/go-build146166142
runtime/cgo
mkdir -p $WORK/b031/
cd /usr/local/go/src/runtime/cgo
CGO_LDFLAGS='"-g" "-O2" "-lpthread"' /usr/local/go/pkg/tool/linux_arm/cgo -objdir $WORK/b031/ -importpath runtime/cgo -import_runtime_cgo=false -import_syscall=false -exportheader=$WORK/b031/_cgo_install.h -- -I $WORK/b031/ -g -O2 -Wall -Werror ./cgo.go
cd $WORK
gcc -fno-caret-diagnostics -c -x c - || true
gcc -Qunused-arguments -c -x c - || true
gcc -fdebug-prefix-map=a=b -c -x c - || true
gcc -gno-record-gcc-switches -c -x c - || true
cd $WORK/b031
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_x001.o -c _cgo_export.c
github.com/triztian/bop
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_x002.o -c cgo.cgo2.c
cd /usr/local/go/src/runtime/cgo
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x003.o -c gcc_context.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x004.o -c gcc_fatalf.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x005.o -c gcc_libinit.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x006.o -c gcc_linux_arm.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x007.o -c gcc_setenv.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x008.o -c gcc_traceback.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x009.o -c gcc_util.c
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I $WORK/b031/ -g -O2 -Wall -Werror -o $WORK/b031/_x010.o -c gcc_arm.S
cd $WORK/b031
gcc -I /usr/local/go/src/runtime/cgo -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -Wall -Werror -o ./_cgo_main.o -c _cgo_main.c
cd /usr/local/go/src/runtime/cgo
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b031=/tmp/go-build -gno-record-gcc-switches -o $WORK/b031/_cgo_.o $WORK/b031/_cgo_main.o $WORK/b031/_x001.o $WORK/b031/_x002.o $WORK/b031/_x003.o $WORK/b031/_x004.o $WORK/b031/_x005.o $WORK/b031/_x006.o $WORK/b031/_x007.o $WORK/b031/_x008.o $WORK/b031/_x009.o $WORK/b031/_x010.o -g -O2 -lpthread -pie
/usr/local/go/pkg/tool/linux_arm/cgo -dynpackage cgo -dynimport $WORK/b031/_cgo_.o -dynout $WORK/b031/_cgo_import.go -dynlinker
github.com/triztian/carchive
mkdir -p $WORK/b001/
cd /home/pi/Workspace/c-archive-go/go/src/github.com/triztian/carchive
CGO_LDFLAGS='"-g" "-O2"' /usr/local/go/pkg/tool/linux_arm/cgo -objdir $WORK/b001/ -importpath github.com/triztian/carchive -exportheader=$WORK/b001/_cgo_install.h -- -I $WORK/b001/ -g -O2 ./main.go
cd $WORK/b001
gcc -I /home/pi/Workspace/c-archive-go/go/src/github.com/triztian/carchive -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -o ./_x001.o -c _cgo_export.c
gcc -I /home/pi/Workspace/c-archive-go/go/src/github.com/triztian/carchive -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -o ./_x002.o -c main.cgo2.c
gcc -I /home/pi/Workspace/c-archive-go/go/src/github.com/triztian/carchive -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I ./ -g -O2 -o ./_cgo_main.o -c _cgo_main.c
cd /home/pi/Workspace/c-archive-go/go/src/github.com/triztian/carchive
gcc -I . -fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -o $WORK/b001/_cgo_.o $WORK/b001/_cgo_main.o $WORK/b001/_x001.o $WORK/b001/_x002.o -g -O2 -pie
/usr/local/go/pkg/tool/linux_arm/cgo -dynpackage main -dynimport $WORK/b001/_cgo_.o -dynout $WORK/b001/_cgo_import.go
cat >$WORK/b001/importcfg.link << 'EOF' # internal
packagefile github.com/triztian/carchive=/home/pi/.cache/go-build/86/86e3ed7b118922c88477016a38c2f81eb402428985371317eb130a790d165f45-d
packagefile encoding/json=/home/pi/.cache/go-build/51/513b19ab41502aa3fba20789aade79a10e6aa40fe4e705776139ec9791455be5-d
packagefile fmt=/home/pi/.cache/go-build/12/1202f188d7ae61974f6d959bf4e496e28affc309677b28d2ed061917ca38b562-d
packagefile github.com/triztian/bop=/home/pi/Workspace/c-archive-go/go/pkg/linux_arm_shared/github.com/triztian/bop.a
packagefile runtime/cgo=/home/pi/.cache/go-build/51/517b4e0c57c38c399936f641bc1082a79c8b81e531f3d611114ff5ea3b57ac5e-d
packagefile syscall=/home/pi/.cache/go-build/02/02b20b0a5080a4b66a9cf76432e63504388e5f9224b2649d91d3b30f328abdd0-d
packagefile runtime=/home/pi/.cache/go-build/46/465fb13d13a3efffea4ecdff5a06b8cbca0f612871028bb92aedc42ab315d1f7-d
packagefile math=/home/pi/.cache/go-build/b9/b9a7e1c43f81455533c30f1d16d7a04f2facbc5a9094a2a2f1fdd12d9b6f4ccc-d
packagefile bytes=/home/pi/.cache/go-build/55/55742fcbde939cbc2386e480e3b8de93126408c06dcb35033be72d94acbe33d4-d
packagefile encoding=/home/pi/.cache/go-build/4b/4b1d02eddb405b57a5e24cf84bf6bdca735ce066cfda4d4c2fb35e3790310bdc-d
packagefile encoding/base64=/home/pi/.cache/go-build/36/3667de6880efdc8dfac47fd608f9e0a1938b55f0366849e21b68490a445fa7e4-d
packagefile errors=/home/pi/.cache/go-build/e9/e9060120b256b03cc3aa89eef72baba3687b3009ac24edd9b8a0496a55a47554-d
packagefile io=/home/pi/.cache/go-build/96/96ec05870136c08727c33a4c9ee30bcc94e06a95810932540430ef99f92636b7-d
packagefile reflect=/home/pi/.cache/go-build/16/168c43ea516ae6dae3a4dd36a6a66612b75734b321752ce350d172e23179196a-d
packagefile sort=/home/pi/.cache/go-build/c0/c0a5f14e01c2b2c3caf1a57d67013ef1326892636ffe8dd3623d8fd7718ac122-d
packagefile strconv=/home/pi/.cache/go-build/fb/fb7f53d447153df7a14b0e4a9906fb70e5431ea0e82b9fb42c1108de86876f4d-d
packagefile strings=/home/pi/.cache/go-build/d1/d1094f4094c05850c13eb0b186a43e23372c3bdc3a62f98d50b17d4f671ccac4-d
packagefile sync=/home/pi/.cache/go-build/47/4711620a966c0ae0c2c8c4dc0647d88627a2800dd12d5038da70a666796a6dd8-d
packagefile sync/atomic=/home/pi/.cache/go-build/27/27f773a27fb00ae8f8d1b916dbe1dd2a9a35a8b768f7dde791f2b1ce14f60175-d
packagefile unicode=/home/pi/.cache/go-build/b6/b653b5ec0332f03602c0ee8d2d664d0e006fa8e6684f3e4b6c338ecc660ecb7b-d
packagefile unicode/utf16=/home/pi/.cache/go-build/19/191f97cacf04195af4f8be2c741d70cef5754701ebbfba3353f6892630496e53-d
packagefile unicode/utf8=/home/pi/.cache/go-build/8b/8b2fd8cbb5434f18a80ba103102fc87ad158e2868624e321d1e8c3c2bbdccaba-d
packagefile os=/home/pi/.cache/go-build/a5/a5b0a5adf76708e9223e89f700f018139ee02748797bdd9fc508008e344f9dac-d
packagefile internal/race=/home/pi/.cache/go-build/46/4654c6f048b3a6d7a27c21dda48bc50803998fe5e3654d855a1e09dbe4ce4ef3-d
packagefile runtime/internal/atomic=/home/pi/.cache/go-build/89/89d1e269d29b015ed81bb7a07c8dba783832e396dd253d92df436933b317ad0a-d
packagefile runtime/internal/sys=/home/pi/.cache/go-build/b5/b58eca5a3dcfb4cc1e604549bf8072560b6ddaf894ee5b688655a25f1806aff3-d
packagefile encoding/binary=/home/pi/.cache/go-build/d7/d7d4596e2bc4e32b907f0845fb833dd4fae3bfa4b39f005703cce8817019f2c6-d
packagefile internal/poll=/home/pi/.cache/go-build/36/36ec00056bee568027dc1d9aecca9e31fe92bb4368982b8a85959f0752fc8fc6-d
packagefile internal/testlog=/home/pi/.cache/go-build/2f/2ff76aeb3293fe8fd4800cf61fcd64c4f61248a94a1879a696919679aa7c2c85-d
packagefile time=/home/pi/.cache/go-build/83/83b42957b1edfefc07d70e2312e36bdb7719de795f60d44a9140db5b5f0fc56b-d
EOF
mkdir -p $WORK/b001/exe/
cd .
/usr/local/go/pkg/tool/linux_arm/link -o $WORK/b001/exe/a.out.a -importcfg $WORK/b001/importcfg.link -installsuffix shared -buildmode=c-archive -buildid=RgzH9Xm903JmIgBjgo7Q/c2fSEt7zmBWBub2dkNRj/fEemc9dCrVOuyfJXr_WQ/RgzH9Xm903JmIgBjgo7Q -extld=gcc /home/pi/.cache/go-build/86/86e3ed7b118922c88477016a38c2f81eb402428985371317eb130a790d165f45-d
/usr/local/go/pkg/tool/linux_arm/buildid -w $WORK/b001/exe/a.out.a # internal
mv $WORK/b001/_cgo_install.h libcarchive.h
mv $WORK/b001/exe/a.out.a libcarchive.a
rm -r $WORK/b001/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.