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

go build with CGO on MIPS little endian 64 produces binary with invalid exec format #68965

Closed
ruzv opened this issue Aug 20, 2024 · 22 comments
Closed
Labels
arch-mips WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.

Comments

@ruzv
Copy link

ruzv commented Aug 20, 2024

Go version

go version go1.22.5 linux/mips64le

Output of go env in your module/workspace:

GO111MODULE=''
GOARCH='mips64le'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='mips64le'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_mips64le'
GOVCS=''
GOVERSION='go1.22.5'
GCCGO='gccgo'
GOMIPS64='hardfloat'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/root/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2190945843=/tmp/go-build -gno-record-gcc-switches'

What did you do?

  • Start a docker container with
    docker run -it --platform linux/mips64le debian:sid bash
  • In the create environment install wget, gcc, and Go (included Dockerfile)
    FROM --platform=linux/mips64le debian:sid
    
    RUN apt-get update && apt-get install -y \
        gcc \
        wget \
        && rm -rf /var/lib/apt/lists/*
    
    # install go
    ENV GO_VERSION 1.22.5
    ENV GO_URL https://go.dev/dl/go${GO_VERSION}.linux-mips64le.tar.gz
    
    RUN wget -qO- ${GO_URL} | tar -xzC /usr/local
    
    ENV PATH $PATH:/usr/local/go/bin
    
    ENTRYPOINT ["tail", "-f", "/dev/null"]
  • Build the following program with
    go build -o hello hello.go
    package main
    
    /*
    #include <stdio.h>
    
    void hello_world() {
        printf("hello world from CGO\n");
    }
    */
    import "C"
    
    func main() {
        C.hello_world()
    }
  • Run the output binary
    ./hello 

What did you see happen?

  • Output when running ./hello
    bash: ./hello: cannot execute binary file: Exec format error
  • Output of file hello
    hello: ELF 64-bit LSB executable, MIPS, MIPS64 rel2 version 1 (SYSV), dynamically linked, interpreter /lib64/ld.so.1, BuildID[sha1]=a345b82433eab00866dcb465077034aa0b619a72, for GNU/Linux 3.2.0, with debug_info, not stripped

What did you expect to see?

Go build produces a valid executable binary that when run with ./hello outputs

hello world from CGO
@ianlancetaylor
Copy link
Member

For this example go build is going to invoke the C compiler to produce the final executable. It looks like the C compiler is for some reason producing a mips64 binary rather than a mips64le binary.

What is the output of go build -x -o hello hello.go ? Thanks.

@ruzv
Copy link
Author

ruzv commented Aug 20, 2024

