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


Reply via email to