On Sunday, May 22, 2016 23:08 CEST, "Sebastian Reitenbach" 
<[email protected]> wrote:

>
> On Sunday, May 22, 2016 14:36 CEST, Stuart Henderson <[email protected]> 
> 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