Hello,

in whole thread I've not seen a note about GHC (Haskell compiler).
IIRC although GHC support building with its own intree libffi, on
OpenBSD it uses ports libffi. This is IIRC done by current 7.10.x in
the tree and is done surely by just released GHC 8.0.1 which is not
yet in ports but which already accumulated some ports patches into GHC
source tree.

On Sun, May 22, 2016 at 11:30 PM, Sebastian Reitenbach
<sebas...@l00-bugdead-prods.de> wrote:
>
> On Sunday, May 22, 2016 23:08 CEST, "Sebastian Reitenbach" 
> <sebas...@l00-bugdead-prods.de> wrote:
>
>>
>> On Sunday, May 22, 2016 14:36 CEST, Stuart Henderson <s...@spacehopper.org> 
>> wrote:
>>
>> > Build is about halfway, here are some more processes that are run
>> > during a ports build that trigger the warnings:
>> >
>> > java(15505): mprotect: mandatory W^X        devel/jdk & bootstrap
>> > xpcshell18306): mmap: mandatory W^X         devel/xulrunner/24
>> > xulrunner(15827): mmap: mandatory W^X       devel/xulrunner/24
>> > gforth*: mmap: mandatory W^X                lang/gforth
>> > mono-boehm: mmap: mandatory W^X             lang/mono
>> > obxj(76370): mprotect: mandatory W^X        lang/obc
>> > run.x86-openbsd(19339): mmap: mandatory W^X lang/smlnj
>> > mksnapshot: mmap: mandatory W^X             www/chromium, iridium (v8)
>> >
>> > (obviously as this is build time, these are only from programs
>> > that are run, either in pobj or installed, during build.)
>> >
>> > My libffi diff causes x11/gnustep/base to fail:
>> >
>> > checking FFI library usage... configure: error: The ffi library (libffi) 
>> > does not appear to be working.  Perhaps it's missing or you need a more 
>> > recent version.  Version 3.0.9 or later should work, and you can find a 
>> > link to it n the list of packages for download at 
>> > http://www.gnustep.org/resources/sources.html
>> >
>> > configure:24337: checking FFI library usage
>> > configure:24370: clang -o conftest -O2 -pipe  -I/usr/local/include 
>> > -I/usr/local/include -I/usr/local/include -I/usr/
>> > local/include -fobjc-runtime=gnustep-1.7 -fgnu-runtime -x objective-c 
>> > -I/usr/local/include  -L/usr/local/lib -L/usr/
>> > local/lib -L/usr/local/lib -L/usr/local/lib conftest.c -L/usr/local/lib 
>> > -pthread -lffi  -lpthread -lz >&5
>> > configure:24374: $? = 0
>> > configure:24380: ./conftest
>> > Segmentation fault (core dumped)
>> >
>> > The test program it's trying to run is config/config.ffi.c in
>> > gnustep/base's tree. I'm unlikely to be able to figure this out,
>> > can someone help please?
>> >
>>
>> I hope I can get around to have a look at it tomorrow.
>
> I couldn't resist, and just tried the conftest program under gdb with your 
> libffi patch:
>
> (gdb) r
> Starting program: 
> /home/ports/pobj/amd64/gnustep-base-1.24.9/gnustep-base-1.24.9/config/conftest
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000006a09691e010 in ?? ()
> (gdb) bt
> #0  0x000006a09691e010 in ?? ()
> #1  0x0000069e48000d92 in main () at conftest.c:65
> (gdb) frame 1
> #1  0x0000069e48000d92 in main () at conftest.c:65
> 65        ((void(*)(cls_struct_combined)) (code))(g_dbl);
> (gdb) list
> 60          != FFI_OK) abort();
> 61
> 62        if (ffi_prep_closure_loc(pcl, &cif, cls_struct_combined_gn, NULL, 
> code)
> 63          != FFI_OK) abort();
> 64
> 65        ((void(*)(cls_struct_combined)) (code))(g_dbl);
> 66        exit(0);
> 67      }
>
> It fails at the very end of the main() function, but I have absolutely
> no clue what's going wrong here.
> It seems to setup a closure, and then trying to call it, and that
> breaks
>
> Sebastian.
>
>

Reply via email to