`go build -x -o hello hello.go` output
WORK=/tmp/go-build793215437
mkdir -p $WORK/b005/
echo '# import config' > $WORK/b005/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b005/_pkg_.a -trimpath "$WORK/b005=>" -p internal/goarch -std -complete -buildid fCmp2fze6pO9vA_8ULOC/fCmp2fze6pO9vA_8ULOC -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b005/importcfg -pack /usr/local/go/src/internal/goarch/goarch.go /usr/local/go/src/internal/goarch/goarch_mips64le.go /usr/local/go/src/internal/goarch/zgoarch_mips64le.go
mkdir -p $WORK/b008/
echo '# import config' > $WORK/b008/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b008/_pkg_.a -trimpath "$WORK/b008=>" -p internal/race -std -complete -buildid AW08Q6rC3Q8so5Nq8kRo/AW08Q6rC3Q8so5Nq8kRo -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b008/importcfg -pack /usr/local/go/src/internal/race/doc.go /usr/local/go/src/internal/race/norace.go
mkdir -p $WORK/b006/
echo '# import config' > $WORK/b006/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b006/_pkg_.a -trimpath "$WORK/b006=>" -p internal/goos -std -complete -buildid ml--BynSDLyUt-BzACEw/ml--BynSDLyUt-BzACEw -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b006/importcfg -pack /usr/local/go/src/internal/goos/goos.go /usr/local/go/src/internal/goos/unix.go /usr/local/go/src/internal/goos/zgoos_linux.go
mkdir -p $WORK/b012/
echo -n > $WORK/b012/go_asm.h # internal
cd /usr/local/go/src/internal/cpu
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/cpu -trimpath "$WORK/b012=>" -I $WORK/b012/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b012/symabis ./cpu.s
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b005/_pkg_.a # internal
cp $WORK/b005/_pkg_.a /root/.cache/go-build/49/49424857c280462c337d5b2d96f64ddd818a77b7627d255c83cc68a08d51b302-d # internal
mkdir -p $WORK/b010/
echo -n > $WORK/b010/go_asm.h # internal
cd /usr/local/go/src/internal/abi
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/abi -trimpath "$WORK/b010=>" -I $WORK/b010/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b010/symabis ./abi_test.s ./stub.s
echo '# import config' > $WORK/b012/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b012/_pkg_.a -trimpath "$WORK/b012=>" -p internal/cpu -std -buildid dORYtXRWAtfJ0Fd33DLn/dORYtXRWAtfJ0Fd33DLn -goversion go1.22.5 -symabis $WORK/b012/symabis -c=4 -nolocalimports -importcfg $WORK/b012/importcfg -pack -asmhdr $WORK/b012/go_asm.h /usr/local/go/src/internal/cpu/cpu.go /usr/local/go/src/internal/cpu/cpu_mips64x.go /usr/local/go/src/internal/cpu/cpu_no_name.go
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b008/_pkg_.a # internal
cp $WORK/b008/_pkg_.a /root/.cache/go-build/e4/e44be633591adf1a53174a1a4213d1ebe943d0769ba28f1cf5208087a2bf2c81-d # internal
mkdir -p $WORK/b013/
echo -n > $WORK/b013/go_asm.h # internal
cd /usr/local/go/src/internal/chacha8rand
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/chacha8rand -trimpath "$WORK/b013=>" -I $WORK/b013/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b013/symabis ./chacha8_stub.s
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b006/_pkg_.a # internal
cp $WORK/b006/_pkg_.a /root/.cache/go-build/75/75e98e6af8a038b1bda7b85e66fd8da77d43a6c9cda86c2bfdc6bbcf0e45d183-d # internal
mkdir -p $WORK/b004/
cat >/tmp/go-build793215437/b004/importcfg << 'EOF' # internal
# import config
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
packagefile internal/goos=/tmp/go-build793215437/b006/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b004/_pkg_.a -trimpath "$WORK/b004=>" -p runtime/internal/sys -std -complete -buildid lWC3yPnlNHr36F7qDrG5/lWC3yPnlNHr36F7qDrG5 -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b004/importcfg -pack /usr/local/go/src/runtime/internal/sys/consts.go /usr/local/go/src/runtime/internal/sys/consts_norace.go /usr/local/go/src/runtime/internal/sys/intrinsics.go /usr/local/go/src/runtime/internal/sys/nih.go /usr/local/go/src/runtime/internal/sys/sys.go /usr/local/go/src/runtime/internal/sys/zversion.go
cat >/tmp/go-build793215437/b010/importcfg << 'EOF' # internal
# import config
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
EOF
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b010/_pkg_.a -trimpath "$WORK/b010=>" -p internal/abi -std -buildid NNKvujpDi2gTzKYCOGLa/NNKvujpDi2gTzKYCOGLa -goversion go1.22.5 -symabis $WORK/b010/symabis -c=4 -nolocalimports -importcfg $WORK/b010/importcfg -pack -asmhdr $WORK/b010/go_asm.h /usr/local/go/src/internal/abi/abi.go /usr/local/go/src/internal/abi/abi_generic.go /usr/local/go/src/internal/abi/compiletype.go /usr/local/go/src/internal/abi/funcpc.go /usr/local/go/src/internal/abi/map.go /usr/local/go/src/internal/abi/stack.go /usr/local/go/src/internal/abi/switch.go /usr/local/go/src/internal/abi/symtab.go /usr/local/go/src/internal/abi/type.go
cat >/tmp/go-build793215437/b013/importcfg << 'EOF' # internal
# import config
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
EOF
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b013/_pkg_.a -trimpath "$WORK/b013=>" -p internal/chacha8rand -std -buildid UQPRngnikDtqC47U0OB-/UQPRngnikDtqC47U0OB- -goversion go1.22.5 -symabis $WORK/b013/symabis -c=4 -nolocalimports -importcfg $WORK/b013/importcfg -pack -asmhdr $WORK/b013/go_asm.h /usr/local/go/src/internal/chacha8rand/chacha8.go /usr/local/go/src/internal/chacha8rand/chacha8_generic.go
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b004/_pkg_.a # internal
cp $WORK/b004/_pkg_.a /root/.cache/go-build/c5/c5cdec8ce9842b2d8fdd1a85767c914da6fd6879818274ce32154fb90cc9bcd0-d # internal
mkdir -p $WORK/b014/
echo '# import config' > $WORK/b014/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b014/_pkg_.a -trimpath "$WORK/b014=>" -p internal/coverage/rtcov -std -complete -buildid SOCr6pFFubR4FwZMT5YP/SOCr6pFFubR4FwZMT5YP -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b014/importcfg -pack /usr/local/go/src/internal/coverage/rtcov/rtcov.go
cd /usr/local/go/src/internal/cpu
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/cpu -trimpath "$WORK/b012=>" -I $WORK/b012/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b012/cpu.o ./cpu.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b012/_pkg_.a $WORK/b012/cpu.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b012/_pkg_.a # internal
cp $WORK/b012/_pkg_.a /root/.cache/go-build/b5/b55deb26c782c927dd35b7c48cd762aa8d2b40bace1a4c6d60361826519d58dc-d # internal
mkdir -p $WORK/b011/
echo -n > $WORK/b011/go_asm.h # internal
cd /usr/local/go/src/internal/bytealg
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/bytealg -trimpath "$WORK/b011=>" -I $WORK/b011/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b011/symabis ./compare_mips64x.s ./equal_mips64x.s ./indexbyte_mips64x.s
cd /usr/local/go/src/internal/chacha8rand
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/chacha8rand -trimpath "$WORK/b013=>" -I $WORK/b013/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b013/chacha8_stub.o ./chacha8_stub.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b013/_pkg_.a $WORK/b013/chacha8_stub.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b013/_pkg_.a # internal
cp $WORK/b013/_pkg_.a /root/.cache/go-build/b8/b8a99ad2f70f289b520eb6691192afc00dcef145635229955f87df3da0b9788c-d # internal
mkdir -p $WORK/b015/
echo '# import config' > $WORK/b015/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b015/_pkg_.a -trimpath "$WORK/b015=>" -p internal/godebugs -std -complete -buildid i6caMropeTL8l2kFUx6V/i6caMropeTL8l2kFUx6V -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b015/importcfg -pack /usr/local/go/src/internal/godebugs/table.go
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b014/_pkg_.a # internal
cp $WORK/b014/_pkg_.a /root/.cache/go-build/17/17bd22861ffd78ca212a6d52eabeb5b95d6de46277453f4f07ee3ca245e514d9-d # internal
mkdir -p $WORK/b016/
echo '# import config' > $WORK/b016/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b016/_pkg_.a -trimpath "$WORK/b016=>" -p internal/goexperiment -std -complete -buildid YlFbs2s75Iug1YyTemFW/YlFbs2s75Iug1YyTemFW -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b016/importcfg -pack /usr/local/go/src/internal/goexperiment/exp_allocheaders_on.go /usr/local/go/src/internal/goexperiment/exp_arenas_off.go /usr/local/go/src/internal/goexperiment/exp_boringcrypto_off.go /usr/local/go/src/internal/goexperiment/exp_cacheprog_off.go /usr/local/go/src/internal/goexperiment/exp_cgocheck2_off.go /usr/local/go/src/internal/goexperiment/exp_coverageredesign_on.go /usr/local/go/src/internal/goexperiment/exp_exectracer2_on.go /usr/local/go/src/internal/goexperiment/exp_fieldtrack_off.go /usr/local/go/src/internal/goexperiment/exp_heapminimum512kib_off.go /usr/local/go/src/internal/goexperiment/exp_loopvar_off.go /usr/local/go/src/internal/goexperiment/exp_newinliner_off.go /usr/local/go/src/internal/goexperiment/exp_pagetrace_off.go /usr/local/go/src/internal/goexperiment/exp_preemptibleloops_off.go /usr/local/go/src/internal/goexperiment/exp_rangefunc_off.go /usr/local/go/src/internal/goexperiment/exp_regabiargs_off.go /usr/local/go/src/internal/goexperiment/exp_regabiwrappers_off.go /usr/local/go/src/internal/goexperiment/exp_staticlockranking_off.go /usr/local/go/src/internal/goexperiment/flags.go
cat >/tmp/go-build793215437/b011/importcfg << 'EOF' # internal
# import config
packagefile internal/cpu=/tmp/go-build793215437/b012/_pkg_.a
EOF
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b011/_pkg_.a -trimpath "$WORK/b011=>" -p internal/bytealg -std -buildid lusKH3llOFymjVfeYaEe/lusKH3llOFymjVfeYaEe -goversion go1.22.5 -symabis $WORK/b011/symabis -c=4 -nolocalimports -importcfg $WORK/b011/importcfg -pack -asmhdr $WORK/b011/go_asm.h /usr/local/go/src/internal/bytealg/bytealg.go /usr/local/go/src/internal/bytealg/compare_native.go /usr/local/go/src/internal/bytealg/count_generic.go /usr/local/go/src/internal/bytealg/equal_generic.go /usr/local/go/src/internal/bytealg/equal_native.go /usr/local/go/src/internal/bytealg/index_generic.go /usr/local/go/src/internal/bytealg/indexbyte_native.go /usr/local/go/src/internal/bytealg/lastindexbyte_generic.go
cd /usr/local/go/src/internal/abi
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/abi -trimpath "$WORK/b010=>" -I $WORK/b010/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b010/abi_test.o ./abi_test.s
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b016/_pkg_.a # internal
cp $WORK/b016/_pkg_.a /root/.cache/go-build/6e/6ec603fe427aaa793f8c9ec542befa6b3678c9e014fd746e4803db98646906ac-d # internal
mkdir -p $WORK/b017/
echo -n > $WORK/b017/go_asm.h # internal
cd /usr/local/go/src/runtime/internal/atomic
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/internal/atomic -trimpath "$WORK/b017=>" -I $WORK/b017/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b017/symabis ./atomic_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b015/_pkg_.a # internal
cp $WORK/b015/_pkg_.a /root/.cache/go-build/64/648bfd64920f95a821557a375fbc4e9da374af5f1d318cbd14335095223ed030-d # internal
mkdir -p $WORK/b018/
cat >/tmp/go-build793215437/b018/importcfg << 'EOF' # internal
# import config
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b018/_pkg_.a -trimpath "$WORK/b018=>" -p runtime/internal/math -std -complete -buildid D-WLW5DGcTnr4Ho-cxGJ/D-WLW5DGcTnr4Ho-cxGJ -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b018/importcfg -pack /usr/local/go/src/runtime/internal/math/math.go
echo '# import config' > $WORK/b017/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b017/_pkg_.a -trimpath "$WORK/b017=>" -p runtime/internal/atomic -std -buildid WCmfxB9HOscS9HgpmLul/WCmfxB9HOscS9HgpmLul -goversion go1.22.5 -symabis $WORK/b017/symabis -c=4 -nolocalimports -importcfg $WORK/b017/importcfg -pack -asmhdr $WORK/b017/go_asm.h /usr/local/go/src/runtime/internal/atomic/atomic_andor_generic.go /usr/local/go/src/runtime/internal/atomic/atomic_mips64x.go /usr/local/go/src/runtime/internal/atomic/doc.go /usr/local/go/src/runtime/internal/atomic/stubs.go /usr/local/go/src/runtime/internal/atomic/types.go /usr/local/go/src/runtime/internal/atomic/types_64bit.go /usr/local/go/src/runtime/internal/atomic/unaligned.go
cd /usr/local/go/src/internal/abi
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/abi -trimpath "$WORK/b010=>" -I $WORK/b010/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b010/stub.o ./stub.s
cd /usr/local/go/src/internal/bytealg
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/bytealg -trimpath "$WORK/b011=>" -I $WORK/b011/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b011/compare_mips64x.o ./compare_mips64x.s
cd /usr/local/go/src/internal/abi
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b010/_pkg_.a $WORK/b010/abi_test.o $WORK/b010/stub.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b010/_pkg_.a # internal
cd /usr/local/go/src/internal/bytealg
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/bytealg -trimpath "$WORK/b011=>" -I $WORK/b011/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b011/equal_mips64x.o ./equal_mips64x.s
cp $WORK/b010/_pkg_.a /root/.cache/go-build/a9/a990a665729a894460447a693de3507641b43ad8a40b13bb1e7d7c9e7542e8bf-d # internal
mkdir -p $WORK/b019/
echo -n > $WORK/b019/go_asm.h # internal
cd /usr/local/go/src/runtime/internal/syscall
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/internal/syscall -trimpath "$WORK/b019=>" -I $WORK/b019/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b019/symabis ./asm_linux_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b018/_pkg_.a # internal
cp $WORK/b018/_pkg_.a /root/.cache/go-build/3a/3a441f178f9d0091c91ee04b926306d3c02dac09e639609dce07cdd82397a100-d # internal
mkdir -p $WORK/b020/
echo -n > $WORK/b020/go_asm.h # internal
cd /usr/local/go/src/sync/atomic
/usr/local/go/pkg/tool/linux_mips64le/asm -p sync/atomic -trimpath "$WORK/b020=>" -I $WORK/b020/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b020/symabis ./asm.s
cd /usr/local/go/src/internal/bytealg
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/bytealg -trimpath "$WORK/b011=>" -I $WORK/b011/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b011/indexbyte_mips64x.o ./indexbyte_mips64x.s
echo '# import config' > $WORK/b020/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b020/_pkg_.a -trimpath "$WORK/b020=>" -p sync/atomic -std -buildid T-76vRV8NN35-5ck82Kq/T-76vRV8NN35-5ck82Kq -goversion go1.22.5 -symabis $WORK/b020/symabis -c=4 -nolocalimports -importcfg $WORK/b020/importcfg -pack -asmhdr $WORK/b020/go_asm.h /usr/local/go/src/sync/atomic/doc.go /usr/local/go/src/sync/atomic/type.go /usr/local/go/src/sync/atomic/value.go
echo '# import config' > $WORK/b019/importcfg # internal
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b019/_pkg_.a -trimpath "$WORK/b019=>" -p runtime/internal/syscall -std -buildid ASCzKRSQxscOj_DG_PZY/ASCzKRSQxscOj_DG_PZY -goversion go1.22.5 -symabis $WORK/b019/symabis -c=4 -nolocalimports -importcfg $WORK/b019/importcfg -pack -asmhdr $WORK/b019/go_asm.h /usr/local/go/src/runtime/internal/syscall/defs_linux_mips64x.go /usr/local/go/src/runtime/internal/syscall/syscall_linux.go
cd /usr/local/go/src/internal/bytealg
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b011/_pkg_.a $WORK/b011/compare_mips64x.o $WORK/b011/equal_mips64x.o $WORK/b011/indexbyte_mips64x.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b011/_pkg_.a # internal
cp $WORK/b011/_pkg_.a /root/.cache/go-build/ab/abb87b054b7efc53c91442854d5280345808f33ed8b337426488cb7d62b0afe9-d # internal
mkdir -p $WORK/b024/
echo '# import config' > $WORK/b024/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b024/_pkg_.a -trimpath "$WORK/b024=>" -p internal/unsafeheader -std -complete -buildid zBzwHS9TZj03uZRZ1s--/zBzwHS9TZj03uZRZ1s-- -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b024/importcfg -pack /usr/local/go/src/internal/unsafeheader/unsafeheader.go
cd /usr/local/go/src/runtime/internal/atomic
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/internal/atomic -trimpath "$WORK/b017=>" -I $WORK/b017/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b017/atomic_mips64x.o ./atomic_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b017/_pkg_.a $WORK/b017/atomic_mips64x.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b017/_pkg_.a # internal
cp $WORK/b017/_pkg_.a /root/.cache/go-build/14/144ac50e00ab47880bd195ce2d011b695de7a9d227b206ed3c0717864bf225f9-d # internal
mkdir -p $WORK/b025/
echo '# import config' > $WORK/b025/importcfg # internal
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b025/_pkg_.a -trimpath "$WORK/b025=>" -p internal/itoa -std -complete -buildid qDHP1p5v_JDQDCRdhg8M/qDHP1p5v_JDQDCRdhg8M -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b025/importcfg -pack /usr/local/go/src/internal/itoa/itoa.go
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b024/_pkg_.a # internal
cp $WORK/b024/_pkg_.a /root/.cache/go-build/79/79ebe758ee55d3220745725a91c0d134e0ff8a1236c82a423b665de3a34e1421-d # internal
cd /usr/local/go/src/runtime/internal/syscall
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/internal/syscall -trimpath "$WORK/b019=>" -I $WORK/b019/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b019/asm_linux_mips64x.o ./asm_linux_mips64x.s
cd /usr/local/go/src/sync/atomic
/usr/local/go/pkg/tool/linux_mips64le/asm -p sync/atomic -trimpath "$WORK/b020=>" -I $WORK/b020/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b020/asm.o ./asm.s
cd /usr/local/go/src/runtime/internal/syscall
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b019/_pkg_.a $WORK/b019/asm_linux_mips64x.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b019/_pkg_.a # internal
cp $WORK/b019/_pkg_.a /root/.cache/go-build/11/11be9e171d63d0291639cf3142b162f3726e83c49659421e6b0c793dd6f2a38f-d # internal
mkdir -p $WORK/b009/
cd /usr/local/go/src/sync/atomic
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b020/_pkg_.a $WORK/b020/asm.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b020/_pkg_.a # internal
echo -n > $WORK/b009/go_asm.h # internal
cd /usr/local/go/src/runtime
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b009/symabis ./asm.s ./asm_mips64x.s ./atomic_mips64x.s ./duff_mips64x.s ./memclr_mips64x.s ./memmove_mips64x.s ./preempt_mips64x.s ./rt0_linux_mips64x.s ./sys_linux_mips64x.s ./tls_mips64x.s
cp $WORK/b020/_pkg_.a /root/.cache/go-build/7c/7c3150692d0008fc2a2eb38386fc6555783da5d739133d4adcaf820486e6c8ea-d # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b025/_pkg_.a # internal
cp $WORK/b025/_pkg_.a /root/.cache/go-build/92/928049b3855745bddc788af466e1de484f53d573f51920e451ec582832731d4a-d # internal
cat >/tmp/go-build793215437/b009/importcfg << 'EOF' # internal
# import config
packagefile internal/abi=/tmp/go-build793215437/b010/_pkg_.a
packagefile internal/bytealg=/tmp/go-build793215437/b011/_pkg_.a
packagefile internal/chacha8rand=/tmp/go-build793215437/b013/_pkg_.a
packagefile internal/coverage/rtcov=/tmp/go-build793215437/b014/_pkg_.a
packagefile internal/cpu=/tmp/go-build793215437/b012/_pkg_.a
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
packagefile internal/godebugs=/tmp/go-build793215437/b015/_pkg_.a
packagefile internal/goexperiment=/tmp/go-build793215437/b016/_pkg_.a
packagefile internal/goos=/tmp/go-build793215437/b006/_pkg_.a
packagefile runtime/internal/atomic=/tmp/go-build793215437/b017/_pkg_.a
packagefile runtime/internal/math=/tmp/go-build793215437/b018/_pkg_.a
packagefile runtime/internal/sys=/tmp/go-build793215437/b004/_pkg_.a
packagefile runtime/internal/syscall=/tmp/go-build793215437/b019/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b009/_pkg_.a -trimpath "$WORK/b009=>" -p runtime -std -buildid 9p0FBiJKpUooDUy3oZAJ/9p0FBiJKpUooDUy3oZAJ -goversion go1.22.5 -symabis $WORK/b009/symabis -c=4 -nolocalimports -importcfg $WORK/b009/importcfg -pack -asmhdr $WORK/b009/go_asm.h /usr/local/go/src/runtime/alg.go /usr/local/go/src/runtime/arena.go /usr/local/go/src/runtime/asan0.go /usr/local/go/src/runtime/atomic_pointer.go /usr/local/go/src/runtime/cgo.go /usr/local/go/src/runtime/cgocall.go /usr/local/go/src/runtime/cgocallback.go /usr/local/go/src/runtime/cgocheck.go /usr/local/go/src/runtime/chan.go /usr/local/go/src/runtime/checkptr.go /usr/local/go/src/runtime/compiler.go /usr/local/go/src/runtime/complex.go /usr/local/go/src/runtime/coro.go /usr/local/go/src/runtime/covercounter.go /usr/local/go/src/runtime/covermeta.go /usr/local/go/src/runtime/cpuflags.go /usr/local/go/src/runtime/cpuprof.go /usr/local/go/src/runtime/create_file_unix.go /usr/local/go/src/runtime/debug.go /usr/local/go/src/runtime/debuglog.go /usr/local/go/src/runtime/debuglog_off.go /usr/local/go/src/runtime/defs_linux_mips64x.go /usr/local/go/src/runtime/env_posix.go /usr/local/go/src/runtime/error.go /usr/local/go/src/runtime/exithook.go /usr/local/go/src/runtime/extern.go /usr/local/go/src/runtime/fastlog2.go /usr/local/go/src/runtime/fastlog2table.go /usr/local/go/src/runtime/fds_unix.go /usr/local/go/src/runtime/float.go /usr/local/go/src/runtime/hash64.go /usr/local/go/src/runtime/heapdump.go /usr/local/go/src/runtime/histogram.go /usr/local/go/src/runtime/iface.go /usr/local/go/src/runtime/lfstack.go /usr/local/go/src/runtime/lock_futex.go /usr/local/go/src/runtime/lockrank.go /usr/local/go/src/runtime/lockrank_off.go /usr/local/go/src/runtime/malloc.go /usr/local/go/src/runtime/map.go /usr/local/go/src/runtime/map_fast32.go /usr/local/go/src/runtime/map_fast64.go /usr/local/go/src/runtime/map_faststr.go /usr/local/go/src/runtime/mbarrier.go /usr/local/go/src/runtime/mbitmap.go /usr/local/go/src/runtime/mbitmap_allocheaders.go /usr/local/go/src/runtime/mcache.go /usr/local/go/src/runtime/mcentral.go /usr/local/go/src/runtime/mcheckmark.go /usr/local/go/src/runtime/mem.go /usr/local/go/src/runtime/mem_linux.go /usr/local/go/src/runtime/metrics.go /usr/local/go/src/runtime/mfinal.go /usr/local/go/src/runtime/mfixalloc.go /usr/local/go/src/runtime/mgc.go /usr/local/go/src/runtime/mgclimit.go /usr/local/go/src/runtime/mgcmark.go /usr/local/go/src/runtime/mgcpacer.go /usr/local/go/src/runtime/mgcscavenge.go /usr/local/go/src/runtime/mgcstack.go /usr/local/go/src/runtime/mgcsweep.go /usr/local/go/src/runtime/mgcwork.go /usr/local/go/src/runtime/mheap.go /usr/local/go/src/runtime/minmax.go /usr/local/go/src/runtime/mmap.go /usr/local/go/src/runtime/mpagealloc.go /usr/local/go/src/runtime/mpagealloc_64bit.go /usr/local/go/src/runtime/mpagecache.go /usr/local/go/src/runtime/mpallocbits.go /usr/local/go/src/runtime/mprof.go /usr/local/go/src/runtime/mranges.go /usr/local/go/src/runtime/msan0.go /usr/local/go/src/runtime/msize_allocheaders.go /usr/local/go/src/runtime/mspanset.go /usr/local/go/src/runtime/mstats.go /usr/local/go/src/runtime/mwbbuf.go /usr/local/go/src/runtime/nbpipe_pipe2.go /usr/local/go/src/runtime/netpoll.go /usr/local/go/src/runtime/netpoll_epoll.go /usr/local/go/src/runtime/nonwindows_stub.go /usr/local/go/src/runtime/os_linux.go /usr/local/go/src/runtime/os_linux_mips64x.go /usr/local/go/src/runtime/os_nonopenbsd.go /usr/local/go/src/runtime/os_unix.go /usr/local/go/src/runtime/pagetrace_off.go /usr/local/go/src/runtime/panic.go /usr/local/go/src/runtime/pinner.go /usr/local/go/src/runtime/plugin.go /usr/local/go/src/runtime/preempt.go /usr/local/go/src/runtime/preempt_nonwindows.go /usr/local/go/src/runtime/print.go /usr/local/go/src/runtime/proc.go /usr/local/go/src/runtime/profbuf.go /usr/local/go/src/runtime/proflabel.go /usr/local/go/src/runtime/race0.go /usr/local/go/src/runtime/rand.go /usr/local/go/src/runtime/rdebug.go /usr/local/go/src/runtime/retry.go /usr/local/go/src/runtime/runtime.go /usr/local/go/src/runtime/runtime1.go /usr/local/go/src/runtime/runtime2.go /usr/local/go/src/runtime/runtime_boring.go /usr/local/go/src/runtime/rwmutex.go /usr/local/go/src/runtime/security_linux.go /usr/local/go/src/runtime/security_unix.go /usr/local/go/src/runtime/select.go /usr/local/go/src/runtime/sema.go /usr/local/go/src/runtime/sigaction.go /usr/local/go/src/runtime/signal_linux_mips64x.go /usr/local/go/src/runtime/signal_mips64x.go /usr/local/go/src/runtime/signal_unix.go /usr/local/go/src/runtime/sigqueue.go /usr/local/go/src/runtime/sigqueue_note.go /usr/local/go/src/runtime/sigtab_linux_mipsx.go /usr/local/go/src/runtime/sizeclasses.go /usr/local/go/src/runtime/slice.go /usr/local/go/src/runtime/softfloat64.go /usr/local/go/src/runtime/stack.go /usr/local/go/src/runtime/stkframe.go /usr/local/go/src/runtime/string.go /usr/local/go/src/runtime/stubs.go /usr/local/go/src/runtime/stubs2.go /usr/local/go/src/runtime/stubs3.go /usr/local/go/src/runtime/stubs_linux.go /usr/local/go/src/runtime/stubs_mips64x.go /usr/local/go/src/runtime/symtab.go /usr/local/go/src/runtime/symtabinl.go /usr/local/go/src/runtime/sys_mips64x.go /usr/local/go/src/runtime/sys_nonppc64x.go /usr/local/go/src/runtime/tagptr.go /usr/local/go/src/runtime/tagptr_64bit.go /usr/local/go/src/runtime/test_stubs.go /usr/local/go/src/runtime/time.go /usr/local/go/src/runtime/time_nofake.go /usr/local/go/src/runtime/timestub.go /usr/local/go/src/runtime/timestub2.go /usr/local/go/src/runtime/tls_stub.go /usr/local/go/src/runtime/trace2.go /usr/local/go/src/runtime/trace2buf.go /usr/local/go/src/runtime/trace2cpu.go /usr/local/go/src/runtime/trace2event.go /usr/local/go/src/runtime/trace2map.go /usr/local/go/src/runtime/trace2region.go /usr/local/go/src/runtime/trace2runtime.go /usr/local/go/src/runtime/trace2stack.go /usr/local/go/src/runtime/trace2status.go /usr/local/go/src/runtime/trace2string.go /usr/local/go/src/runtime/trace2time.go /usr/local/go/src/runtime/traceback.go /usr/local/go/src/runtime/type.go /usr/local/go/src/runtime/typekind.go /usr/local/go/src/runtime/unsafe.go /usr/local/go/src/runtime/utf8.go /usr/local/go/src/runtime/vdso_elf64.go /usr/local/go/src/runtime/vdso_linux.go /usr/local/go/src/runtime/vdso_linux_mips64x.go /usr/local/go/src/runtime/write_err.go
cd /usr/local/go/src/runtime
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/asm.o ./asm.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/asm_mips64x.o ./asm_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/atomic_mips64x.o ./atomic_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/duff_mips64x.o ./duff_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/memclr_mips64x.o ./memclr_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/memmove_mips64x.o ./memmove_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/preempt_mips64x.o ./preempt_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/rt0_linux_mips64x.o ./rt0_linux_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/sys_linux_mips64x.o ./sys_linux_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime -trimpath "$WORK/b009=>" -I $WORK/b009/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b009/tls_mips64x.o ./tls_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b009/_pkg_.a $WORK/b009/asm.o $WORK/b009/asm_mips64x.o $WORK/b009/atomic_mips64x.o $WORK/b009/duff_mips64x.o $WORK/b009/memclr_mips64x.o $WORK/b009/memmove_mips64x.o $WORK/b009/preempt_mips64x.o $WORK/b009/rt0_linux_mips64x.o $WORK/b009/sys_linux_mips64x.o $WORK/b009/tls_mips64x.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b009/_pkg_.a # internal
cp $WORK/b009/_pkg_.a /root/.cache/go-build/42/4264b4809e2039c1a5ae8e00b9a4f72c8940865d8b523cbf2b7a4fb4310c429e-d # internal
mkdir -p $WORK/b023/
echo -n > $WORK/b023/go_asm.h # internal
cd /usr/local/go/src/internal/reflectlite
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/reflectlite -trimpath "$WORK/b023=>" -I $WORK/b023/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b023/symabis ./asm.s
mkdir -p $WORK/b007/
cat >/tmp/go-build793215437/b007/importcfg << 'EOF' # internal
# import config
packagefile internal/race=/tmp/go-build793215437/b008/_pkg_.a
packagefile runtime=/tmp/go-build793215437/b009/_pkg_.a
packagefile sync/atomic=/tmp/go-build793215437/b020/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b007/_pkg_.a -trimpath "$WORK/b007=>" -p sync -std -buildid 690KlRZnyWxKbt-3S7zU/690KlRZnyWxKbt-3S7zU -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b007/importcfg -pack /usr/local/go/src/sync/cond.go /usr/local/go/src/sync/map.go /usr/local/go/src/sync/mutex.go /usr/local/go/src/sync/once.go /usr/local/go/src/sync/oncefunc.go /usr/local/go/src/sync/pool.go /usr/local/go/src/sync/poolqueue.go /usr/local/go/src/sync/runtime.go /usr/local/go/src/sync/runtime2.go /usr/local/go/src/sync/rwmutex.go /usr/local/go/src/sync/waitgroup.go
cat >/tmp/go-build793215437/b023/importcfg << 'EOF' # internal
# import config
packagefile internal/abi=/tmp/go-build793215437/b010/_pkg_.a
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
packagefile internal/unsafeheader=/tmp/go-build793215437/b024/_pkg_.a
packagefile runtime=/tmp/go-build793215437/b009/_pkg_.a
EOF
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b023/_pkg_.a -trimpath "$WORK/b023=>" -p internal/reflectlite -std -buildid LGRTwhBu1F7xtNVPlffP/LGRTwhBu1F7xtNVPlffP -goversion go1.22.5 -symabis $WORK/b023/symabis -c=4 -nolocalimports -importcfg $WORK/b023/importcfg -pack -asmhdr $WORK/b023/go_asm.h /usr/local/go/src/internal/reflectlite/swapper.go /usr/local/go/src/internal/reflectlite/type.go /usr/local/go/src/internal/reflectlite/value.go
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b007/_pkg_.a # internal
cp $WORK/b007/_pkg_.a /root/.cache/go-build/5b/5b4a35961eaa0aaea68e7ecdae248a5ff0b70827644427546b98e55b31ade028-d # internal
mkdir -p $WORK/b003/
cd /usr/local/go/src/runtime/cgo
TERM='dumb' CGO_LDFLAGS='"-O2" "-g" "-lpthread"' /usr/local/go/pkg/tool/linux_mips64le/cgo -objdir $WORK/b003/ -importpath runtime/cgo -import_runtime_cgo=false -import_syscall=false -- -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector ./cgo.go
cd /usr/local/go/src/internal/reflectlite
/usr/local/go/pkg/tool/linux_mips64le/asm -p internal/reflectlite -trimpath "$WORK/b023=>" -I $WORK/b023/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b023/asm.o ./asm.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b023/_pkg_.a $WORK/b023/asm.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b023/_pkg_.a # internal
cp $WORK/b023/_pkg_.a /root/.cache/go-build/3d/3de18474dc7db81a6f14d029c28045b996b061d815cfee02a1e2cc9af64ed643-d # internal
mkdir -p $WORK/b022/
cat >/tmp/go-build793215437/b022/importcfg << 'EOF' # internal
# import config
packagefile internal/reflectlite=/tmp/go-build793215437/b023/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b022/_pkg_.a -trimpath "$WORK/b022=>" -p errors -std -complete -buildid Ojcwoi0d-lxyzhNND_l7/Ojcwoi0d-lxyzhNND_l7 -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b022/importcfg -pack /usr/local/go/src/errors/errors.go /usr/local/go/src/errors/join.go /usr/local/go/src/errors/wrap.go
cd $WORK
gcc -fno-caret-diagnostics -O2 -g -c -x c - -o /dev/null || true
gcc -Qunused-arguments -O2 -g -c -x c - -o /dev/null || true
gcc -Wl,--no-gc-sections -O2 -g -x c - -o /dev/null || true
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b022/_pkg_.a # internal
cp $WORK/b022/_pkg_.a /root/.cache/go-build/bd/bdb866f2c8025eb9f7cf6f99045fab3d86b6dfb85f39fc4da5b2276b6a203c5f-d # internal
gcc -fdebug-prefix-map=a=b -O2 -g -c -x c - -o /dev/null || true
gcc -ffile-prefix-map=a=b -O2 -g -c -x c - -o /dev/null || true
mkdir -p $WORK/b026/
cat >/tmp/go-build793215437/b026/importcfg << 'EOF' # internal
# import config
packagefile errors=/tmp/go-build793215437/b022/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b026/_pkg_.a -trimpath "$WORK/b026=>" -p internal/oserror -std -complete -buildid x0ZcsSk5cVY6qDlCgMXC/x0ZcsSk5cVY6qDlCgMXC -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b026/importcfg -pack /usr/local/go/src/internal/oserror/errors.go
cd $WORK
gcc -gno-record-gcc-switches -O2 -g -c -x c - -o /dev/null || true
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b026/_pkg_.a # internal
cp $WORK/b026/_pkg_.a /root/.cache/go-build/48/48a7fe79172eb894357dfa40210cb8421384b24a3729132da6ddb66f267ea3ce-d # internal
gcc -I /usr/local/go/src/runtime/cgo -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -frandom-seed=1 -O2 -g -c -x c - -o /dev/null || true
mkdir -p $WORK/b021/
echo -n > $WORK/b021/go_asm.h # internal
cd /usr/local/go/src/syscall
/usr/local/go/pkg/tool/linux_mips64le/asm -p syscall -trimpath "$WORK/b021=>" -I $WORK/b021/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b021/symabis ./asm_linux_mips64x.s
cat >/tmp/go-build793215437/b021/importcfg << 'EOF' # internal
# import config
packagefile errors=/tmp/go-build793215437/b022/_pkg_.a
packagefile internal/bytealg=/tmp/go-build793215437/b011/_pkg_.a
packagefile internal/itoa=/tmp/go-build793215437/b025/_pkg_.a
packagefile internal/oserror=/tmp/go-build793215437/b026/_pkg_.a
packagefile internal/race=/tmp/go-build793215437/b008/_pkg_.a
packagefile runtime=/tmp/go-build793215437/b009/_pkg_.a
packagefile sync=/tmp/go-build793215437/b007/_pkg_.a
packagefile sync/atomic=/tmp/go-build793215437/b020/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b021/_pkg_.a -trimpath "$WORK/b021=>" -p syscall -std -buildid CE50npKp3bKjjClA32I-/CE50npKp3bKjjClA32I- -goversion go1.22.5 -symabis $WORK/b021/symabis -c=4 -nolocalimports -importcfg $WORK/b021/importcfg -pack -asmhdr $WORK/b021/go_asm.h /usr/local/go/src/syscall/asan0.go /usr/local/go/src/syscall/dirent.go /usr/local/go/src/syscall/endian_little.go /usr/local/go/src/syscall/env_unix.go /usr/local/go/src/syscall/exec_linux.go /usr/local/go/src/syscall/exec_unix.go /usr/local/go/src/syscall/flock_linux.go /usr/local/go/src/syscall/forkpipe2.go /usr/local/go/src/syscall/lsf_linux.go /usr/local/go/src/syscall/msan0.go /usr/local/go/src/syscall/net.go /usr/local/go/src/syscall/netlink_linux.go /usr/local/go/src/syscall/rlimit.go /usr/local/go/src/syscall/rlimit_stub.go /usr/local/go/src/syscall/setuidgid_linux.go /usr/local/go/src/syscall/sockcmsg_linux.go /usr/local/go/src/syscall/sockcmsg_unix.go /usr/local/go/src/syscall/sockcmsg_unix_other.go /usr/local/go/src/syscall/syscall.go /usr/local/go/src/syscall/syscall_linux.go /usr/local/go/src/syscall/syscall_linux_accept4.go /usr/local/go/src/syscall/syscall_linux_mips64x.go /usr/local/go/src/syscall/syscall_unix.go /usr/local/go/src/syscall/time_nofake.go /usr/local/go/src/syscall/timestruct.go /usr/local/go/src/syscall/zerrors_linux_mips64le.go /usr/local/go/src/syscall/zsyscall_linux_mips64le.go /usr/local/go/src/syscall/zsysnum_linux_mips64le.go /usr/local/go/src/syscall/ztypes_linux_mips64le.go
cd $WORK/b003
TERM='dumb' gcc -I /usr/local/go/src/runtime/cgo -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x001.o -c _cgo_export.c
TERM='dumb' gcc -I /usr/local/go/src/runtime/cgo -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x002.o -c cgo.cgo2.c
cd /usr/local/go/src/runtime/cgo
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x003.o -c gcc_context.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x004.o -c gcc_fatalf.c
cd /usr/local/go/src/syscall
/usr/local/go/pkg/tool/linux_mips64le/asm -p syscall -trimpath "$WORK/b021=>" -I $WORK/b021/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b021/asm_linux_mips64x.o ./asm_linux_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b021/_pkg_.a $WORK/b021/asm_linux_mips64x.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b021/_pkg_.a # internal
cp $WORK/b021/_pkg_.a /root/.cache/go-build/75/75f7bc09c49cea8d7a724fe13abd4e19ab9a9871ea057bf45492830c9c11ef9a-d # internal
cd /usr/local/go/src/runtime/cgo
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x005.o -c gcc_libinit.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x006.o -c gcc_linux.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x007.o -c gcc_setenv.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x008.o -c gcc_stack_unix.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x009.o -c gcc_traceback.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x010.o -c gcc_util.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x011.o -c linux_syscall.c
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_x012.o -c gcc_mips64x.S
cd $WORK/b003
TERM='dumb' gcc -I /usr/local/go/src/runtime/cgo -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -I $WORK/b003/ -O2 -g -Wall -Werror -fno-stack-protector -ffile-prefix-map=/usr/local/go=/_/GOROOT -frandom-seed=tVlTKeCZ3EZrzcKHmCbL -o $WORK/b003/_cgo_main.o -c _cgo_main.c
cd /root
TERM='dumb' gcc -I /usr/local/go/src/runtime/cgo -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b003=/tmp/go-build -gno-record-gcc-switches -o $WORK/b003/_cgo_.o $WORK/b003/_cgo_main.o $WORK/b003/_x001.o $WORK/b003/_x002.o $WORK/b003/_x003.o $WORK/b003/_x004.o $WORK/b003/_x005.o $WORK/b003/_x006.o $WORK/b003/_x007.o $WORK/b003/_x008.o $WORK/b003/_x009.o $WORK/b003/_x010.o $WORK/b003/_x011.o $WORK/b003/_x012.o -O2 -g -lpthread
TERM='dumb' /usr/local/go/pkg/tool/linux_mips64le/cgo -dynpackage cgo -dynimport $WORK/b003/_cgo_.o -dynout $WORK/b003/_cgo_import.go -dynlinker
echo -n > $WORK/b003/go_asm.h # internal
cd /usr/local/go/src/runtime/cgo
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/cgo -trimpath "$WORK/b003=>" -I $WORK/b003/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -gensymabis -o $WORK/b003/symabis ./asm_mips64x.s
cat >/tmp/go-build793215437/b003/importcfg << 'EOF' # internal
# import config
packagefile runtime/internal/sys=/tmp/go-build793215437/b004/_pkg_.a
packagefile sync=/tmp/go-build793215437/b007/_pkg_.a
packagefile sync/atomic=/tmp/go-build793215437/b020/_pkg_.a
EOF
cd /root
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b003/_pkg_.a -trimpath "$WORK/b003=>" -p runtime/cgo -std -buildid tVlTKeCZ3EZrzcKHmCbL/tVlTKeCZ3EZrzcKHmCbL -goversion go1.22.5 -symabis $WORK/b003/symabis -c=4 -nolocalimports -importcfg $WORK/b003/importcfg -pack -asmhdr $WORK/b003/go_asm.h /usr/local/go/src/runtime/cgo/callbacks.go /usr/local/go/src/runtime/cgo/callbacks_traceback.go /usr/local/go/src/runtime/cgo/handle.go /usr/local/go/src/runtime/cgo/iscgo.go /usr/local/go/src/runtime/cgo/linux.go /usr/local/go/src/runtime/cgo/setenv.go $WORK/b003/_cgo_gotypes.go $WORK/b003/cgo.cgo1.go $WORK/b003/_cgo_import.go
cd /usr/local/go/src/runtime/cgo
/usr/local/go/pkg/tool/linux_mips64le/asm -p runtime/cgo -trimpath "$WORK/b003=>" -I $WORK/b003/ -I /usr/local/go/pkg/include -D GOOS_linux -D GOARCH_mips64le -D GOMIPS64_hardfloat -o $WORK/b003/asm_mips64x.o ./asm_mips64x.s
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b003/_pkg_.a $WORK/b003/asm_mips64x.o $WORK/b003/_x001.o $WORK/b003/_x002.o $WORK/b003/_x003.o $WORK/b003/_x004.o $WORK/b003/_x005.o $WORK/b003/_x006.o $WORK/b003/_x007.o $WORK/b003/_x008.o $WORK/b003/_x009.o $WORK/b003/_x010.o $WORK/b003/_x011.o $WORK/b003/_x012.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b003/_pkg_.a # internal
cp $WORK/b003/_pkg_.a /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d # internal
mkdir -p $WORK/b001/
cd /root
TERM='dumb' CGO_LDFLAGS='"-O2" "-g"' /usr/local/go/pkg/tool/linux_mips64le/cgo -objdir $WORK/b001/ -importpath command-line-arguments -- -I $WORK/b001/ -O2 -g ./hello.go
cd $WORK/b001
TERM='dumb' gcc -I /root -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I $WORK/b001/ -O2 -g -frandom-seed=HlUgVGHJ--UrTUx-g3C9 -o $WORK/b001/_x001.o -c _cgo_export.c
TERM='dumb' gcc -I /root -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I $WORK/b001/ -O2 -g -frandom-seed=HlUgVGHJ--UrTUx-g3C9 -o $WORK/b001/_x002.o -c hello.cgo2.c
TERM='dumb' gcc -I /root -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=$WORK/b001=/tmp/go-build -gno-record-gcc-switches -I $WORK/b001/ -O2 -g -frandom-seed=HlUgVGHJ--UrTUx-g3C9 -o $WORK/b001/_cgo_main.o -c _cgo_main.c
cd /root
TERM='dumb' gcc -I . -fPIC -mabi=64 -mhard-float -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-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 -O2 -g
TERM='dumb' /usr/local/go/pkg/tool/linux_mips64le/cgo -dynpackage main -dynimport $WORK/b001/_cgo_.o -dynout $WORK/b001/_cgo_import.go
cat >/tmp/go-build793215437/b001/importcfg << 'EOF' # internal
# import config
packagefile runtime/cgo=/tmp/go-build793215437/b003/_pkg_.a
packagefile syscall=/tmp/go-build793215437/b021/_pkg_.a
packagefile runtime=/tmp/go-build793215437/b009/_pkg_.a
EOF
/usr/local/go/pkg/tool/linux_mips64le/compile -o $WORK/b001/_pkg_.a -trimpath "$WORK/b001=>" -p main -buildid HlUgVGHJ--UrTUx-g3C9/HlUgVGHJ--UrTUx-g3C9 -goversion go1.22.5 -c=4 -nolocalimports -importcfg $WORK/b001/importcfg -pack $WORK/b001/_cgo_gotypes.go $WORK/b001/hello.cgo1.go $WORK/b001/_cgo_import.go
/usr/local/go/pkg/tool/linux_mips64le/pack r $WORK/b001/_pkg_.a $WORK/b001/_x001.o $WORK/b001/_x002.o # internal
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b001/_pkg_.a # internal
cp $WORK/b001/_pkg_.a /root/.cache/go-build/00/00eb7f49f8bf82fd63f0c1b24ffbf6c8b9d80e0541e4791d601b3ffaf8777b66-d # internal
cat >/tmp/go-build793215437/b001/importcfg.link << 'EOF' # internal
packagefile command-line-arguments=/tmp/go-build793215437/b001/_pkg_.a
packagefile runtime/cgo=/tmp/go-build793215437/b003/_pkg_.a
packagefile syscall=/tmp/go-build793215437/b021/_pkg_.a
packagefile runtime=/tmp/go-build793215437/b009/_pkg_.a
packagefile runtime/internal/sys=/tmp/go-build793215437/b004/_pkg_.a
packagefile sync=/tmp/go-build793215437/b007/_pkg_.a
packagefile sync/atomic=/tmp/go-build793215437/b020/_pkg_.a
packagefile errors=/tmp/go-build793215437/b022/_pkg_.a
packagefile internal/bytealg=/tmp/go-build793215437/b011/_pkg_.a
packagefile internal/itoa=/tmp/go-build793215437/b025/_pkg_.a
packagefile internal/oserror=/tmp/go-build793215437/b026/_pkg_.a
packagefile internal/race=/tmp/go-build793215437/b008/_pkg_.a
packagefile internal/abi=/tmp/go-build793215437/b010/_pkg_.a
packagefile internal/chacha8rand=/tmp/go-build793215437/b013/_pkg_.a
packagefile internal/coverage/rtcov=/tmp/go-build793215437/b014/_pkg_.a
packagefile internal/cpu=/tmp/go-build793215437/b012/_pkg_.a
packagefile internal/goarch=/tmp/go-build793215437/b005/_pkg_.a
packagefile internal/godebugs=/tmp/go-build793215437/b015/_pkg_.a
packagefile internal/goexperiment=/tmp/go-build793215437/b016/_pkg_.a
packagefile internal/goos=/tmp/go-build793215437/b006/_pkg_.a
packagefile runtime/internal/atomic=/tmp/go-build793215437/b017/_pkg_.a
packagefile runtime/internal/math=/tmp/go-build793215437/b018/_pkg_.a
packagefile runtime/internal/syscall=/tmp/go-build793215437/b019/_pkg_.a
packagefile internal/reflectlite=/tmp/go-build793215437/b023/_pkg_.a
packagefile internal/unsafeheader=/tmp/go-build793215437/b024/_pkg_.a
modinfo "0w\xaf\f\x92t\b\x02A\xe1\xc1\a\xe6\xd6\x18\xe6path\tcommand-line-arguments\nbuild\t-buildmode=exe\nbuild\t-compiler=gc\nbuild\tCGO_ENABLED=1\nbuild\tCGO_CFLAGS=\nbuild\tCGO_CPPFLAGS=\nbuild\tCGO_CXXFLAGS=\nbuild\tCGO_LDFLAGS=\nbuild\tGOARCH=mips64le\nbuild\tGOOS=linux\nbuild\tGOMIPS64=hardfloat\n\xf92C1\x86\x18 r\x00\x82B\x10A\x16\xd8\xf2"
EOF
mkdir -p $WORK/b001/exe/
cd .
/usr/local/go/pkg/tool/linux_mips64le/link -o $WORK/b001/exe/a.out -importcfg $WORK/b001/importcfg.link -buildmode=exe -buildid=-zqJKGSrWxvlI0XBG6-7/HlUgVGHJ--UrTUx-g3C9/YT1nn6bL_NvEPJ3QUH9f/-zqJKGSrWxvlI0XBG6-7 -extld=gcc $WORK/b001/_pkg_.a
/usr/local/go/pkg/tool/linux_mips64le/buildid -w $WORK/b001/exe/a.out # internal
mv $WORK/b001/exe/a.out hello
rm -rf $WORK/b001/

