NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-pmax/57245: (Most?) MIPS Ports: Error: symbol type "gnu_indirect_function" is not supported by MIPS targets



Hi!

On Sun, 2023-02-26 23:30:02 +0000, Jan-Benedict Glaw <jbglaw%lug-owl.de@localhost> wrote:
>  Not yet done with bisecting, but in the remaining range, I suspect
>  this commit:
>  
>  commit 0d328f22aad77fab31f5e0ca8a976746002f4db0
>  Author: christos <christos%NetBSD.org@localhost>
>  Date:   Wed Jan 25 19:08:41 2023 +0000
>  
>      disable no ifuncs no mips error for now.
>  
>  diff --git a/external/gpl3/binutils/dist/gas/config/obj-elf.c b/external/gp=
>  l3/binutils/dist/gas/config/obj-elf.c
>  index e5ab8514de74..d3fe949adeaa 100644
>  --- a/external/gpl3/binutils/dist/gas/config/obj-elf.c
>  +++ b/external/gpl3/binutils/dist/gas/config/obj-elf.c
>  @@ -2395,10 +2395,12 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
>            && bed->elf_osabi !=3D ELFOSABI_FREEBSD)
>          as_bad (_("symbol type \"%s\" is supported only by GNU "
>                    "and FreeBSD targets"), type_name);
>  +#ifndef __NetBSD__
>         /* MIPS targets do not support IFUNCS.  */
>         else if (bed->target_id =3D=3D MIPS_ELF_DATA)
>          as_bad (_("symbol type \"%s\" is not supported by "
>                       "MIPS targets"), type_name);
>  +#endif
>         elf_tdata (stdoutput)->has_gnu_osabi |=3D elf_gnu_osabi_ifunc;
>         type =3D BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
>       }

Actually, the above commit is an attempted _fix_, which I guess could
be a simple '#if 0' in this case. Just ftr, the build broke when
mipsel was moved to Binutils 2.39 (I guess that's the first release
doing the IFUNC check?)

commit 58c565ec20c718b8cd8733f9c60d40935ad741e0
Author: christos <christos%NetBSD.org@localhost>
Date:   Wed Jan 25 22:36:56 2023 +0000

    add mipsel and m68k to binutils 2.39

diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk
index c37e8f45f446..e9db8e480a8a 100644
--- a/share/mk/bsd.own.mk
+++ b/share/mk/bsd.own.mk
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.own.mk,v 1.1301 2023/01/25 00:16:50 christos Exp $
+#      $NetBSD: bsd.own.mk,v 1.1302 2023/01/25 22:36:56 christos Exp $
 
 # This needs to be before bsd.init.mk
 .if defined(BSD_MK_COMPAT_FILE)
@@ -102,12 +102,14 @@ MKGCCCMDS?=       no
     ${MACHINE_ARCH:Maarch64*} || \
     ${MACHINE_ARCH} == "alpha" || \
     ${MACHINE_ARCH} == "i386" || \
-    ${MACHINE_CPU} == "hppa" || \
-    ${MACHINE_CPU} == "powerpc" || \
-    ${MACHINE_CPU} == "riscv" || \
+    ${MACHINE_ARCH} == "m68k" || \
+    ${MACHINE_ARCH} == "mipsel" || \
     ${MACHINE_ARCH:Msparc*} || \
     ${MACHINE_ARCH} == "x86_64" || \
     ${MACHINE_ARCH} == "vax" || \
+    ${MACHINE_CPU} == "hppa" || \
+    ${MACHINE_CPU} == "powerpc" || \
+    ${MACHINE_CPU} == "riscv" || \
     ${MACHINE} == "sun2" 
 HAVE_BINUTILS?=        239
 .else



So... My suggested fix is to either not have IFUNC symbols and/or just
'#if 0' the check.

MfG, JBG

-- 


Home | Main Index | Thread Index | Old Index