Should we combine PT_GNU_STACK from DSO?

Jakub Jelinek jakub@redhat.com
Sun Apr 18 05:58:00 GMT 2004


On Fri, Apr 16, 2004 at 09:50:16AM -0700, H. J. Lu wrote:
> Currently, we have
> 
> [hjl@gnu-psc stack-2]$ make
> gcc -g   -c -o foo.o foo.c
> gcc -fPIC -shared -o libbar.so bar.c -Wl,-z,execstack
> readelf -l libbar.so | grep STACK | grep RWE
>   STACK          0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4
> gcc -o foo foo.o libbar.so -Wl,-rpath,.
> ./foo
> Hello
> readelf -l foo | grep STACK
>   STACK          0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
> readelf -l foo | grep STACK | grep RWE
> make: *** [all] Error 1
> 
> That is we don't combine PT_GNU_STACK from DSO. This executable may
> fail to run on kernel with non-executable stack. But we can also argue
> that the DSO used at run-time may not need an executable stack. Any
> comments?

We should not.
The fact that at linktime some shared library needs executable stack
doesn't mean the one used at runtime will need it as well.
The dynamic linker handles this at runtime.

	Jakub



More information about the Binutils mailing list