@ianlancetaylor
Copy link
Member

Thanks. Unfortunately I now realize the we need to see something different. What is the output of go build -ldflags=-v? Thanks.

@ruzv
Copy link
Author

ruzv commented Aug 21, 2024

Sure, no problem.

Output of `go build -ldflags=-v`
root@9903cbb5d834:~/hello# go build -ldflags=-v
# hello
build mode: exe, symbol table: on, DWARF: on
HEADER = -H5 -T0x11000 -R0x10000
host obj copy: $WORK/b001/_pkg_.a(_x001.o) from pkg main -> /tmp/go-link-661658601/000000.o
host obj copy: $WORK/b001/_pkg_.a(_x002.o) from pkg main -> /tmp/go-link-661658601/000001.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x001.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000002.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x002.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000003.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x003.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000004.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x004.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000005.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x005.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000006.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x006.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000007.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x007.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000008.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x008.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000009.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x009.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000010.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x010.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000011.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x011.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000012.o
host obj copy: /root/.cache/go-build/0e/0ef50df7e239776bf629694868584b22f90dbce469fd9137172cc21f82d510d6-d(_x012.o) from pkg runtime/cgo -> /tmp/go-link-661658601/000013.o
host link: "gcc" "-mabi=64" "-o" "/tmp/go-build817858478/b001/exe/a.out" "-Wl,--export-dynamic-symbol=_cgo_panic" "-Wl,--export-dynamic-symbol=_cgo_topofstack" "-Wl,--export-dynamic-symbol=crosscall2" "-Wl,--compress-debug-sections=zlib" "/tmp/go-link-661658601/go.o" "/tmp/go-link-661658601/000000.o" "/tmp/go-link-661658601/000001.o" "/tmp/go-link-661658601/000002.o" "/tmp/go-link-661658601/000003.o" "/tmp/go-link-661658601/000004.o" "/tmp/go-link-661658601/000005.o" "/tmp/go-link-661658601/000006.o" "/tmp/go-link-661658601/000007.o" "/tmp/go-link-661658601/000008.o" "/tmp/go-link-661658601/000009.o" "/tmp/go-link-661658601/000010.o" "/tmp/go-link-661658601/000011.o" "/tmp/go-link-661658601/000012.o" "/tmp/go-link-661658601/000013.o" "-O2" "-g" "-O2" "-g" "-lpthread" "-no-pie"
57520 symbols, 18227 reachable
	25620 package symbols, 20469 hashed symbols, 8380 non-package symbols, 3051 external symbols
