From 55fa866cc8f09b7e8f3f58b08894ffda4f1a84ea Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 26 Jan 2022 14:27:38 +0000 Subject: [PATCH 1/2] tests: Pass --internal to glib-compile-resources tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This isn’t needed to make the tests any better (it doesn’t really affect them), but is probably needed for anyone who copies this Meson code in order to add `glib-compile-resources` support to their project. It’s pretty unlikely that someone would want to compile *and export* a resource from a shared library. Inspired by https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4334 Signed-off-by: Philip Withnall --- gio/tests/meson.build | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gio/tests/meson.build b/gio/tests/meson.build index 8212f75da..b2f79daaf 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build @@ -581,6 +581,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() command : [glib_compile_resources, '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), + '--internal', '--generate-source', '--c-name', '_g_plugin', '@INPUT@']) @@ -606,6 +607,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), '--sourcedir=' + meson.current_build_dir(), + '--internal', '@INPUT@'], install_dir : installed_tests_execdir, install : installed_tests_enabled) @@ -616,6 +618,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() command : [glib_compile_resources, '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), + '--internal', '--generate', '--c-name', '_g_test2', '--manual-register', @@ -627,6 +630,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() command : [glib_compile_resources, '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), + '--internal', '--generate', '--c-name', '_g_test2', '--manual-register', @@ -640,6 +644,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), '--sourcedir=' + meson.current_build_dir(), + '--internal', '--generate-source', '--c-name', '_g_test1', '@INPUT@']) @@ -651,6 +656,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), '--sourcedir=' + meson.current_build_dir(), + '--internal', '--generate-source', '--manual-register', '@INPUT@']) @@ -661,6 +667,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() command : [glib_compile_resources, '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), + '--internal', '--generate', '--manual-register', '@INPUT@']) @@ -706,6 +713,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), '--sourcedir=' + meson.current_build_dir(), + '--internal', '@INPUT@'], install_dir : installed_tests_execdir, install : installed_tests_enabled) @@ -718,6 +726,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() '--target=@OUTPUT@', '--sourcedir=' + meson.current_source_dir(), '--sourcedir=' + meson.current_build_dir(), + '--internal', '--generate-source', '--external-data', '--c-name', '_g_binary_test1', From 9cde484b9f35a3dc2149f354194d3b8b58feb306 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 26 Jan 2022 14:28:46 +0000 Subject: [PATCH 2/2] tests: Mark compiled resource file as not having an executable stack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As with the previous commit, this isn’t needed for GLib’s tests to work correctly, but is probably needed in other projects which might be tempted to copy and paste the Meson tooling from GLib. Inspired by https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4330 Signed-off-by: Philip Withnall --- gio/tests/meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gio/tests/meson.build b/gio/tests/meson.build index b2f79daaf..017749c1c 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build @@ -737,6 +737,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() input : test_gresource_binary, output : 'test_resources.o', command : [ld, + '-z', 'noexecstack', '-r', '-b','binary', '@INPUT@', @@ -752,6 +753,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() input : test_resources_binary, output : 'test_resources2.o', command : [objcopy, + '--strip-all', '--add-symbol', underscore + '_g_binary_test1_resource_data=.data:0', '@INPUT@', '@OUTPUT@'])