diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-10-01 20:48:34 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-10-20 00:47:27 +0300 |
commit | c453400d597116954b3bb2a9e2c3d60251dc97a2 (patch) | |
tree | 9bfe4e1ad5cf6f0fe05e6ebd4ee34c746ca40eac /mesonbuild/backend | |
parent | 3ad99d27695c3018cf2449a2478b346a5b069c95 (diff) | |
download | meson-c453400d597116954b3bb2a9e2c3d60251dc97a2.zip meson-c453400d597116954b3bb2a9e2c3d60251dc97a2.tar.gz meson-c453400d597116954b3bb2a9e2c3d60251dc97a2.tar.bz2 |
Add 'b_pie' compiler option
On Android executables must be position independent, many
distributions enable it by default too for security reasons.
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r-- | mesonbuild/backend/backends.py | 2 | ||||
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 28ef670..f12b357 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -552,6 +552,8 @@ class Backend: # Set -fPIC for static libraries by default unless explicitly disabled if isinstance(target, build.StaticLibrary) and target.pic: commands += compiler.get_pic_args() + if isinstance(target, build.Executable) and target.pie: + commands += compiler.get_pie_args() # Add compile args needed to find external dependencies. Link args are # added while generating the link command. # NOTE: We must preserve the order in which external deps are diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index b564311..d8370c2 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -2245,6 +2245,8 @@ rule FORTRAN_DEP_HACK%s # If implib, and that's significant on this platform (i.e. Windows using either GCC or Visual Studio) if target.import_filename: commands += linker.gen_import_library_args(os.path.join(self.get_target_dir(target), target.import_filename)) + if target.pie: + commands += linker.get_pie_link_args() elif isinstance(target, build.SharedLibrary): if isinstance(target, build.SharedModule): options = self.environment.coredata.base_options |