81994 liveness data

@ianlancetaylor
Copy link
Member

Thanks. What is the output of gcc -v ?

@cherrymui
Copy link
Member

If you build a pure-Go binary (without cgo), does it run?

What is the output of file /lib64/ld.so.1?

@cherrymui cherrymui added WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. arch-mips labels Aug 21, 2024
@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

Thanks. What is the output of gcc -v ?

root@9903cbb5d834:~/hello# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/mips64el-linux-gnuabi64/14/lto-wrapper
Target: mips64el-linux-gnuabi64
Configured with: ../src/configure -v --with-pkgversion='Debian 14.1.0-5' --with-bugurl=file:///usr/share/doc/gcc-14/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust --prefix=/usr --with-gcc-major-version-only --program-suffix=-14 --program-prefix=mips64el-linux-gnuabi64- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-libitm --disable-libsanitizer --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-multilib --with-mips-plt --with-arch-64=mips64r2 --with-madd4=no --enable-targets=all --with-arch-32=mips32r2 --with-fp-32=xx --enable-checking=release --build=mips64el-linux-gnuabi64 --host=mips64el-linux-gnuabi64 --target=mips64el-linux-gnuabi64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.1.0 (Debian 14.1.0-5)

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

Yes, a pure go binary runs

root@9903cbb5d834:~# cat pure.go
package main

