Hi,
some time ago boost-md was enabled for powerpc, but the proper context
create and switch functions from
pobj/boost_1_66_0/boost_1_66_0/libs/context/src/asm are not selected
and linked in.
The diff below fixes that part (and now powerdns recursor builds), but
the actual context switching does not work, it segfaults:
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 466468]
0xa85695f0 in jump_fcontext () from /usr/local/lib/libboost_context-mt.so.9.0
What I'm seeing is (in jump_ppc32_sysv_elf_gas.S/jump_context)
register r3 that is supposed to point to the memory that will receive
the transfer_t (the return value of jump_fcontext()) is 0.
# return transfer_t
stw %r6, 0(%r3)
stw %r5, 4(%r3)
Any suggestion os help is welcome,
Also, is there any point in enabling the boost-md lib for an arch if
this is not working?
-Otto
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boost/Makefile,v
retrieving revision 1.89
diff -u -p -r1.89 Makefile
--- Makefile 9 Aug 2019 11:25:29 -0000 1.89
+++ Makefile 27 Aug 2019 12:19:39 -0000
@@ -17,7 +17,7 @@ EXTRACT_SUFX= .tar.bz2
FIX_EXTRACT_PERMISSIONS = Yes
REVISION-main= 6
-REVISION-md= 1
+REVISION-md= 2
SO_VERSION= 9.0
BOOST_LIBS= boost_atomic-mt \
Index: patches/patch-libs_context_build_Jamfile_v2
===================================================================
RCS file: patches/patch-libs_context_build_Jamfile_v2
diff -N patches/patch-libs_context_build_Jamfile_v2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-libs_context_build_Jamfile_v2 27 Aug 2019 12:19:39 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: libs/context/build/Jamfile.v2
+--- libs/context/build/Jamfile.v2.orig
++++ libs/context/build/Jamfile.v2
+@@ -315,7 +315,7 @@ alias asm_sources
+ <address-model>32
+ <architecture>power
+ <binary-format>elf
+- <toolset>clang
++ <toolset>gcc
+ ;
+
+ alias asm_sources