diff options
author | David Seifert <soap@gentoo.org> | 2018-09-16 11:39:51 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-09-16 18:27:19 +0300 |
commit | 2b9fb36267c8661604ef53a7ddbd3a65f7b910dc (patch) | |
tree | 3021438ad517ac58482cf9b07daf2fd9bcc46382 /mesonbuild/compilers/compilers.py | |
parent | add55bb8613ce2d2da30412d3699d84c7f4f3772 (diff) | |
download | meson-2b9fb36267c8661604ef53a7ddbd3a65f7b910dc.zip meson-2b9fb36267c8661604ef53a7ddbd3a65f7b910dc.tar.gz meson-2b9fb36267c8661604ef53a7ddbd3a65f7b910dc.tar.bz2 |
Fix GCC on macOS
* `common/40 has function` still fails due
to alloca being a GCC builtin.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r-- | mesonbuild/compilers/compilers.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index bf261a2..9569c3f 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1285,9 +1285,7 @@ class GnuCompiler: self.defines = defines or {} self.base_options = ['b_pch', 'b_lto', 'b_pgo', 'b_sanitize', 'b_coverage', 'b_colorout', 'b_ndebug', 'b_staticpic'] - if self.compiler_type.is_osx_compiler: - self.base_options.append('b_bitcode') - else: + if not self.compiler_type.is_osx_compiler: self.base_options.append('b_lundef') self.base_options.append('b_asneeded') # All GCC backends can do assembly @@ -1322,7 +1320,7 @@ class GnuCompiler: return self.defines[define] def get_pic_args(self): - if self.compiler_type in (CompilerType.GCC_CYGWIN, CompilerType.GCC_MINGW, CompilerType.GCC_OSX): + if self.compiler_type.is_osx_compiler or self.compiler_type.is_windows_compiler: return [] # On Window and OS X, pic is always on. return ['-fPIC'] @@ -1352,7 +1350,17 @@ class GnuCompiler: def get_std_shared_lib_link_args(self): return ['-shared'] + def get_std_shared_module_link_args(self, options): + if self.compiler_type.is_osx_compiler: + return ['-bundle', '-Wl,-undefined,dynamic_lookup'] + return ['-shared'] + def get_link_whole_for(self, args): + if self.compiler_type.is_osx_compiler: + result = [] + for a in args: + result += ['-Wl,-force_load', a] + return result return ['-Wl,--whole-archive'] + args + ['-Wl,--no-whole-archive'] def gen_vs_module_defs_args(self, defsfile): |