import "fmt"

func main() {
	fmt.Println("hello")
}
root@9903cbb5d834:~# go build -o pure pure.go
root@9903cbb5d834:~# ./pure
hello
root@9903cbb5d834:~# file pure
pure: ELF 64-bit LSB executable, MIPS, MIPS-III version 1 (SYSV), statically linked, Go BuildID=HjfMg8pehMkc1ZGQT3kE/NCFJ1KZtWhgfUlNEgpTa/QBzxvIrWqSZ8Fzq1zBhI/CE0Yq8rLBP0arTWrmaZ9, with debug_info, not stripped
root@9903cbb5d834:~#

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

output of file /lib64/ld.so.1

root@9903cbb5d834:~# file /lib64/ld.so.1
/lib64/ld.so.1: symbolic link to ../lib/mips64el-linux-gnuabi64/ld.so.1

@ianlancetaylor
Copy link
Member

I don't see anything obvious here. Does gcc work by itself? Can you run gcc -mabi=64 -o hello hello.c and then run hello?

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

I don't see anything obvious here. Does gcc work by itself? Can you run gcc -mabi=64 -o hello hello.c and then run hello?

It does

root@9903cbb5d834:~# cat hello.c
#include <stdio.h>

int main() {
	printf("hello\n");
	return 0;
}
root@9903cbb5d834:~# gcc -mabi=64 -o hello-c hello.c
root@9903cbb5d834:~# ./hello-c
hello

