Closed advancedwebdeveloper closed 3 years ago
$ as --version GNU assembler (GNU Binutils for Ubuntu) 2.34 This assembler was configured for a target of `x86_64-linux-gnu'.
$ clang --version && clang++ --version clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin
@thanm , @cherrymui : you can find my compressed build folder in https://drive.google.com/file/d/1kLsAR8cXKOX0nBqNy3DExNCz4maK-coU/view?usp=sharing
I was able to compile libgmp and install it locally. Then I have compiled and installed libffi locally. Something is wrong with CMake's config - it is triggering the generation of libgmp's configuration in a wrong way. Thus non-working Makefile is produced.
@advancedwebdeveloper randomly mentioning folks as you did above is not helpful, just generates noise and confusion.
As of 33d28e1b8583e3e0455d80bc5bec05476257c39c gollvm is no longer invoking the external assembler by default, so the version of "as" should not be relevant. I would suggest updating your git clients and redoing the build from a clean slate.
@advancedwebdeveloper randomly mentioning folks as you did above is not helpful, just generates noise and confusion.
As of 33d28e1b8583e3e0455d80bc5bec05476257c39c gollvm is no longer invoking the external assembler by default, so the version of "as" should not be relevant. I would suggest updating your git clients and redoing the build from a clean slate.
What exactly are you proposing? The question was about libffi, probably - it is not compiling. And it is about building gollvm's dependency - and it is surely about invoking GNU as.
I would suggest updating your git clients and redoing the build from a clean slate.
And why did you decide that I have an outdated Git client?
$ git version git version 2.25.1
Not the version of git itself, the revision checked out in each repo. Example:
$ cd [your llvm project root]/llvm/tools/gollvm
$ git log --oneline -1
33d28e1 (HEAD -> master, origin/master, origin/HEAD) gollvm: support debug compression options for integ assembler
$ git -C libgo/libffi log --oneline -1
407394c (HEAD -> master, origin/master, origin/HEAD) docs: fix simple typo, paramters -> parameters (#589)
$ git -C gofrontend log --oneline -1
3b6252d2 (HEAD -> master, origin/master, origin/HEAD) compiler: don't export function type parameter names
Here is what I see:
~/workarea/llvm-project/llvm/tools/gollvm$ git log --oneline -1 33d28e1 (HEAD -> master, origin/master, origin/HEAD) gollvm: support debug compression options for integ assembler
~/workarea/llvm-project/llvm/tools/gollvm$ git -C libgo/libffi log --oneline -1 407394c (HEAD -> master, origin/master, origin/HEAD) docs: fix simple typo, paramters -> parameters (#589)
~/workarea/llvm-project/llvm/tools/gollvm$ git -C gofrontend log --oneline -1 b2be9455 (HEAD -> master, origin/master, origin/HEAD) libgo: adjust NetBSD-specific types for stable syscall API
OK, try rerunning the compile command for that file with -E (and with -MT/-MD etc stripped out). This will show the preprocessed source. Ex:
/usr/bin/clang -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/gollvm/libgo -I/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo -Iinclude -I/home/oceanfish81/workarea/llvm-project/llvm/include -I/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/include -x c -fPIC -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -g -fPIC -g -fsplit-stack -c /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S -E | head -100
Here you go:
$ /usr/bin/clang -D_DEBUG -D_GNU_SOURCE -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/gollvm/libgo -I/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo -Iinclude -I/home/oceanfish81/workarea/llvm-project/llvm/include -I/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/include -x c -fPIC -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -g -fPIC -g -fsplit-stack -c /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S -E | head -100 /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:120:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] cmpb $UNIX64_RET_LAST, %cl ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:208:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] shrl $UNIX64_SIZE_SHIFT, %ecx ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:214:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] shrl $UNIX64_SIZE_SHIFT, %ecx ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:257:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] subq $ffi_closure_FS, %rsp ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:281:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] subq $ffi_closure_FS, %rsp ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:308:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] addq $ffi_closure_FS, %rsp ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:313:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] cmpb $UNIX64_RET_LAST, %al ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:411:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] subq $ffi_closure_FS, %rsp ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:435:7: warning: '$' in identifier [-Wdollar-in-identifier-extension] subq $ffi_closure_FS, %rsp ^ # 1 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" # 1 "
" 1 # 1 " " 3 # 343 " " 3 # 1 " " 1 # 1 " " 2 # 1 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" 2 # 31 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" # 1 "tools/gollvm/libgo/fficonfig.h" 1 # 32 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" 2 # 1 "tools/gollvm/libgo/ffi.h" 1 # 58 "tools/gollvm/libgo/ffi.h" # 1 "tools/gollvm/libgo/ffitarget.h" 1 # 59 "tools/gollvm/libgo/ffi.h" 2 # 33 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" 2 # 1 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/internal64.h" 1 # 34 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" 2 # 1 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/asmnames.h" 1 # 35 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" 2 .text # 59 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S" .balign 8 .globl ffi_call_unix64 .hidden ffi_call_unix64
ffi_call_unix64: .LUW0:
movq (%rsp), %r10 leaq (%rdi, %rsi), %rax movq %rdx, (%rax) movq %rcx, 8(%rax) movq %rbp, 16(%rax) movq %r10, 24(%rax) movq %rax, %rbp
81 "/home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S"
.LUW1:
movq %rdi, %r10 movq %r8, %r11 movl %r9d, %eax
movq (%r10), %rdi movq 0x08(%r10), %rsi movq 0x10(%r10), %rdx movq 0x18(%r10), %rcx movq 0x20(%r10), %r8 movq 0x28(%r10), %r9 movl 0xb0(%r10), %eax testl %eax, %eax jnz .Lload_sse .Lret_from_load_sse:
leaq 0xb8(%r10), %rsp popq %r10
call *%r11
leaq 24(%rbp), %rsp
movq 0(%rbp), %rcx movq 8(%rbp), %rdi movq 16(%rbp), %rbp .LUW2:
cmpb $UNIX64_RET_LAST, %cl movzbl %cl, %r10d leaq .Lstore_table(%rip), %r11 ja .Lsa
leaq (%r11, %r10, 8), %r10
leaq -20(%rsp), %rsi jmp *%r10
.balign 8 .Lstore_table: .balign 8
ret .balign 8
movzbl %al, %eax movq %rax, (%rdi)
Well, I'm stumped then. What you are telling me is that when you rerun the offending command by hand, it works. But when ninja runs it, you get the
home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/unix64.S:36:2: error: expected identifier or '('
errors. I don't have an explanation for that.
@thanm , here are my compressed llmv-project + build_release folders
OK, I should have picked up on this before, but the command that's being used to assemble the libffi files includes these options mixed in with all the others:
-x c
That tells clang that in spite of the ".S" extension on the file, the input language is C, not assembly.
So the next question is how that "-x c" got in there. I looked for it in the LLVM sources-- don't see it anywhere there. How exactly are you running cmake, e.g. exact cmake invocation?
I have pulled the source tarballs of all four dependencies - and configured/built/installed those, in external/separate folders. You can check the proof (compressed build folders here) .
It still does not explain how to avoid locking Ninja's (or make's) targets - I can't compile/link the rest, cause of this (and I can't re-use pre-installed decencies - headers and libs are available from system folders). Patching CMake's config. files would be required.
As for your question: I didn't experiment with libc++, this time - so I tried such configurations:
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/gollvm_dist -G Ninja ../llvm-project/llvm
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/gollvm_dist -DLLVM_TARGETS_TO_BUILD=X86 -G Ninja ../llvm-project/llvm
Maybe -DLLVM_TARGETS_TO_BUILD=X86 triggers something - but it was just to limit against non-desired back-ends.
Let me know what else should I check.
You might try adding -DCMAKE_ASM_COMPILER=clang to your cmake invocation. Shot in the dark, but it might help.
-DLLVM_TARGETS_TO_BUILD=X86 should be fine, I use that routinely.
@thanm , it didn't work.
$ make -j 4 gollvm [ 0%] Built target GoDumpSpecMacroParser [ 0%] Built target LLVMDemangle [ 0%] Built target llvm_vcsrevision_h [ 0%] Built target obj.llvm-tblgen [ 0%] Built target libgmp [ 0%] Built target GoDumpSpecMacroTokenizer [ 0%] Building C object tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/libffi/src/x86/sysv.S.o [ 0%] Built target libbacktrace_piclib [ 0%] Built target libbacktrace_nonpiclib [ 0%] Building C object tools/gollvm/libgo/CMakeFiles/libffi_nonpiclib.dir/libffi/src/x86/sysv.S.o Scanning dependencies of target LLVMSupport Scanning dependencies of target libmpfr [ 0%] Creating directories for 'libmpfr' /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/sysv.S:1137:2: error: expected identifier or '(' .section .note.GNU-stack,"",@progbits ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/sysv.S:1137:2: error: 1 error generated. expected identifier or '(' .section .note.GNU-stack,"",@progbits ^ 1 error generated. make[3]: [tools/gollvm/libgo/CMakeFiles/libffi_nonpiclib.dir/build.make:186: tools/gollvm/libgo/CMakeFiles/libffi_nonpiclib.dir/libffi/src/x86/sysv.S.o] Error 1 make[2]: [CMakeFiles/Makefile2:31338: tools/gollvm/libgo/CMakeFiles/libffi_nonpiclib.dir/all] Error 2 make[2]: Waiting for unfinished jobs.... make[3]: [tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/build.make:186: tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/libffi/src/x86/sysv.S.o] Error 1 make[3]: *** Waiting for unfinished jobs....
for
$ cmake -DCMAKE_ASM_COMPILER=clang -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/gollvm_dist ../llvm-project/llvm
Here is my compressed build folder
make -j4 gollvm
Please add "-G ninja" when invoking cmake. Building with "make" is not something I've ever tried-- please use ninja instead.
This corresponds to what I got with
$ cmake -DCMAKE_ASM_COMPILER=clang -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/gollvm_dist -G Ninja ../llvm-project/llvm
OK, try running cmake with the additional "--trace-expand" option. This will generate huge amounts of trace output, but once you have that you can sift through it and look for the spot where the "-x c" is being introduced.
My log Compressed build folder
Log is too big for any gist or download threw Github's UI.
What should be the next step?
OK, I in inspected the cmake error log -- nothing there. That suggests that the bad behavior is being injected by cmake itself.
On that theory I found this commit:
https://github.com/Kitware/CMake/commit/644d3b86ebb4be108172765e96251162e2537344
which looks very suspicious. What version of cmake are you runnning? Is it 3.18 or beyond by any chance?
I will try building a tip version of cmake to see if I can reproduce.
Change https://golang.org/cl/264633 mentions this issue: gollvm: fix libffi compiler config to be compatible with cmake
It does indeed reproduce. I am sending a fix.
Just a note that I fixed the libbacktrace warnings reported above. These are not causing any trouble, but it seemed worth fixing them.
https://golang.org/cl/264633 has been submitted.
@advancedwebdeveloper thanks for your patience.
This should be fixed now, let me know if not.
OK, I in inspected the cmake error log -- nothing there. That suggests that the bad behavior is being injected by cmake itself.
On that theory I found this commit:
which looks very suspicious. What version of cmake are you runnning? Is it 3.18 or beyond by any chance?
I will try building a tip version of cmake to see if I can reproduce.
$ cmake --version cmake version 3.19.0-rc1
@thanm, and what is the problem with upgrading ../llvm-project/llvm/tools/CMakeLists.txt ? So it would target the latest versions of gmp, mpfr and mpc libraries? That issue with MD5 becomes really annoying - my build crashes, cause of this. I had to replace those hashes by hand.
I have compiled gollvm - so this issue could be closed.
But I have another issue, now: Despite
$ git -C gofrontend log --oneline -1 28f3df46 (HEAD -> master, origin/master, origin/HEAD) net/http/cgi: merge upstream changes to default env vars
and the fact that Golang 1.15.3 was released - I am getting
$ ./go version go version go1.15.2 gollvm LLVM 12.0.0git linux/amd64
. @ianlancetaylor , it looks like it is untrue cause of two reasons:
that's an up-to-date version the front-end (the last commit took place on Fri Oct 23 23:55:09 2020 - and it's Sun Oct 24 20:29:05 2020 now);
LLVM's version equals 11.0.0
We haven't yet updated the gofrontend code to 1.15.3.
But what released then?
* LLVM's version equals [11.0.0](https://github.com/llvm/llvm-project/releases/tag/llvmorg-11.0.0)
@lattner , could you elaborate regarding this?
Please, please, please, do not CC random people to ask questions about GoLLVM. Please be respectful of people's time.
The main Go compiler, the gc compiler, had a 1.15.3 release. That release has not yet been incorporated into the gofrontend code used by GoLLVM.
OK, that means that there is no issue. Probably I would share the "release" build (as also as the "debug" build and other types), during the next two days. @ianlancetaylor , it would to have a summary of those not-yet-implemented features.
$ ./go version go version go1.15.2 gollvm LLVM 12.0.0git linux/amd64
This is expected behavior. When LLVM folks release version X, they then bump the major version of LLVM in trunk to N+1. See for example https://github.com/llvm/llvm-project/blob/7ab7b979d29e/llvm/CMakeLists.txt
While building gollvm, using the latest version of Clang and libc++, I got such a problem:
428/1925] Building CXX object tools/gollvm/passes/CMakeFiles/LLVMCppGoPasses.dir/GoStatepoints.cpp.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/passes/GoStatepoints.cpp:2160:11: warning: 'insertEdge' is deprecated: Use applyUpdates() instead. [-Wdeprecated-declarations] DTU.insertEdge(Old, PadBB); ^ /home/oceanfish81/workarea/llvm-project/llvm/include/llvm/Analysis/DomTreeUpdater.h:159:3: note: 'insertEdge' has been explicitly marked deprecated here LLVM_ATTRIBUTE_DEPRECATED(void insertEdge(BasicBlock From, BasicBlock To), ^ /home/oceanfish81/workarea/llvm-project/llvm/include/llvm/Support/Compiler.h:319:23: note: expanded from macro 'LLVM_ATTRIBUTE_DEPRECATED' decl attribute((deprecated(message))) ^ 1 warning generated. [438/1925] Building CXX object tools/gollvm/passes/CMakeFiles/LLVMCppGoPasses.dir/Util.cpp.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/passes/Util.cpp:74:34: warning: 'getNumElements' is deprecated: Calling this function via a base VectorType is deprecated. Either call getElementCount() and handle the case where Scalable is true or cast to FixedVectorType. [-Wdeprecated-declarations] for (unsigned i = 0, n = VT->getNumElements(); i < n; ++i) { ^ /home/oceanfish81/workarea/llvm-project/llvm/include/llvm/IR/DerivedTypes.h:426:3: note: 'getNumElements' has been explicitly marked deprecated here LLVM_ATTRIBUTE_DEPRECATED( ^ /home/oceanfish81/workarea/llvm-project/llvm/include/llvm/Support/Compiler.h:319:23: note: expanded from macro 'LLVM_ATTRIBUTE_DEPRECATED' decl attribute((deprecated(message))) ^ 1 warning generated. [442/1925] Building C object tools/gollvm/libgo/CMakeFiles/libffi_nonpiclib.dir/libffi/src/x86/ffiw64.c.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case FFI_TYPE_STRUCT: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: note: insert 'attribute((fallthrough));' to silence this warning case FFI_TYPE_STRUCT: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: note: insert 'break;' to avoid fall-through case FFI_TYPE_STRUCT: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:243:18: warning: assigning to 'void ' from 'void (void)' converts between void pointer and function pointer [-Wpedantic] closure->tramp = ffi_go_closure_win64; ^
~~~~2 warnings generated. [444/1925] Building C object tools/gollvm/libgo/CMakeFiles/libbacktrace_piclib.dir/libbacktrace/elf.c.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2085:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 5: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2085:4: note: insert 'attribute((fallthrough));' to silence this warning case 5: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2085:4: note: insert 'break;' to avoid fall-through case 5: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2088:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 4: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2088:4: note: insert 'attribute((fallthrough));' to silence this warning case 4: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2088:4: note: insert 'break;' to avoid fall-through case 4: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2119:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 9: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2119:4: note: insert 'attribute((fallthrough));' to silence this warning case 9: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2119:4: note: insert 'break;' to avoid fall-through case 9: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2122:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 8: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2122:4: note: insert 'attribute((fallthrough));' to silence this warning case 8: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2122:4: note: insert 'break;' to avoid fall-through case 8: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2125:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 7: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2125:4: note: insert 'attribute((fallthrough));' to silence this warning case 7: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2125:4: note: insert 'break;' to avoid fall-through case 7: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2128:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 6: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2128:4: note: insert 'attribute((fallthrough));' to silence this warning case 6: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2128:4: note: insert 'break;' to avoid fall-through case 6: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2131:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 5: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2131:4: note: insert 'attribute((fallthrough));' to silence this warning case 5: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2131:4: note: insert 'break;' to avoid fall-through case 5: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2134:4: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 4: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2134:4: note: insert 'attribute((fallthrough));' to silence this warning case 4: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libbacktrace/elf.c:2134:4: note: insert 'break;' to avoid fall-through case 4: ^ break; 8 warnings generated. [445/1925] Building C object tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/libffi/src/java_raw_api.c.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/java_raw_api.c:328:46: warning: 'ffi_java_raw_size' is deprecated [-Wdeprecated-declarations] ffi_java_raw raw = (ffi_java_raw)alloca (ffi_java_raw_size (cif)); ^ tools/gollvm/libgo/ffi.h:299:56: note: 'ffi_java_raw_size' has been explicitly marked deprecated here size_t ffi_java_raw_size (ffi_cif cif) attribute((deprecated)); ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/java_raw_api.c:331:3: warning: 'ffi_java_ptrarray_to_raw' is deprecated [-Wdeprecated-declarations] ffi_java_ptrarray_to_raw (cif, avalue, raw); ^ tools/gollvm/libgo/ffi.h:295:93: note: 'ffi_java_ptrarray_to_raw' has been explicitly marked deprecated here void ffi_java_ptrarray_to_raw (ffi_cif *cif, void *args, ffi_java_raw raw) attribute((deprecated)); ^ 2 warnings generated. [446/1925] Building C object tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/libffi/src/x86/ffiw64.c.o /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case FFI_TYPE_STRUCT: ^ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: note: insert 'attribute((fallthrough));' to silence this warning case FFI_TYPE_STRUCT: ^ attribute((fallthrough)); /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:79:5: note: insert 'break;' to avoid fall-through case FFI_TYPE_STRUCT: ^ break; /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/x86/ffiw64.c:243:18: warning: assigning to 'void *' from 'void (void)' converts between void pointer and function pointer [-Wpedantic] closure->tramp = ffi_go_closure_win64; ^~~~~2 warnings generated. [448/1925] Building C object tools/gollvm/libgo/CMakeFiles/libffi_piclib.dir/libffi/src/closures.c.o In file included from /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/closures.c:530: /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/dlmalloc.c:2937:33: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic] used = fp - (m->topsize + TOP_FOOT_SIZE); ^~~~~ /home/oceanfish81/workarea/llvm-project/llvm/tools/gollvm/libgo/libffi/src/dlmalloc.c:2193:17: note: expanded from macro 'TOP_FOOT_SIZE' (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE)