FYI, I've looked into this a lot, and it doesn't appear that there is
a good solution to it. First note that this is not a GNUstep problem,
but a problem with ffcall and interaction with PaX. PaX effectively
prohibits making any memory executable (for instance via mprotect or
mmap), but this is pretty fundamental to how ffcall works. There's
been a bug report in the ffcall bug tracker about this for several
months and no one has done anything about it there, so I'm guessing
they at least some what agree.
I think the only solution is to use libffi. libffi, from what I can
tell, builds a trampoline on the stack using assembly language, which
I'm guessing PaX recognizes and allows.
I've put in some configure tests in GNUstep, so you'll at least know
this is the problem, but that's all I can do otherwise.
On Feb 14, 2007, at 5:59 PM, Jason Addison wrote:
This has been reported before. I just wanted to let you know it wasn't
a one off thing. I think it is conflicting with SELinux somehow.
Sorry, I don' t really know much about it. Here a reports of ffcall
conflicting with FC5's SELinux settings (that may or may not be
relevent):
http://www.nabble.com/--clisp-Bugs-1531290---ffcall-SELlinux-
violation-on-Fedora-Core-5-t2023857.html
$ uname -a
Linux 2.6.18-1.2257.fc5smp #1 SMP Fri Dec 15 16:33:51 EST 2006 i686
i686 i386 GNU/Linux
$ gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/home/jra/usr/gcc-4.1.1
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran
--enable-java-awt=gtk --disable-dssi --with-cpu=pentium4
Thread model: posix
gcc version 4.1.1
$ ./InstallGNUstep --prefix=/home/jra/usr/GNUStep/
...
Creating GSspell.service/....
Compiling file GSspell.m ...
Linking service GSspell ...
Creating GSspell.service/Resources...
Creating GSspell.service/Resources/Info-gnustep.plist...
trampoline: cannot make memory executable
/bin/sh: line 1: 2314 Aborted
././shared_obj/make_services --test
GSspell.service/Resources/Info-gnustep.plist
gmake[2]: *** [GSspell.service/Resources/Info-gnustep.plist] Error 1
gmake[1]: *** [GSspell.all.service.variables] Error 2
gmake[1]: Leaving directory
`/home/jra/usr/src/srt/GNUStep/src/gnustep-startup-0.16.1/build/
gnustep-gui-0.11.0/Tools'
gmake: *** [internal-all] Error 2
gmake[2]: *** [GSspell.service/Resources/Info-gnustep.plist] Error 1
gmake[1]: *** [GSspell.all.service.variables] Error 2
gmake: *** [internal-all] Error 2
---------------------------------------------------------
Installation of GNUstep Gui failed. Send the
/home/jra/usr/src/srt/GNUStep/src/gnustep-startup-0.16.1/build/
logs.tar.gz
file to [email protected] for help
---------------------------------------------------------
<logs.tar.gz>
_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep
_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep