It does not really fit with the rest so I'll add this as
a top post for the armv7 context:

Only main [so: 15] has armv7 lang/gcc14* build failures
on teh oficial 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 a local build 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


official-armv7   14.2-STABLE               armv7         pkgbase 2025-03-13 
21:47:04 /usr/local/poudriere/jails/official-armv7

(I'll update this after the build stops.)

Mark

On Apr 26, 2025, at 19:55, Mark Millard <mark...@yahoo.com> wrote:

> On Apr 26, 2025, at 11:53, Mark Millard <mark...@yahoo.com> wrote:
> 
>> On Apr 26, 2025, at 07:45, Michal Meloun <m...@freebsd.org> wrote:
>>> 
>>> On 26.04.2025 9:23, Mark Millard wrote:
>>>> FreeBSD has not and does not support all the __aeabi_ prefixed
>>>> symbols to make everything work for all the lang/gcc* .
>>>> It has gotten to the point that for lang/gcc14 (so modern) that
>>>> the likes of:
>>>> __aeabi_unwind_cpp_pr0
>>>> __aeabi_unwind_cpp_pr1
>>>> __aeabi_unwind_cpp_pr2
>>>> lead to the likes of:
>>>> /usr/local/bin/ld: a.out: 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
>>> I am afraid that this is an incorrect and misleading analysis:
>> 
>> Okay. These specific symbols are apparently not analogous
>> to others that have been run into in the past. I assumed
>> too much common context.
>> 
>>> 1) FreeBSD provides (and has provided for a long time) 
>>> __aeabi_unwind_cpp_pr* symbols in /usr/lib/libgcc_eh.lib in very similar 
>>> manner as gcc.
>> 
>> FYI: lang/gcc13 builds with STANDARD_BOOTSTRAP okay. lang/gcc14 and lang 
>> gcc15 do not.
>> 
>> The below explores the installed package materials, not the
>> bootstrap materials that failed. (I've not gotten to that
>> yet.)
>> 
>> When I look for definitions in the installed /usr/local/lib/gcc13/
>> I find:
>> 
>> # find /usr/local/lib/gcc13/ -type f -exec readelf -a {} \; -print 2>&1 | 
>> grep -e __aeabi_unwind_cpp_pr -e ^/ -e ^File: | grep -v "readelf: Not an ELF 
>> file" | grep -v " UND " | grep -v " R_ARM_NONE" | more
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/plugin/libcc1plugin.so.0.0.0
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/plugin/libcp1plugin.so.0.0.0
>> File: 
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a(unwind-arm.o)
>> 000000f8 0000291a R_ARM_GOT_BREL      00000c34 __aeabi_unwind_cpp_pr2
>> 000000fc 00002a1a R_ARM_GOT_BREL      00000c2c __aeabi_unwind_cpp_pr1
>>   40: 0000000000000c24     8 FUNC    GLOBAL HIDDEN     1 
>> __aeabi_unwind_cpp_pr0
>>   41: 0000000000000c34     8 FUNC    WEAK   HIDDEN     1 
>> __aeabi_unwind_cpp_pr2
>>   42: 0000000000000c2c     8 FUNC    WEAK   HIDDEN     1 
>> __aeabi_unwind_cpp_pr1
>> File: 
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a(libunwind.o)
>> File: 
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a(pr-support.o)
>> File: 
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a(unwind-c.o)
>> File: 
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a(emutls.o)
>> /usr/local/lib/gcc13/gcc/armv7-portbld-freebsd15.0/13.3.0/libgcc_eh.a
>> . . .
>> 0001e6cc 00005715 R_ARM_GLOB_DAT      0001bc84 __aeabi_unwind_cpp_pr2
>> 0001e6d0 00005115 R_ARM_GLOB_DAT      0001bc74 __aeabi_unwind_cpp_pr0
>> 0001e6e8 00005515 R_ARM_GLOB_DAT      0001bc7c __aeabi_unwind_cpp_pr1
>>   81: 000000000001bc74     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0@@GCC_3.5 (12)
>>   85: 000000000001bc7c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1@@GCC_3.5 (12)
>>   87: 000000000001bc84     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2@@GCC_3.5 (12)
>> 3974: 000000000001bc84     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2
>> 3984: 000000000001bc74     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0
>> 4557: 000000000001bc7c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1
>> /usr/local/lib/gcc13/libgcc_s.so.1
>> 
>> (Note that each file path was listed after the content instead
>> of before.)
>> 
>> 
>> My work around build of lang/gcc14 ends up with:
>> 
>> # find /usr/local/lib/gcc14/ -type f -exec readelf -a {} \; -print 2>&1 | 
>> grep -e __aeabi_unwind_cpp_pr -e ^/ -e ^File: | grep -v "readelf: Not an ELF 
>> file" | grep -v " UND " | grep -v " R_ARM_NONE" | more
>> . . .
>> File: 
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/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
>> File: 
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/libgcc_eh.a(libunwind.o)
>> File: 
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/libgcc_eh.a(pr-support.o)
>> File: 
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/libgcc_eh.a(unwind-c.o)
>> File: 
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/libgcc_eh.a(emutls.o)
>> /usr/local/lib/gcc14/gcc/armv7-portbld-freebsd15.0/14.2.0/libgcc_eh.a
>> . . .
>> 0001eb90 00005715 R_ARM_GLOB_DAT      0001c12c __aeabi_unwind_cpp_pr2
>> 0001eb94 00005115 R_ARM_GLOB_DAT      0001c11c __aeabi_unwind_cpp_pr0
>> 0001ebac 00005515 R_ARM_GLOB_DAT      0001c124 __aeabi_unwind_cpp_pr1
>>   81: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0@@GCC_3.5 (14)
>>   85: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1@@GCC_3.5 (14)
>>   87: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2@@GCC_3.5 (14)
>> 4007: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2
>> 4017: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0
>> 4593: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1
>> /usr/local/lib/gcc14/libgcc_s.so.1
>> 
>> (Note that each file path was listed after the content instead
>> of before.)
>> 
>> 
>> What I see in FreeBSD's /usr/lib/libgcc* are:
>> 
>> # readelf -a /usr/lib/libgcc* -print 2>&1 | grep -e __aeabi_unwind_cpp_pr -e 
>> ^File: | grep -v "readelf: Not an ELF # readelf -a /usr/lib/libgcc* 2>&1 | 
>> grep -e __aeabi_unwind_cpp_pr -e ^File: | grep -v "readelf: Not an ELF file" 
>> | grep -v " UND " | grep -v " R_ARM_NONE" | more
>> . . .
>> File: /usr/lib/libgcc_eh.a
>> File: /usr/lib/libgcc_eh.a(int_util.o)
>> File: /usr/lib/libgcc_eh.a(gcc_personality_v0.o)
>> File: /usr/lib/libgcc_eh.a(Unwind-EHABI.o)
>>   44: 00000000000009f4    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr0
>>   56: 0000000000000bc4    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr1
>>   61: 0000000000000bd0    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr2
>> File: /usr/lib/libgcc_eh.a(Unwind-sjlj.o)
>> File: /usr/lib/libgcc_eh.a(UnwindLevel1-gcc-ext.o)
>> File: /usr/lib/libgcc_eh.a(UnwindLevel1.o)
>> File: /usr/lib/libgcc_eh.a(UnwindRegistersRestore.o)
>> File: /usr/lib/libgcc_eh.a(UnwindRegistersSave.o)
>> File: /usr/lib/libgcc_eh.a(libunwind.o)
>> 000001e4 0000af60 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr1
>> 000001e8 0000b560 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr0
>> 000001fc 0000de60 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr2
>> File: /usr/lib/libgcc_s.so
>> 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
>> 
>> [Note that each file path was listed before the content instead
>> of after. There is a "File: " prefix but no '(*.o)' suffix on
>> the just-file-name lines.]
>> 
>> 
>> I do not know if the below is of any significance or not.
>> 
>> Note the libgcc_eh.a (R_ARM_NONE examples filtered out)
>> gcc14 vs. FreeBSD has:
>> 
>> 000000f8 00002f1a R_ARM_GOT_BREL      00000c30 __aeabi_unwind_cpp_pr2
>> 000000fc 0000301a R_ARM_GOT_BREL      00000c28 __aeabi_unwind_cpp_pr1
>> vs.
>> 000001e4 0000af60 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr1
>> 000001e8 0000b560 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr0
>> 000001fc 0000de60 R_ARM_GOT_PREL      00000000 __aeabi_unwind_cpp_pr2
>> 
>> That suggests gcc14 has R_ARM_NONE for all __aeabi_unwind_cpp_pr0
>> references in libgcc_eh.a .
>> 
>> Also, the libgcc_eh.a gcc14 vs. FreeBSD has:
>> 
>>   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
>> vs.
>>   44: 00000000000009f4    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr0
>>   56: 0000000000000bc4    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr1
>>   61: 0000000000000bd0    12 FUNC    GLOBAL DEFAULT    2 
>> __aeabi_unwind_cpp_pr2
>> 
>> And libgcc_eh.a has the Unwind-EHABI.o / libunwind.o split in FreeBSD vs.
>> the just unwind-arm.o in gcc14.
>> 
>> There is the libgcc_s.so.1 (gcc14) vs. libgcc_s.so (FreeBSD) having:
>> 
>>   81: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0@@GCC_3.5 (14)
>>   85: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1@@GCC_3.5 (14)
>>   87: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2@@GCC_3.5 (14)
>> 4007: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr2
>> 4017: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
>> __aeabi_unwind_cpp_pr0
>> 4593: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
>> __aeabi_unwind_cpp_pr1
>> vs.
>>   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
>> 
>> 
>> Again: I do not know the significance vs. lack of such.
>> 
>> But lang/gcc13 and lang/gcc14 seem to agree for those sorts
>> of things. So it seems I should ignore such gcc* vs. FreeBSD
>> distinctions when I later look at the bootstrap failure
>> materials.
>> 
>>> 2) The problem is exactly the opposite, gcc14 does not provide these 
>>> symbols.
> 
> When I look in a failed build tree I see what I saw in the
> installed materials, though under a build path:
> 
> . . .
> 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
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(libunwind.o)
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(pr-support.o)
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(unwind-c.o)
> File: /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(emutls.o)
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a
> 0001eb90 00005715 R_ARM_GLOB_DAT      0001c12c __aeabi_unwind_cpp_pr2
> 0001eb94 00005115 R_ARM_GLOB_DAT      0001c11c __aeabi_unwind_cpp_pr0
> 0001ebac 00005515 R_ARM_GLOB_DAT      0001c124 __aeabi_unwind_cpp_pr1
>    81: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
> __aeabi_unwind_cpp_pr0@@GCC_3.5 (14)
>    85: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr1@@GCC_3.5 (14)
>    87: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr2@@GCC_3.5 (14)
>  4007: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr2
>  4017: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
> __aeabi_unwind_cpp_pr0
>  4593: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr1
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_s.so.1
> . . .
> 
> (Related details are shown later.)
> 
> It looks like the lang/gcc13 and lang/gcc14 installed material
> that I provided in a previous Email, other than path details.
> 
> Just what are you proposing that lang/gcc14 should change
> related to the above?
> 
>> For the above, I did not look at the bootstrap stage materials
>> yet. So I'm not making any claim about this at this point here.
>> 
>>> In the configuration phase, configure builds executable with the bootstrap 
>>> libgcc(in this case the static libgcc.a), but with the host(FBSD) libc. The 
>>> FBSD libc uses unwinder, but the bootstrap libgcc.a does not provide it.
> 
> Just what is wrong with the above that needs to change?
> 
>>> see:
>>> "/usr/ports/lang/gcc14/work/.build/./prev-gcc/xgcc 
>>> -B/usr/ports/lang/gcc14/work/.build/./prev-gcc/ 
>>> -B/usr/local/armv7-portbld-freebsd15.0/bin/ 
>>> -B/usr/local/armv7-portbld-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 -g -O2 
>>> -fno-checking -gtoggle -DLIBICONV_PLUG -static-libstdc++ -static-libgcc 
>>> conftest.c
> 
> The "hidden symbol `__aeabi_unwind_cpp_pr0'" error message
> below looks like the symbol was found to me. The problem
> looks to instead be tied to a disallowed hidden symbol
> status? Is this some sort of ABI mismatch that one side
> or the other needs to be made to match to avoid the
> disallowed status?
> 
> 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
> 
> 
> For reference:
> 
> # ls -lodT /usr/local/armv7-portbld-freebsd15.0/*
> drwxr-xr-x  2 root wheel - 1024 Apr 26 09:35:00 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin
> drwxr-xr-x  3 root wheel -  512 Feb 21 06:35:04 2025 
> /usr/local/armv7-portbld-freebsd15.0/lib
> 
> # ls -lodT /usr/local/armv7-portbld-freebsd15.0/*/*
> -r-xr-xr-x  2 root wheel -   58744 Mar 13 16:01:53 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/ar
> -r-xr-xr-x  2 root wheel -  705080 Mar 13 16:02:13 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/as
> -r-xr-xr-x  1 root wheel -   85760 Mar 13 16:01:58 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/dlltool
> -r-xr-xr-x  4 root wheel - 2037008 Mar 13 16:02:29 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/ld
> -r-xr-xr-x  4 root wheel - 2037008 Mar 13 16:02:29 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/ld.bfd
> -r-xr-xr-x  2 root wheel - 4100236 Mar 13 16:02:17 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/ld.gold
> -r-xr-xr-x  2 root wheel -   44800 Mar 13 16:02:03 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/nm
> -r-xr-xr-x  2 root wheel -  170292 Mar 13 16:01:55 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/objcopy
> -r-xr-xr-x  2 root wheel -  506448 Mar 13 16:01:52 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/objdump
> -r-xr-xr-x  2 root wheel -   58748 Mar 13 16:01:54 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/ranlib
> -r-xr-xr-x  2 root wheel -  800524 Mar 13 16:02:01 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/readelf
> -r-xr-xr-x  2 root wheel -  170296 Mar 13 16:02:04 2025 
> /usr/local/armv7-portbld-freebsd15.0/bin/strip
> drwxr-xr-x  2 root wheel -  282112 Apr 26 09:35:00 2025 
> /usr/local/armv7-portbld-freebsd15.0/lib/ldscripts
> 
> 
>>> In any case, I don't see any way to fix this on the FBSD (kernel, userland) 
>>> side. There is only one little strange item: that each single object 
>>> references __aeabi_unwind_cpp_p* symbols...
>>> 
>>> Michal
>>> 
>>>> when attempting a build of lang/gcc14 for:
>>>> OPTIONS_DEFAULT_armv7= STANDARD_BOOTSTRAP
>>>> # find /wrkdirs/ -name config.log -exec grep -q __aeabi_unwind_cpp_pr0 {} 
>>>> \; -print | more
>>>> /wrkdirs/usr/ports/lang/gcc14/work/.build/libdecnumber/config.log
>>>> /wrkdirs/usr/ports/lang/gcc14/work/.build/libbacktrace/config.log
>>>> /wrkdirs/usr/ports/lang/gcc14/work/.build/libiberty/config.log
>>>> /wrkdirs/usr/ports/lang/gcc14/work/.build/lto-plugin/config.log
>>>> Note: The poudriere log file ends up instead reporting the likes of:
>>>> checking for library containing strerror... configure: error: Link tests 
>>>> are not allowed after GCC_NO_EXECUTABLES.
>>>> So: Giving no clue about the specifics.
>>>> Going in the direction of instead having:
>>>> #OPTIONS_DEFAULT_armv7= STANDARD_BOOTSTRAP
>>>> so that gcc is not used at all, the "jit" in:
>>>> LANGUAGES:=     c,c++,objc,fortran,jit
>>>> prevents having the system clang/clang++ do all
>>>> the build: after the early stages, gcc/g++
>>>> depends on library coding conventions specific
>>>> to gcc/g++ and clang/clang++ based builds do
>>>> not follow those conventions in libc++ or such.
>>>> (Poisoned names are detected and stop the build.)
>>>> As I do not need jit, I do the following in
>>>> order to have lang/gcc14 build on/for armv7
>>>> (and, presumably could for armv6 as well) :
>>>> # git -C /usr/ports/ diff lang/gcc14/ | cat
>>>> diff --git a/lang/gcc14/Makefile b/lang/gcc14/Makefile
>>>> index 74c59905c48d..7f082e68ecfe 100644
>>>> --- a/lang/gcc14/Makefile
>>>> +++ b/lang/gcc14/Makefile
>>>> @@ -39,8 +39,8 @@ CXXFLAGS:= ${CXXFLAGS:N-mretpoline}
>>>>  OPTIONS_DEFINE= GRAPHITE
>>>> OPTIONS_DEFAULT_aarch64=STANDARD_BOOTSTRAP
>>>> -OPTIONS_DEFAULT_armv6= STANDARD_BOOTSTRAP
>>>> -OPTIONS_DEFAULT_armv7= STANDARD_BOOTSTRAP
>>>> +#OPTIONS_DEFAULT_armv6= STANDARD_BOOTSTRAP
>>>> +#OPTIONS_DEFAULT_armv7= STANDARD_BOOTSTRAP
>>>> OPTIONS_DEFAULT_amd64= STANDARD_BOOTSTRAP
>>>> OPTIONS_DEFAULT_i386= STANDARD_BOOTSTRAP
>>>> OPTIONS_DEFAULT_powerpc= STANDARD_BOOTSTRAP
>>>> @@ -80,7 +80,11 @@ CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
>>>> CONFIGURE_ARGS+= --with-abi=elfv2
>>>> .endif
>>>> +.if ${ARCH} == armv7 || ${ARCH} == armv6
>>>> +LANGUAGES:= c,c++,objc,fortran
>>>> +.else
>>>> LANGUAGES:= c,c++,objc,fortran,jit
>>>> +.endif
>>>> TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
>>>> TARGLIB32= ${PREFIX}/lib32 # The version information is added later
>>>> LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
>>>> (I do not show my disabling of install-strip use,
>>>> which is done for other reasons.)
>>>> At least for now that allows me to have lang/gcc14
>>>> other than for the jit language that I do not use.
>>>> But gcc14 or g++14 is not involved in producing
>>>> that gcc14 and g++14 .
>>> 
>> 
> 
> What I see in the failing build's tree for:
> 
> # find -s /wrkdirs/usr/ports/lang/gcc14/work/ -name 'libgcc_eh*' -exec ls 
> -lodT {} \;
> -rw-r--r--  1 root wheel - 90994 Apr 26 18:18:35 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-armv7-portbld-freebsd15.0/libgcc/libgcc_eh.a
> -rw-r--r--  1 root wheel - 90994 Apr 26 18:18:43 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a
> 
> # diff 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-armv7-portbld-freebsd15.0/libgcc/libgcc_eh.a
>  wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a
> # 
> 
> # find -s /wrkdirs/usr/ports/lang/gcc14/work/ -name 'libgcc_s*' -exec ls 
> -lodT {} \;
> lrwxr-xr-x  1 root wheel - 13 Apr 26 18:18:38 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-armv7-portbld-freebsd15.0/libgcc/libgcc_s.so
>  -> libgcc_s.so.1
> -rwxr-xr-x  1 root wheel - 2855412 Apr 26 18:18:38 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-armv7-portbld-freebsd15.0/libgcc/libgcc_s.so.1
> lrwxr-xr-x  1 root wheel - 13 Apr 26 18:18:43 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_s.so -> 
> libgcc_s.so.1
> -rw-r--r--  1 root wheel - 2855412 Apr 26 18:18:43 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_s.so.1
> 
> # diff 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-armv7-portbld-freebsd15.0/libgcc/libgcc_s.so.1
>  /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_s.so.1
> # 
> 
> find /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/ -type f -exec 
> readelf -a {} \; -print 2>&1 | grep -e __aeabi_unwind_cpp_pr -e ^/ -e ^File: 
> | grep -v "readelf: Not an ELF file" | grep -v " UND " | grep -v " 
> R_ARM_NONE" | more
> . . .
> 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
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(libunwind.o)
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(pr-support.o)
> File: 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(unwind-c.o)
> File: /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a(emutls.o)
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_eh.a
> 0001eb90 00005715 R_ARM_GLOB_DAT      0001c12c __aeabi_unwind_cpp_pr2
> 0001eb94 00005115 R_ARM_GLOB_DAT      0001c11c __aeabi_unwind_cpp_pr0
> 0001ebac 00005515 R_ARM_GLOB_DAT      0001c124 __aeabi_unwind_cpp_pr1
>    81: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
> __aeabi_unwind_cpp_pr0@@GCC_3.5 (14)
>    85: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr1@@GCC_3.5 (14)
>    87: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr2@@GCC_3.5 (14)
>  4007: 000000000001c12c     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr2
>  4017: 000000000001c11c     8 FUNC    GLOBAL DEFAULT   12 
> __aeabi_unwind_cpp_pr0
>  4593: 000000000001c124     8 FUNC    WEAK   DEFAULT   12 
> __aeabi_unwind_cpp_pr1
> /wrkdirs/usr/ports/lang/gcc14/work/.build/prev-gcc/libgcc_s.so.1
> . . .
> 
> But I also see:
> 
> # find -s /wrkdirs/usr/ports/lang/gcc14/work/ -name '*.log' -exec grep 
> __aeabi_unwind_cpp_pr {} \; -print | less
> /usr/local/bin/ld: a.out: 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
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libbacktrace/config.log
> /usr/local/bin/ld: a.out: 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
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libdecnumber/config.log
> /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
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libiberty/config.log
> /usr/local/bin/ld: a.out: 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
> /wrkdirs/usr/ports/lang/gcc14/work/.build/lto-plugin/config.log
> 
> # ls -lodTt /wrkdirs/usr/ports/lang/gcc14/work/.build/libbacktrace/config.log 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libdecnumber/config.log 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libiberty/config.log 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/lto-plugin/config.log
> -rw-r--r--  1 root wheel - 121955 Apr 26 18:26:51 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libiberty/config.log
> -rw-r--r--  1 root wheel -  14883 Apr 26 18:26:39 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/lto-plugin/config.log
> -rw-r--r--  1 root wheel -  13880 Apr 26 18:26:38 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libbacktrace/config.log
> -rw-r--r--  1 root wheel -  11524 Apr 26 18:26:38 2025 
> /wrkdirs/usr/ports/lang/gcc14/work/.build/libdecnumber/config.log
> 



===
Mark Millard
marklmi at yahoo.com



Reply via email to