Andre,
I've never built gcc for aarch64-freebsd. I was going to
suggest doing the full bootstrap, but that seems to be too
slow. On amd64, I use
../gcc/configure --prefix=$WDIR \
--enable-languages=c,c++,fortran,lto \
--enable-bootstrap \
--disable-nls \
--disable-libssp \
--disable-multilib \
--without-libintl
I looked at the FreeBSD ports collection and how it builds
gcc16. I did not see missing --enable-* or --disable-*.
If you have the ports collection installed in the vm, you
can do
cd /usr/ports/lang/gcc16-devel
make config |& tee logfile
to see if the port is doing anything to mitigate the issue.
Note, you might need 'make configure'. This likely a slow
process as it downloads the source code and computes a md5
and then uncompresses.
(more below)
On Mon, Jun 30, 2025 at 03:40:33PM +0200, Andre Vehreschild wrote:
>
> how to you get a recent gcc compile on aarch64-freebsd-14.3 ? I am seeing
> several issues in core libraries of gcc that are far away from where I touched
> the compiler.
>
> I am configuring with:
>
> configure --disable-multilib\
> --enable-stage1-languages=c,fortran,c++\
> --enable-checking=yes \
> --enable-offload-defaulted \
> --prefix="${INSTALLPATH}" \
> CFLAGS="-g -O0 -DENABLE_ASSERT_CHECKING" CXXFLAGS="-g
> -O0"\
> STAGE1_CFLAGS="-g -O0 -DENABLE_ASSERT_CHECKING"
> STAGE1_CXXFLAGS="-g -O0"
>
> Yes, I am doing only stage1. I run this fully virtualized and it is slow. I
> don't want to wait three days for a full bootstrap.
>
> One of the errors I get is:
>
> /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 <snip>/gcc/gcc.test/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)
> | ^~~~
>
> Have you ever seen this before and know a way around it?
>
I've not seen this error. elf_generic.h. has the comment
/* Define ElfW for compatibility with Linux, prefer __ElfN() in FreeBSD code */
#define ElfW(x) __ElfN(x)
perhaps, just deleteing the line will allow you to proceed.
--
Steve