tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

devel/gnustep-base build failure



When building devel/gnustep-base, the configure script fails because it tries 
to build an executable with libobjc.so from devel/gnustep-objc that is not PIE.

configure:3705: checking for C compiler default output file name
configure:3727: gcc -O2 -I/usr/pkg/include -I/usr/pkg/share/GNUstep/include -I/usr/include -I/usr/pkg/include -I/usr/pkg
/share/GNUstep/include -I/usr/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -L/usr/pkg/lib -L/usr/pkg
/share/GNUstep/lib -Wl,-R/usr/pkg/lib -Wl,-R/usr/pkg/share/GNUstep/lib -L/usr/lib -Wl,-R/usr/lib -lobjc -lpthread -lgcc_
s -L/usr/pkg/lib -L/usr/pkg/lib -L/usr/pkg/lib conftest.c  >&5
configure:3731: $? = 0
configure:3769: result: a.out
configure:3788: checking whether the C compiler works
configure:3798: ./a.out
/usr/pkg/lib/libobjc.so.4.6.0: text relocations
/usr/pkg/lib/libobjc.so.4.6.0: Cannot write-enable text segment: Permission denied

I understand we need to make libobjc.so PIE in order to get it usable. For 
usual libraries, the pkgsrc infrastructure takes care of adding the appropriate 
compile and link flags so that it happens. But I suspect it does not happen here 
because devel/gnustep-obj is built usinf the Makefiles provided by 
devel/gnustep-make.

They are located in /usr/pkg/share/GNUstep/Makefiles and contain no -pie, -fpie
or -fPIE. I understand this is what needs to be changed, but it would require 
pkgsrc to substitute runtime compile and link flags in them. Can that be done?

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index