devel/freebsd-gcc12 based aarch64 buildkernel: rejection of sys/arm64/arm64/locore.S assembler notation
Date: Sat, 11 Feb 2023 21:55:18 UTC
[For the buildworld notice that I reported elsewhere, the debug build got the same type of notices/stopping issue.] After the buildworld notices that I reported I tried buildkernel by itself. Again the non-debug and debug builds basically matched. An early message (that did not stop the build) was: make[2]: "/usr/obj/BUILDs/main-CA72-nodbg-gccxtc/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG/Makefile" line 47: warning: "Compiler is too old to support PERTHREAD_SSP" The logic structure in the Makefile only considers clang as capable: PERTHREAD_SSP_ENABLED!= grep PERTHREAD_SSP opt_global.h || true ; echo .if !empty(PERTHREAD_SSP_ENABLED) . if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 130000 ARM64_SSP_CFLAGS = -mstack-protector-guard=sysreg ARM64_SSP_CFLAGS += -mstack-protector-guard-reg=sp_el0 ARM64_SSP_CFLAGS += -mstack-protector-guard-offset=0 . else ARM64_SSP_CFLAGS += -DPERTHREAD_SSP_WARNING . warning "Compiler is too old to support PERTHREAD_SSP" . endif CFLAGS += ${ARM64_SSP_CFLAGS} ARCH_FLAGS += ${ARM64_SSP_CFLAGS} .endif I've not checked if devel/freebsd-gcc12 has alternatives that would give support for PERTHREAD_SSP_ENABLED vs. not. As for the first notices tied to stopping the build: --- locore.o --- /usr/main-src/sys/arm64/arm64/locore.S: Assembler messages: /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: junk at end of line, first unrecognized character is `U' *** [locore.o] Error code 1 make[2]: stopped in /usr/obj/BUILDs/main-CA72-nodbg-gccxtc/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG .ERROR_TARGET='locore.o' .ERROR_META_FILE='/usr/obj/BUILDs/main-CA72-nodbg-gccxtc/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG/locore.o.meta' Or, as shown in the .meta file: . . . | /usr/local/bin/aarch64-unknown-freebsd14.0-as --debug-prefix-map ./machine=/usr/main-src/sys/arm64/include -v -I . -I /usr/main-src/sys -I /usr/main-src/sys/contrib/ck/include -I /usr/main-src/sys/co ntrib/libfdt -I /usr/main-src/sys/contrib/device-tree/include --gdwarf-5 -EL -march=armv8-a+crc -mabi=lp64 -o locore.o GNU assembler version 2.39 (aarch64-unknown-freebsd14.0) using BFD version (GNU Binutils) 2.39 #include "..." search starts here: #include <...> search starts here: . /usr/main-src/sys /usr/main-src/sys/contrib/ck/include /usr/main-src/sys/contrib/libfdt /usr/main-src/sys/contrib/device-tree/include End of search list. /usr/main-src/sys/arm64/arm64/locore.S: Assembler messages: /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: found 'U', expected: ')' /usr/main-src/sys/arm64/arm64/locore.S:839: Error: junk at end of line, first unrecognized character is `U' *** Error code 1 With that, I've provided debug & non-debug tier 1 notes (amd64 and aarch64).( http://ci.freebsd.org/ only has amd64 debug.) But mostly I've commented on notices associated with stopping the build in an incomplete state --not the many other warnings/notes produced. While I also have access to armv7 (and armv7 chroot/jail on aarch64), I do not expect to be experimenting with armv7 and devel/freebsd-gcc12@armv7 for such just for my own curiosity. Note: My builds were not a detailed replication of the FreeBSD ci server's type of build context, even ignoring the debug vs. non-debug coverage and the aarch64 testing. The results are based on my normal, personal buildworld buildkernel context. === Mark Millard marklmi at yahoo.com