Re: A partial workaround for lang/gcc14 building on/for armv7, given STANDARD_BOOTSTRAP hitting some FreeBSD __aeabi_* symbol issues
- Reply: Mark Millard : "RETITLED/edited/shorter: Building lang/gcc14 fails only on main [so: 15], works on 14.2-Release and 14.2-Stable, why?"
- Reply: mmel@freebsd.org: "Re: A partial workaround for lang/gcc14 building on/for armv7, given STANDARD_BOOTSTRAP hitting some FreeBSD __aeabi_* symbol issues"
- In reply to: mmel@freebsd.org: "Re: A partial workaround for lang/gcc14 building on/for armv7, given STANDARD_BOOTSTRAP hitting some FreeBSD __aeabi_* symbol issues"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 27 Apr 2025 15:34:58 UTC
[Most text deleted.]
On Apr 27, 2025, at 00:33, mmel@freebsd.org <mmel@FreeBSD.org> wrote:
>
> It's hard to respond in the right place because of tons of unrelated statements, but you overlooked that gcc14 uses the '-static-libgcc' option for the failed test. *That's different from gcc13*, and it also takes libgcc_s.so out of the picture because it's not used at all (in the case of gcc14).
...
> I don't know the internals of gcc, but the problem is clear and simple. gcc14 does not provide unwinder symbols in the case of '-static-libgcc' and the FBSD configuration in default(implicit) libraries.
Then why does building lang/gcc14 work on each of:
14.1-Release
14.2-Release
14.2-Stable
but not on main [so: 15]?
Only main has armv7 lang/gcc14* build failures
on the official builders. Seems odd if it is just
lang/gcc1[45]* 's problem.
Official 14.1R builder success logs include:
https://pkg-status.freebsd.org/ampere3/data/141releng-armv7-default/a66c1b68c862/logs/gcc14-14.2.0_3.log
---Begin OPTIONS List---
===> The following configuration options are available for gcc14-14.2.0_3:
GRAPHITE=off: Support for Graphite loop optimizations
====> Options available for the radio BOOTSTRAP: you can only select none or one of them
LTO_BOOTSTRAP=off: Build using a full LTO bootstrap
STANDARD_BOOTSTRAP=on: Build using a full bootstrap without LTO
===> Use 'make config' to modify these settings
---End OPTIONS List---
https://pkg-status.freebsd.org/ampere3/data/141releng-armv7-default/a66c1b68c862/logs/gcc14-devel-14.2.1.s20250308,1.log
---Begin OPTIONS List---
===> The following configuration options are available for gcc14-devel-14.2.1.s20250308,1:
GRAPHITE=off: Support for Graphite loop optimizations
====> Options available for the single BOOTSTRAP: you have to select exactly one of them
LTO_BOOTSTRAP=off: Build using a full LTO bootstrap
STANDARD_BOOTSTRAP=on: Build using a full bootstrap without LTO
===> Use 'make config' to modify these settings
---End OPTIONS List---
Note: armv7 has not had much build time in 2025-Apr so far, thus
the lack of 14.2R examples.
And local builds via:
release-armv7 14.2-RELEASE-p2 armv7 pkgbase 2025-03-13 21:50:17 /usr/local/poudriere/jails/release-armv7
[01:58:58] [01] [01:34:53] Finished lang/gcc14 | gcc14-14.2.0_3: Success
and via:
official-armv7 14.2-STABLE armv7 pkgbase 2025-03-13 21:47:04 /usr/local/poudriere/jails/official-armv7
[01:53:58] [01] [01:32:13] Finished lang/gcc14 | gcc14-14.2.0_3: Success
work as well.
> I can only assume that there is some problem with the implicit library definition related to the FBSD configuration.
>
> IMHO '-static-libgcc' should imply '-lgcc_eh', but again this is just gues. Or the default linker script needs more love.
The failing context on main has:
File: /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(unwind-arm.o)
000000f8 00002f1a R_ARM_GOT_BREL 00000c30 __aeabi_unwind_cpp_pr2
000000fc 0000301a R_ARM_GOT_BREL 00000c28 __aeabi_unwind_cpp_pr1
46: 0000000000000c20 8 FUNC GLOBAL HIDDEN 1 __aeabi_unwind_cpp_pr0
47: 0000000000000c30 8 FUNC WEAK HIDDEN 1 __aeabi_unwind_cpp_pr2
48: 0000000000000c28 8 FUNC WEAK HIDDEN 1 __aeabi_unwind_cpp_pr1
That looks the same as what is install by working
builds on:
14.1-Release
14.2-Release
14.2-Stable
Mark Millard
marklmi at yahoo.com