On May 4, 2025, at 01:18, Lorenzo Salvadore <develo...@lorenzosalvadore.it> 
wrote:

> On Sunday, May 4th, 2025 at 05:07, Mark Millard <mark...@yahoo.com> wrote:
> 
>> 
>> 
>> FYI:
>> 
>> /wrkdirs/usr/ports/lang/gcc15/work/gcc-15.1.0/libgcc/unwind-dw2-fde-dip.c:69:10:
>>  error: 'ElfW' redefined [-Werror]
>> 69 | # define ElfW __ElfN
>> | ^~~~
>> In file included from /usr/include/machine/elf.h:45,
>> from /usr/include/elf.h:37,
>> from 
>> /wrkdirs/usr/ports/lang/gcc15/work/gcc-15.1.0/libgcc/unwind-dw2-fde-dip.c:36:
>> /usr/include/sys/elf_generic.h:59:9: note: this is the location of the 
>> previous definition
>> 59 | #define ElfW(x) __ElfN(x)
>> | ^~~~
> 
> Hi Mark,
> 
> Could you please test the patch below?

FYI . . .

I've been using:

# git -C  /usr/ports/ status lang/gcc15-devel/
On branch main
Your branch is up to date with 'freebsd/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c

nothing added to commit but untracked files present (use "git add" to track)

# cat /usr/ports/lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c 
--- 
/wrkdirs/usr/ports/lang/gcc15-devel/work/gcc-15-20250209/libgcc/unwind-dw2-fde-dip.c.orig
 2025-02-27 22:35:01.497828000 -0800
+++ 
/wrkdirs/usr/ports/lang/gcc15-devel/work/gcc-15-20250209/libgcc/unwind-dw2-fde-dip.c
 2025-02-27 22:37:07.418603000 -0800
@@ -66,7 +66,6 @@
 #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
     && defined(TARGET_DL_ITERATE_PHDR) \
     && (defined(__DragonFly__) || defined(__FreeBSD__))
-# define ElfW __ElfN
 # define USE_PT_GNU_EH_FRAME
 #endif

for my rare builds of lang/gcc15-devel/ prior to lang/gcc15
existing. I've used the patch on amd64 as well, even though
it does not get the error.

For lang/gcc15/ I'm now using:

# cat /usr/ports/lang/gcc15/files/patch-libgcc_unwind-dw2-fde-dip.c
--- 
/wrkdirs/usr/ports/lang/gcc15/work/gcc-15.1.0/libgcc/unwind-dw2-fde-dip.c.orig 
2025-04-25 01:18:04.000000000 -0700
+++ /wrkdirs/usr/ports/lang/gcc15/work/gcc-15.1.0/libgcc/unwind-dw2-fde-dip.c 
2025-05-03 22:11:41.826654000 -0700
@@ -66,7 +66,6 @@
 #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
     && defined(TARGET_DL_ITERATE_PHDR) \
     && (defined(__DragonFly__) || defined(__FreeBSD__))
-# define ElfW __ElfN
 # define USE_PT_GNU_EH_FRAME
 #endif


FreeBSD defines ElfW(x) to translate Linux's convention
to FreeBSD's convention. gcc15 defines ElfW to convert
its convention to FreeBSD's convention. The above take
the point of view that just one of the 2 conversions
should be in use and that leaving the FreeBSD code alone
should be preferred.

I'll note that the range of things built via lang/gcc15*/
in my context is small so my use is not all that general
of a test.

But for building lang/gcc15/ I've done such for the
vintages of main and stable/14 that I happen to have
around. The vintage of releng/14.2 is in process.
( lang/gcc15 is part of a more general update after a
ports fetch. )

> Unfortunately,
> I am overwhelmed with patches testing, I need a bit of help :)

Okay.

> Also, could you please check if the issue affects lang/gcc15-devel
> too?

lang.gcc15-devel has historically failed for aarch64
without patches in my rare use: thus the patch that
I had previously added into my context. The likes
of:

https://portsfallout.com/fallout?port=%2Fgcc15-devel&maintainer=&env=&category=&flavor=

shows such failures for:

{14[12],134}arm64-{default,quarterly}
main-arm64-default

when one looks at the logs for those.

The failures shown for:

{14[12],134}releng-armv7-{default,quarterly}
main-armv7-default

are a different issue that happens earlier in the build.
Without that earlier issue, this issue might well show
up as the next problem for armv7 if there is no patch.


> Thanks!
> 
> Lorenzo Salvadore
> 
> --- libgcc/unwind-dw2-fde-dip.c.orig    2025-05-04 08:11:36 UTC
> +++ libgcc/unwind-dw2-fde-dip.c
> @@ -32,7 +32,7 @@
> 
> #include "tconfig.h"
> #include "tsystem.h"
> -#if !defined(inhibit_libc) && !defined(__OpenBSD__)
> +#if !defined(inhibit_libc) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
> #include <elf.h>               /* Get DT_CONFIG.  */
> #endif
> #include "coretypes.h"

I have builds going on aarch64 and amd64. Also, I'll have
to switch machines for armv7 build tests. So, it will be
a while before I test using the above instead of the
patches that I have.

===
Mark Millard
marklmi at yahoo.com


Reply via email to