compilers: Don't pollute c_args with -fPIC on OS X

It's always enabled and the compiler just ignores all PIC-related
arguments. Relatedly, do the same thing for Clang as GCC.
pull/856/head
Nirbheek Chauhan 8 years ago
parent ce1393609f
commit 67c9e520de
  1. 13
      mesonbuild/compilers.py

@ -1934,8 +1934,8 @@ class GnuCompiler:
return defines[define] return defines[define]
def get_pic_args(self): def get_pic_args(self):
if self.gcc_type == GCC_MINGW: if self.gcc_type in (GCC_MINGW, GCC_OSX):
return [] # On Window gcc defaults to fpic being always on. return [] # On Window and OS X, pic is always on.
return ['-fPIC'] return ['-fPIC']
def get_buildtype_args(self, buildtype): def get_buildtype_args(self, buildtype):
@ -2059,6 +2059,11 @@ class ClangCompiler():
self.base_options.append('b_lundef') self.base_options.append('b_lundef')
self.base_options.append('b_asneeded') self.base_options.append('b_asneeded')
def get_pic_args(self):
if self.clang_type in (CLANG_WIN, CLANG_OSX):
return [] # On Window and OS X, pic is always on.
return ['-fPIC']
def get_buildtype_args(self, buildtype): def get_buildtype_args(self, buildtype):
return gnulike_buildtype_args[buildtype] return gnulike_buildtype_args[buildtype]
@ -2174,8 +2179,8 @@ class FortranCompiler(Compiler):
return ' '.join(self.exelist) return ' '.join(self.exelist)
def get_pic_args(self): def get_pic_args(self):
if self.gcc_type == GCC_MINGW: if self.gcc_type in (GCC_MINGW, GCC_OSX):
return [] # On Windows gcc defaults to fpic being always on. return [] # On Window and OS X, pic is always on.
return ['-fPIC'] return ['-fPIC']
def get_std_shared_lib_link_args(self): def get_std_shared_lib_link_args(self):

Loading…
Cancel
Save