Re: RETITLED/edited/shorter: Building lang/gcc14 fails only on main [so: 15], works on 14.2-Release and 14.2-Stable, why?
- Reply: Michal Meloun : "Re: RETITLED/edited/shorter: Building lang/gcc14 fails only on main [so: 15], works on 14.2-Release and 14.2-Stable, why?"
- Reply: Michal Meloun : "Re: RETITLED/edited/shorter: Building lang/gcc14 fails only on main [so: 15], works on 14.2-Release and 14.2-Stable, why?"
- In reply to: Mark Millard : "Re: RETITLED/edited/shorter: Building lang/gcc14 fails only on main [so: 15], works on 14.2-Release and 14.2-Stable, why?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 27 Apr 2025 22:39:36 UTC
On Apr 27, 2025, at 11:34, Mark Millard <marklmi@yahoo.com> wrote:
> On Apr 27, 2025, at 09:21, Mark Millard <marklmi@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:
# 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.
===
Mark Millard
marklmi at yahoo.com