@ianlancetaylor
Copy link
Member

I'm running out of ideas. Either way we are invoking GCC to create an executable. I don't see any relevant command line flags. I don't know why the kernel is unhappy with the executable generated by GCC.

I guess show the output of readelf -hln on both the executable generated by running GCC on a C program and the executable generated by running "go build" on a Go program that uses cgo. Thanks.

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

I couldn't find anything obvious either. I suspect it has to do with either Go itself or the fact that I'm attempting to run the binary in an emulated environment (docker, which underneath has QEMU).

I couldn't get my hands on any hardware with mips64el to rule out a fault in Go.

Maybe some of you have such access and could run a test on it?

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

readelf -hln hello-c output (the GCC compiled C binary)
root@9903cbb5d834:~# ./hello-c
hello
root@9903cbb5d834:~# readelf -hln hello-c
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Position-Independent Executable file)
  Machine:                           MIPS R3000
  Version:                           0x1
  Entry point address:               0x920
  Start of program headers:          64 (bytes into file)
  Start of section headers:          5760 (bytes into file)
  Flags:                             0x80000007, noreorder, pic, cpic, mips64r2
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         32
  Section header string table index: 31

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000000040 0x0000000000000040
                 0x00000000000001f8 0x00000000000001f8  R      0x8
  INTERP         0x0000000000000238 0x0000000000000238 0x0000000000000238
                 0x000000000000000f 0x000000000000000f  R      0x1
      [Requesting program interpreter: /lib64/ld.so.1]
  ABIFLAGS       0x0000000000000248 0x0000000000000248 0x0000000000000248
                 0x0000000000000018 0x0000000000000018  R      0x8
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000b84 0x0000000000000b84  R E    0x10000
  LOAD           0x0000000000000b88 0x0000000000010b88 0x0000000000010b88
                 0x00000000000000c0 0x00000000000000d8  RW     0x10000
  DYNAMIC        0x00000000000003e8 0x00000000000003e8 0x00000000000003e8
                 0x0000000000000230 0x0000000000000230  R      0x8
  NOTE           0x00000000000003a0 0x00000000000003a0 0x00000000000003a0
                 0x0000000000000044 0x0000000000000044  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RWE    0x10
  NULL           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000         0x8

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .MIPS.abiflags
   03     .interp .MIPS.abiflags .MIPS.options .note.gnu.build-id .note.ABI-tag .dynamic .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .init .text .MIPS.stubs .fini .rodata .eh_frame
   04     .init_array .fini_array .data .rld_map .got .sdata .bss
   05     .dynamic
   06     .note.gnu.build-id .note.ABI-tag
   07
   08

