Make our stack noexec

The change to use ld and objcopy for resources
had some side-effects: it leaked a few symbols
and made our stack executable. We don't want that.

Use -z nonexecstack and --strip-all to avoid this.

Fixes: #4598
This commit is contained in:
Matthias Clasen
2022-01-04 07:51:56 -05:00
parent edd57004d3
commit 46509b6dd2

View File

@@ -927,6 +927,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
input : gtk_gresource,
output : 'gtkresources_blob.o',
command : [ld,
'-z', 'noexecstack',
'-r',
'-b','binary',
'@INPUT@',
@@ -937,6 +938,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
input : gtk_resources_binary,
output : 'gtkresources_blob2.o',
command : [objcopy,
'--strip-all',
'--add-symbol','_gtk_resource_data=.data:0',
'@INPUT@',
'@OUTPUT@'])