Re: A partial workaround for lang/gcc14 building on/for armv7, given STANDARD_BOOTSTRAP hitting some FreeBSD __aeabi_* symbol issues

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.toolchain,gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
[Most text deleted.]

On Apr 27, 2025, at 00:33, [email protected] <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.