Displaying notes found in: .note.gnu.build-id
  Owner                Data size 	Description
  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: 91da1a02a183867345f7c54403bdd57763c1487b

Displaying notes found in: .note.ABI-tag
  Owner                Data size 	Description
  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.2.0
readelf -hln hello output (the Go & GCC compiled CGO binary)
root@9903cbb5d834:~/hello# ./hello
bash: ./hello: cannot execute binary file: Exec format error
root@9903cbb5d834:~/hello# readelf -hln hello
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 01 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       1
  Type:                              EXEC (Executable file)
  Machine:                           MIPS R3000
  Version:                           0x1
  Entry point address:               0x1200014b0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          1511312 (bytes into file)
  Flags:                             0x80000005, noreorder, cpic, mips64r2
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         10
  Size of section headers:           64 (bytes)
  Number of section headers:         52
  Section header string table index: 51

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000120000040 0x0000000120000040
                 0x0000000000000230 0x0000000000000230  R      0x8
  INTERP         0x0000000000000270 0x0000000120000270 0x0000000120000270
                 0x000000000000000f 0x000000000000000f  R      0x1
      [Requesting program interpreter: /lib64/ld.so.1]
  ABIFLAGS       0x0000000000000280 0x0000000120000280 0x0000000120000280
                 0x0000000000000018 0x0000000000000018  R      0x8
  LOAD           0x0000000000000000 0x0000000120000000 0x0000000120000000
                 0x00000000000f6c64 0x00000000000f6c64  R E    0x10000
  LOAD           0x00000000000f7000 0x0000000120107000 0x0000000120107000
                 0x0000000000008ef0 0x000000000006a400  RW     0x10000
  DYNAMIC        0x00000000000006b0 0x00000001200006b0 0x00000001200006b0
                 0x0000000000000200 0x0000000000000200  R      0x8
  NOTE           0x0000000000000608 0x0000000120000608 0x0000000120000608
                 0x00000000000000a8 0x00000000000000a8  R      0x4
  TLS            0x00000000000f7000 0x0000000120107000 0x0000000120107000
                 0x0000000000000000 0x0000000000000010  R      0x8
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RWE    0x10
  NULL           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000         0x8

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .MIPS.abiflags
   03     .interp .MIPS.abiflags .MIPS.options .note.gnu.build-id .note.ABI-tag .note.go.buildid .dynamic .hash .dynsym .dynstr .gnu.version .gnu.version_r .init .text .MIPS.stubs .fini .rodata .typelink .itablink .gopclntab .eh_frame
   04     .init_array .fini_array .data .rld_map .go.buildinfo .noptrdata .got .sdata .sbss .bss .noptrbss
   05     .dynamic
   06     .note.gnu.build-id .note.ABI-tag .note.go.buildid
   07     .tbss
   08
   09

