On Apr 27, 2025, at 16:39, Mark Millard <mark...@yahoo.com> wrote: > On Apr 27, 2025, at 15:39, Mark Millard <mark...@yahoo.com> wrote: > >> On Apr 27, 2025, at 11:34, Mark Millard <mark...@yahoo.com> wrote: >> >>> On Apr 27, 2025, at 09:21, Mark Millard <mark...@yahoo.com> wrote: >>> >>>> [I've also dropped mmel@ from the To: list.] >>>> >>>> Why does building lang/gcc14 work on each of: >>>> >>>> 14.1-Release >>>> 14.2-Release >>>> 14.2-Stable >>>> >>>> but not on main [so: 15]? >>> >>> To be more explicit . . . >>> >>> For all the combinations of: >>> >>> FreeBSD 14.2-* vs. main and lang/gcc13 vs. lang/gcc14 >>> >>> the only combination that fails is: >>> >>> FreeBSD main building lang/gcc14 . >>> >>> So changes to both FreeBSD and to lang/gcc* are involved. >>> >>> mell@ noted that -static-libgcc use (and, so, libgcc_eh.a >>> use) in the build of lang/gcc14 is involved, something >>> lang/gcc13 does not use at what is the lang/gcc14 failure >>> point. >>> >>> I've not managed isolate what contributing difference >>> in FreeBSD 14.2 vs. FreeBSD main is also involved. >>> >>>> Only main has armv7 lang/gcc14* build failures >>>> on the official builders. Seems odd if it is just >>>> lang/gcc1[45]* 's problem. >>>> >>>> main gets a failure where the config.log shows >>>> that it found but rejected a hidden symbol: >>>> >>>> configure:3479: /wrkdirs/usr/ports/lang/gcc14/work/.build/./prev-gcc/xgcc >>>> -B/wrkdirs/usr/ports/lang/gcc14/work/.build/./prev-gcc/ >>>> -B/usr/local/armv7-portbld-freebsd15.0/bin/ -B/usr/local/armv7-portbl >>>> d-freebsd15.0/bin/ -B/usr/local/armv7-portbld-freebsd15.0/lib/ -isystem >>>> /usr/local/armv7-portbld-freebsd15.0/include -isystem >>>> /usr/local/armv7-portbld-freebsd15.0/sys-include -fno-checking -o confte >>>> st -g -O2 -fno-checking -gtoggle -mcpu=cortex-a7 -DLIBICONV_PLUG >>>> -static-libstdc++ -static-libgcc conftest.c >&5 >>>> /usr/local/bin/ld: warning: libunwind.o: missing .note.GNU-stack section >>>> implies executable stack >>>> /usr/local/bin/ld: NOTE: This behaviour is deprecated and will be removed >>>> in a future version of the linker >>>> /usr/local/bin/ld: conftest: hidden symbol `__aeabi_unwind_cpp_pr0' in >>>> /wrkdirs/usr/ports/lang/gcc14/work/.build/./prev-gcc/libgcc_eh.a(unwind-arm.o) >>>> is referenced by DSO >>>> /usr/local/bin/ld: final link failed: bad value >>>> collect2: error: ld returned 1 exit status >>>> >>>> Per mmel@: Note the -static-libgcc is involved, >>>> something that only happens for lang/gcc1[45]* . >>>> (This explains lang/gcc13 building on main.) >>>> >>>> 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. >>>> >>>> The failing context on main has (involving a grep for >>>> lines of interest): >>>> >>>> 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 the working >>>> builds on: >>>> >>>> 14.1-Release >>>> 14.2-Release >>>> 14.2-Stable >>>> >>>> The official build logs show the following also >>>> fail --just on main: >>>> >>>> lang/gcc14-devel >>>> lang/gcc15-devel >>> >> >> One armv7 FreeBSD 14.2 vs. main difference that I've just noticed is . . . >> >> >> armv7 FreeBSD stable/14 based: >> >> # readelf -a /usr/lib/libgcc_s.so | grep -e '__aeabi_unwind_cpp_pr' -e >> '^File:' | grep -v -e ' R_ARM_NONE ' -e ' UND ' | less >> 0002c568 00001715 R_ARM_GLOB_DAT 000187c4 __aeabi_unwind_cpp_pr2 >> 0002c558 00005715 R_ARM_GLOB_DAT 000184b4 __aeabi_unwind_cpp_pr0 >> 0002c560 00005e15 R_ARM_GLOB_DAT 000187b8 __aeabi_unwind_cpp_pr1 >> 23: 00000000000187c4 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr2@@GCC_3.5 (8) >> 87: 00000000000184b4 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr0@@GCC_3.5 (8) >> 94: 00000000000187b8 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr1@@GCC_3.5 (8) >> >> >> armv7 FreeBSD main based: > > Make that, personal build of armv7 FreeBSD main based: > >> # readelf -a /usr/lib/libgcc_s.so | grep -e '__aeabi_unwind_cpp_pr' -e >> '^File:' | grep -v -e ' R_ARM_NONE ' -e ' UND ' | less >> 00028f98 00001515 R_ARM_GLOB_DAT 0001674c __aeabi_unwind_cpp_pr2 >> 00028f88 00005515 R_ARM_GLOB_DAT 00016570 __aeabi_unwind_cpp_pr0 >> 00028f90 00005c15 R_ARM_GLOB_DAT 00016740 __aeabi_unwind_cpp_pr1 >> 21: 000000000001674c 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr2@@GCC_3.5 (8) >> 85: 0000000000016570 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr0@@GCC_3.5 (8) >> 92: 0000000000016740 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr1@@GCC_3.5 (8) >> 256: 0000000000016570 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr0 >> 273: 0000000000016740 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr1 >> 326: 000000000001674c 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr2 >> >> >> So main has __aeabi_unwind_cpp_p* symbols without @@GCC_3.5 notation included >> in libgcc_s.so but stable/14 does not have those. > > Well, that looks to also be a difference between my > personal FreeBSD armv7 main builds (which have the > extra lines) and the official PkgBase main installs > (which do not). > > A PkgBase armv7 FreeBSD main based context: > > # readelf -a /usr/lib/libgcc_s.so | grep -e '__aeabi_unwind_cpp_pr' -e > '^File:' | grep -v -e ' R_ARM_NONE ' -e ' UND ' | less > 0002c248 00001715 R_ARM_GLOB_DAT 0001849c > __aeabi_unwind_cpp_pr2@@GCC_3.5 > 0002c238 00005715 R_ARM_GLOB_DAT 0001818c > __aeabi_unwind_cpp_pr0@@GCC_3.5 > 0002c240 00005e15 R_ARM_GLOB_DAT 00018490 > __aeabi_unwind_cpp_pr1@@GCC_3.5 > 23: 0001849c 12 FUNC GLOBAL DEFAULT 14 > __aeabi_unwind_cpp_pr2@@GCC_3.5 > 87: 0001818c 12 FUNC GLOBAL DEFAULT 14 > __aeabi_unwind_cpp_pr0@@GCC_3.5 > 94: 00018490 12 FUNC GLOBAL DEFAULT 14 > __aeabi_unwind_cpp_pr1@@GCC_3.5 > > I'm not aware of making any changes to how such > libraries are built for my personal builds. > > As the official build servers for main armv7 have the > lang/gcc14 build failures and are not based on my > personal builds, the extra lines have no known status > for the issue. (I've no way to check what the poudriere > armv7 jail has on the official build server ampere2.) >
A PkgBase style armv7 main poudriere jail still gets the lang/gcc14 build failure. So the lines: >> 256: 0000000000016570 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr0 >> 273: 0000000000016740 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr1 >> 326: 000000000001674c 12 FUNC GLOBAL DEFAULT 14 >> __aeabi_unwind_cpp_pr2 are not required for the armv7 main failure to build lang/gcc14. So: still no clue what about armv7 main leads to its contribution to the failure context. [I've still also have no clue why my personal build of armv7 main has those 3 lines while PkgBase did not.] === Mark Millard marklmi at yahoo.com