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

gollvm: MinSizeRel build, on Aarch64, failed with redefinition of '_va_list' #44223

Closed
advancedwebdeveloper opened this issue Feb 11, 2021 · 11 comments
Labels
FrozenDueToAge WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.

Comments

@advancedwebdeveloper
Copy link

$ ninja -j 1 gollvm
[1/1129] Building Go package 'runtime' (non-PIC)
FAILED: tools/gollvm/libgo/runtime.o
cd /home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo && /usr/bin/cmake -E make_directory ./. && /home/oceanfish81/gollvm_minsizerel/./bin/llvm-goc -c -o /home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/./runtime.o -fgo-pkgpath=runtime -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime -fno-split-stack -I . /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/alg.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/atomic_pointer.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cgo_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cgocall.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cgocheck.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/chan.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/compiler.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cpuflags_arm64.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cpuprof.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/cputicks.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/debug.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/debuglog.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/debuglog_off.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/env_posix.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/eqtype.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/error.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/extern.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/fastlog2.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/fastlog2table.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/ffi.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/float.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/hash64.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/heapdump.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/histogram.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/iface.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/lfstack.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/lfstack_64bit.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/lock_futex.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/lockrank.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/lockrank_off.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/malloc.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/map.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/map_fast32.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/map_fast64.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/map_faststr.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mbarrier.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mbitmap.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mcache.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mcentral.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mcheckmark.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mem_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/metrics.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mfinal.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mfixalloc.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgc.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgc_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgcmark.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgcscavenge.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgcsweep.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mgcwork.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mheap.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mpagealloc.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mpagealloc_64bit.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mpagecache.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mpallocbits.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mprof.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mranges.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/msan0.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/msize.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mspanset.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mstats.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/mwbbuf.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/nbpipe_pipe2.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/netpoll.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/netpoll_epoll.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/os_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/os_linux.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/os_linux_arm64.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/panic.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/panic32.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/preempt.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/preempt_nonwindows.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/print.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/proc.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/profbuf.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/proflabel.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/race0.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/rdebug.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/relax_stub.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/runtime.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/runtime1.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/runtime2.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/rwmutex.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/select.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/sema.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/signal_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/signal_unix.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/sigqueue.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/sigqueue_note.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/sizeclasses.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/slice.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/string.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/stubs.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/stubs2.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/stubs3.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/stubs_linux.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/symtab.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/time.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/time_nofake.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/timestub.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/timestub2.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/trace.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/traceback_gccgo.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/type.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/typekind.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/utf8.go /home/oceanfish81/llvm-project/llvm/tools/gollvm/gofrontend/libgo/go/runtime/write_err.go /home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_linknames.go /home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_sysinfo.go /home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/sigtab.go
/home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_sysinfo.go:385:6: error: redefinition of '_va_list'
/home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_sysinfo.go:347:6: note: previous definition of '_va_list' was here
/home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_sysinfo.go:386:7: error: redefinition of '_sizeof_va_list'
/home/oceanfish81/gollvm_minsizerel/tools/gollvm/libgo/runtime_sysinfo.go:348:7: note: previous definition of '_sizeof_va_list' was here
ninja: build stopped: subcommand failed.

I didn't use gold, this time - I just picked up ld, by default.
Besides I am not limited by required hardware resources.
But would check with gold, later on.

$ clang --version
clang version 13.0.0 (https://github.com/llvm/llvm-project.git 3a29ac2a61f78aae049a46369203757ece315e23)
Target: aarch64-unknown-linux-gnu
Thread model: posix

@thanm
Copy link
Contributor

thanm commented Feb 11, 2021

Can you please share the contents of runtime_sysinfo.go? Would also be helpful to see sysinfo.macros.txt and sysinfo.o (if they can be made available). Thanks.

@thanm thanm self-assigned this Feb 11, 2021
@thanm thanm added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Feb 11, 2021
@advancedwebdeveloper
Copy link
Author

@gopherbot
Copy link

Change https://golang.org/cl/291610 mentions this issue: gollvm: fix buglet in llvm-godumpspec

@thanm
Copy link
Contributor

thanm commented Feb 13, 2021

Should be fixed now with https://golang.org/cl/291610, let me know if not.

@advancedwebdeveloper
Copy link
Author

advancedwebdeveloper commented Feb 15, 2021

Something is wrong:

-- verifying file...
file='/home/oceanfish81/gollvm_minsizerel/tools/gollvm/external-downloads/mpc-1.2.0.tar.gz'
-- Downloading... done
-- extracting...
src='/home/oceanfish81/gollvm_minsizerel/tools/gollvm/external-downloads/mpc-1.2.0.tar.gz'
dst='/home/oceanfish81/gollvm_minsizerel/tools/gollvm/external/mpc'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[450/3709] Performing configure step for 'libmpc'
-- libmpc configure command succeeded. See also /home/oceanfish81/gollvm_minsizerel/tools/gollvm/external/install/src/libmpc-stamp/libmpc-configure-.log
[451/3709] Performing build step for 'libmpc'
-- libmpc build command succeeded. See also /home/oceanfish81/gollvm_minsizerel/tools/gollvm/external/install/src/libmpc-stamp/libmpc-build-
.log
[452/3709] Performing install step for 'libmpc'
-- libmpc install command succeeded. See also /home/oceanfish81/gollvm_minsizerel/tools/gollvm/external/install/src/libmpc-stamp/libmpc-install-*.log
[453/3709] Completed 'libmpc'
.

Ninja stuck - but not sure whether that's a pause or some form of never ending loop.

@advancedwebdeveloper
Copy link
Author

@advancedwebdeveloper
Copy link
Author

Ping

@thanm
Copy link
Contributor

thanm commented Feb 22, 2021

Ninja stuck - but not sure whether that's a pause or some form of never ending loop.

I need a little more information than this -- what is still running at the point where the build hangs? Can you run "ps" or equivalent to see what's stuck?

make was able to finish the build process.

What does this mean? What invocation of 'make'? Please show me exactly what command you used and what happened.

@advancedwebdeveloper
Copy link
Author

@thanm , please provide some specific script - I shall run it, to fire Ninja/log the status.

Well, I just ran either

$make gollvm
or in parallel, like
$make -j32 gollvm
(the number of processes could be different - not sure if I remembered an exact value, for -j (didn't record, relly).
Aarch64 servers had some many cores - so I just used those resources.

What I am saying is that make was able to build all the sub-targets, for gollvm, in a similar way/fasion as it does on x86_64 servers.

If you require more specific logging (which I am super sure about) - then please give me concrete requirements (and for the source code folder, if any) - I shall follow your instructions.
Actually I thought that we could some data ingestion - maybe we could use Apache MiNiFi, so you could consume the populated data (for the logs) within some external storage and/or MQ broker (which you/your company could host).
Still better then dealing with "flat" textual logs.

@advancedwebdeveloper
Copy link
Author

I am heading to try again - I am able to build gollvm again: https://github.com/advancedwebdeveloper/clang_test_cpu_features/actions/runs/609271212 - gollvm could be built agait, on x86_64.

I am heading to arrange CI pipelines, for various versions of Clang (including Clang 13) here - so https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners could be arrange on an Aaarch64 server.

@advancedwebdeveloper
Copy link
Author

I was able to build with such versions of the tools:

$ cmake --version && clang --version && ninja --version
cmake version 3.20.0-rc3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
clang version 13.0.0 (https://github.com/llvm/llvm-project.git 0b274ed499603d30694c0b995252ab014609acf9)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
1.10.2.git

@golang golang locked and limited conversation to collaborators Mar 4, 2022
@rsc rsc unassigned thanm Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

3 participants