Displaying notes found in: .note.gnu.build-id
  Owner                Data size 	Description
  GNU                  0x00000014	NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: ae590a9788da4590dd42e5e3f2360c0665fdc403

Displaying notes found in: .note.ABI-tag
  Owner                Data size 	Description
  GNU                  0x00000010	NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 3.2.0

Displaying notes found in: .note.go.buildid
  Owner                Data size 	Description
  Go                   0x00000053	GO BUILDID
   description data: 4a 53 48 75 44 34 75 65 42 2d 33 67 56 4d 51 2d 47 6c 32 57 2f 55 4d 68 77 51 33 59 48 6d 51 37 6c 57 32 75 63 72 4b 71 53 2f 53 41 6a 2d 63 34 4b 48 6e 37 34 5f 36 53 4c 33 61 45 54 63 2f 6b 44 4a 69 2d 4e 70 68 78 46 4b 53 30 61 46 74 6e 4d 30 50

@ianlancetaylor
Copy link
Member

We routinely run Go builds and tests on mips64 and mips64el hardware running Linux, and those tests are passing.

@ianlancetaylor
Copy link
Member

Thanks. The obvious difference is that GCC is generating a PIE whereas Go is generating an executable. I don't know why that would be and I don't know why it would matter. Try building with go build -buildmode=pie.

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

go build -buildmode=pie output

-buildmode=pie not supported on linux/mips64le

@ianlancetaylor
Copy link
Member

Argh. OK, please try gcc -o hello_c -no-pie hello.c and see if you can run the executable. readelf -h hello_c should report Type EXEC rather than Type DYN.

@ruzv
Copy link
Author

ruzv commented Aug 22, 2024

It does, but it's runnable

root@9903cbb5d834:~# gcc -o hello_c -no-pie hello.c
root@9903cbb5d834:~# ./hello_c
hello
root@9903cbb5d834:~# readelf -h hello_c
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           MIPS R3000
  Version:                           0x1
  Entry point address:               0x120000870
  Start of program headers:          64 (bytes into file)
  Start of section headers:          5448 (bytes into file)
  Flags:                             0x80000007, noreorder, pic, cpic, mips64r2
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         31
  Section header string table index: 30

@ianlancetaylor
Copy link
Member

OK, I'm really out of ideas now. Sorry. Maybe someone else will think of something.

@seankhliao seankhliao added WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. and removed WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. labels Sep 2, 2024
@gopherbot
Copy link
Contributor

Timed out in state WaitingForInfo. Closing.

(I am just a bot, though. Please speak up if this is a mistake or you have the requested information.)

@gopherbot gopherbot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-mips WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

6 participants