devel/libffi has been broken on mips64 since base clang was upgraded
to version 11. The integrated assembler is now more strict about section
flags and throws an error if .eh_frame section is not read-only.

The following patch lets devel/libffi build finish.

OK?

Index: Makefile
===================================================================
RCS file: ports/devel/libffi/Makefile,v
retrieving revision 1.42
diff -u -p -r1.42 Makefile
--- Makefile    10 Feb 2020 18:06:34 -0000      1.42
+++ Makefile    10 Jun 2021 15:30:55 -0000
@@ -3,6 +3,7 @@
 COMMENT=               Foreign Function Interface
 
 DISTNAME=              libffi-3.3
+REVISION=              0
 SHARED_LIBS +=  ffi                  1.2      # .6.4
 CATEGORIES=            devel
 
Index: patches/patch-src_mips_n32_S
===================================================================
RCS file: patches/patch-src_mips_n32_S
diff -N patches/patch-src_mips_n32_S
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_mips_n32_S        10 Jun 2021 15:31:06 -0000
@@ -0,0 +1,21 @@
+$OpenBSD$
+
+Use EH_FRAME_FLAGS to get section flags that clang's integrated assembler
+expects. This fixes the following build error on mips64:
+
+../src/mips/n32.S:585:9: error: changed section flags for .eh_frame, expected: 
0x2
+        .section .eh_frame,"aw",@progbits
+        ^
+
+Index: src/mips/n32.S
+--- src/mips/n32.S.orig
++++ src/mips/n32.S
+@@ -582,7 +582,7 @@ cls_epilogue:      
+       .end    ffi_closure_N32
+ 
+ #ifdef __GNUC__
+-        .section        .eh_frame,"aw",@progbits
++        .section        .eh_frame,EH_FRAME_FLAGS,@progbits
+ .Lframe1:
+         .4byte  .LECIE1-.LSCIE1               # length
+ .LSCIE1:

Reply via email to