On 2019-Nov-19, at 11:19, John Baldwin <jhb at freebsd.org> wrote: > On 11/19/19 10:34 AM, Mark Millard wrote: >> [A similar question to the below exists for base/gcc . The lang/gcc* are >> being ELFv2 enabled for powerpc64 by checking the environment for if it is >> new enough and already is ELFv2 based.] >> >> Begin forwarded message: >> >> From: bugzilla-nore...@freebsd.org >> Subject: [Bug 239813] Update lang/gcc9, lang/gcc9-devel, lang/gcc8, and >> lang/gcc8-devel to ELFv2 ABI on powerpc64 >> Date: November 19, 2019 at 09:32:52 PST >> To: marklmi26-f...@yahoo.com >> >> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239813 >> >> Gerald Pfeifer <ger...@freebsd.org> changed: >> >> What |Removed |Added >> ---------------------------------------------------------------------------- >> Summary|Update lang/gcc8 and |Update lang/gcc9, >> |lang/gcc9 to ELFv2 ABI on |lang/gcc9-devel, lang/gcc8, >> |powerpc64 |and lang/gcc8-devel to >> | |ELFv2 ABI on powerpc64 >> >> --- Comment #38 from Gerald Pfeifer <ger...@freebsd.org> --- >> (In reply to Mark Millard from comment #35) >>> I do not know the intent for devel/powerpc64-gcc relative >>> to future ELFv2 ABI use. Does it need anything? (May be >>> it is updating to gcc9 or some such first?) >> >> Updating to GCC 9 would be my recomendation, though I have no >> involvement with that port. >> >> lang/gcc9-devel should be fine now, both wrt. the new ABI as well >> as building with clang. >> >> Next I'll make the remaining equivalent changes to lang/gcc9 and >> lang/gcc8-devel. > > I've just committed a new devel/freebsd-gcc6 port (with flavors) to replace > the powerp64-gcc port (and slaves) with an intention of creating a > freebsd-gcc9 port as a followup. It seems once freebsd-gcc9 exists we can > apply this change to that. > > base/gcc will also similarly be adjusted to base/gcc6 and base/gcc9 in the > future. > > The reason to keep old versions is that gcc6 is known to work (for some value > of work) for existing releases, so we want to provide different packages for > different major compiler versions to cope with newer OS releases supporting > newer compilers (e.g. we will patch head to work with freebsd-gcc9, but if > we only had a single powerpc64-gcc port we wouldn't be able to provide a > working compiler for stable/11 if we changed powerpc64-gcc to GCC 9). > Cool. I'll adjust my src.conf variations to match the new naming. Just some FYI notes: The old devel/*-gcc ports may need CONLFICTS assignment as well (until they are removed). In an amd64 context I tried poudriere bulk based on including (as a test): devel/freebsd-gcc6 devel/freebsd-gcc6@aarch64 devel/freebsd-gcc6@amd64 devel/freebsd-gcc6@powerpc64 and it got: [00:00:43] [04] [00:00:00] Building devel/freebsd-gcc6@aarch64 | aarch64-gcc6-6.4.0 [00:00:43] [05] [00:00:00] Building devel/freebsd-gcc6@amd64 | amd64-gcc6-6.4.0 [00:00:43] [06] [00:00:00] Building devel/freebsd-gcc6@powerpc64 | powerpc64-gcc6-6.4.0 . . . [00:05:02] [04] [00:04:19] Finished devel/freebsd-gcc6@aarch64 | aarch64-gcc6-6.4.0: Success . . . [00:07:25] [06] [00:06:42] Finished devel/freebsd-gcc6@powerpc64 | powerpc64-gcc6-6.4.0: Success [00:07:51] [05] [00:07:08] Finished devel/freebsd-gcc6@amd64 | amd64-gcc6-6.4.0: Success . . . [00:34:08] Built ports: . . . devel/freebsd-gcc6 . . . devel/freebsd-gcc6@powerpc64 devel/freebsd-gcc6@amd64 . . . The "Built ports" apparently choose to drop the @aarch64 notation and the devel/freebsd-gcc6 was not rejected but had nothing directly built for it. (I've not used flavors all that much so I was curious.) In part I tried devel/freebsd-gcc6 (no explicit flavor) because, as I remember, devel/binutils without an explicit flavor does @native that is distinct from the @(same-as-host) flavor, just like building devel/amd64-binutils in an amd64 environment was distinct from building devel/binutils in that same environment. Or that seemed to be the intent for devel/binutils . === I started a buildworld buildkernel experiment, targeting aarch64 uisng the ddevel/freebsd-gcc6@aarch materials. It seemed to generally work, as far as it got. The below may well have been true if I had tried to the xtoolchain materials instead and may well be far from new. (I've rarely done gcc based aarch64 targeting and do not remember for sure if this resulted before or not.) The build has -v for the gcc6/g++6 commands and so shows more context than usual. --- locore.o --- /usr/src/sys/arm64/arm64/locore.S: Assembler messages: /usr/src/sys/arm64/arm64/locore.S:251: Error: unknown or missing system register name at operand 2 -- `mrs x2,icc_sre_el2' /usr/src/sys/arm64/arm64/locore.S:254: Error: unknown or missing system register name at operand 1 -- `msr icc_sre_el2,x2' The recorded commands were: # Meta data file /usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/sys/GENERIC-NODBG/locore.o.meta CMD /usr/local/bin/aarch64-unknown-freebsd13.0-gcc6 -mcpu=cortex-a53 --sysroot=/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tmp -B/usr/local/aarch64-unknown-freebsd13.0/bin/ - c -x assembler-with-cpp -DLOCORE -O -pipe -g -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/arm64/include -mgeneral-regs-only -ffixed-x18 -ffreestanding -fwrapv -fstack-protector -gdwarf-2 -Wal l -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error=address -Wno-error=aggressive-loop-optimizations -Wno-error=array-bounds -Wno-error=attributes -Wno-error=cast-qual -Wno-error=enum-compare -Wno-error=inline -Wno-erro r=maybe-uninitialized -Wno-error=overflow -Wno-error=sequence-point -Wno-unused-but-set-variable -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-error=shift-overflow -Wno-error=tauto logical-compare -Wno-format-zero-length -v -fno-common -fms-extensions -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fms-extensions -std=iso9899:1999 -Werro r /usr/src/sys/arm64/arm64/locore.S CWD /usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/sys/GENERIC-NODBG TARGET locore.o -- command output -- Using built-in specs. COLLECT_GCC=/usr/local/bin/aarch64-unknown-freebsd13.0-gcc6 Target: aarch64-unknown-freebsd13.0 Configured with: /wrkdirs/usr/ports/devel/freebsd-gcc6/work-aarch64/gcc-6.4.0/configure --target=aarch64-unknown-freebsd13.0 --disable-nls --enable-languages=c,c++ --enable-gnu-indirect-function --ena ble-initfini-array --program-prefix=aarch64-unknown-freebsd13.0- --program-suffix=6 --without-headers --with-gmp=/usr/local --with-pkgversion='FreeBSD Ports Collection for aarch64' --with-system-zlib --with-gxx-include-dir=/usr/include/c++/v1/ --with-sysroot=/ --with-as=/usr/local/bin/aarch64-unknown-freebsd13.0-as --with-ld=/usr/local/bin/aarch64-unknown-freebsd13.0-ld --disable-lto --prefix=/usr /local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/share/info/ --build=x86_64-unknown-freebsd13.0 Thread model: posix gcc version 6.4.0 (FreeBSD Ports Collection for aarch64) COLLECT_GCC_OPTIONS='-mcpu=cortex-a53' '-B' '/usr/local/aarch64-unknown-freebsd13.0/bin/' '-c' '-D' 'LOCORE' '-O' '-pipe' '-g' '-nostdinc' '-I' '.' '-I' '/usr/src/sys' '-I' '/usr/src/sys/contrib/ck/in clude' '-I' '/usr/src/sys/contrib/libfdt' '-D' '_KERNEL' '-D' 'HAVE_KERNEL_OPTION_HEADERS' '-include' 'opt_global.h' '-fno-omit-frame-pointer' '-mno-omit-leaf-frame-pointer' '-fdebug-prefix-map=./mach ine=/usr/src/sys/arm64/include' '-mgeneral-regs-only' '-ffixed-x18' '-ffreestanding' '-fwrapv' '-fstack-protector' '-gdwarf-2' '-Wall' '-Wredundant-decls' '-Wnested-externs' '-Wstrict-prototypes' '-Wm issing-prototypes' '-Wpointer-arith' '-Wcast-qual' '-Wundef' '-Wno-pointer-sign' '-fformat-extensions' '-Wmissing-include-dirs' '-fdiagnostics-show-option' '-Wno-unknown-pragmas' '-Wno-error=address' '-Wno-error=aggressive-loop-optimizations' '-Wno-error=array-bounds' '-Wno-error=attributes' '-Wno-error=cast-qual' '-Wno-error=enum-compare' '-Wno-error=inline' '-Wno-error=maybe-uninitialized' '-Wno -error=overflow' '-Wno-error=sequence-point' '-Wno-unused-but-set-variable' '-Wno-error=misleading-indentation' '-Wno-error=nonnull-compare' '-Wno-error=shift-overflow' '-Wno-error=tautological-compar e' '-Wno-format-zero-length' '-v' '-fno-common' '-finline-limit=8000' '--param' 'inline-unit-growth=100' '--param' 'large-function-growth=1000' '-fms-extensions' '-std=c99' '-Werror' '-mlittle-endian' '-mabi=lp64' /usr/local/libexec/gcc/aarch64-unknown-freebsd13.0/6.4.0/cc1 -E -lang-asm -quiet -nostdinc -v -I . -I /usr/src/sys -I /usr/src/sys/contrib/ck/include -I /usr/src/sys/contrib/libfdt -isysroot /usr/obj /cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/arm64.aarch64/tmp -D LOCORE -D _KERNEL -D HAVE_KERNEL_OPTION_HEADERS -include opt_global.h /usr/src/sys/arm64/arm64/locore.S -mcpu=cortex-a53 -mno-omit- leaf-frame-pointer -mgeneral-regs-only -mlittle-endian -mabi=lp64 -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-po inter-sign -Wmissing-include-dirs -Wno-unknown-pragmas -Wno-error=address -Wno-error=aggressive-loop-optimizations -Wno-error=array-bounds -Wno-error=attributes -Wno-error=cast-qual -Wno-error=enum-co mpare -Wno-error=inline -Wno-error=maybe-uninitialized -Wno-error=overflow -Wno-error=sequence-point -Wno-unused-but-set-variable -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-erro r=shift-overflow -Wno-error=tautological-compare -Wno-format-zero-length -Werror -fno-omit-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/arm64/include -ffixed-x18 -ffreestanding -fwrapv -fst ack-protector -fformat-extensions -fdiagnostics-show-option -fno-common -finline-limit=8000 -fms-extensions -g -gdwarf-2 -fworking-directory -O -fno-directives-only -o - | /usr/local/bin/aarch64-unknown-freebsd13.0-as --gdwarf2 --debug-prefix-map ./machine=/usr/src/sys/arm64/include -v -I . -I /usr/src/sys -I /usr/src/sys/contrib/ck/include -I /usr/src/sys/contrib/libf dt -EL -march=armv8-a+crc -mabi=lp64 -o locore.o GNU assembler version 2.33.1 (aarch64-unknown-freebsd13.0) using BFD version (GNU Binutils) 2.33.1 #include "..." search starts here: #include <...> search starts here: . /usr/src/sys /usr/src/sys/contrib/ck/include /usr/src/sys/contrib/libfdt End of search list. /usr/src/sys/arm64/arm64/locore.S: Assembler messages: /usr/src/sys/arm64/arm64/locore.S:251: Error: unknown or missing system register name at operand 2 -- `mrs x2,icc_sre_el2' /usr/src/sys/arm64/arm64/locore.S:254: Error: unknown or missing system register name at operand 1 -- `msr icc_sre_el2,x2' *** Error code 1 === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) _______________________________________________ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"
Re: [Bug 239813] Update lang/gcc9, lang/gcc9-devel, lang/gcc8, and lang/gcc8-devel to ELFv2 ABI on powerpc64
Mark Millard via freebsd-toolchain Tue, 19 Nov 2019 19:55:40 -0800
- Fwd: [Bug 239813] Update lang/gcc9, lan... Mark Millard via freebsd-toolchain
- Re: Fwd: [Bug 239813] Update lang/... John Baldwin
- Re: [Bug 239813] Update lang/g... Mark Millard via freebsd-toolchain
- Re: [Bug 239813] Update la... Mark Linimon
- Re: [Bug 239813] Updat... Mark Millard via freebsd-toolchain
- Re: [Bug 239813] ... Mark Millard via freebsd-toolchain