[PATCH] D15455: [Driver] Let -static override the toolchain default PIC setting.

Bob Wilson via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 17 10:59:46 PST 2015


> On Dec 17, 2015, at 10:16 AM, Joerg Sonnenberger via cfe-commits <cfe-commits at lists.llvm.org> wrote:
> 
> On Wed, Dec 16, 2015 at 11:59:10PM +0000, Bob Wilson via cfe-commits wrote:
>> We can change this to be Darwin-specific if you prefer, but we should
>> maintain compatibility with GCC and previous Clang releases in this behavior.
> 
> Who is really affected by this? I don't care too much about obscure
> Darwin hacks, but I really wonder why it isn't better to just explicitly
> add -fno-PIC (e.g. when building a kernel module). It's not like that
> will break on older versions of GCC or Clang.

Apple has internal projects that are failing to build. This behavior has been in places for many years and I don’t even know how we could find all the people relying on this behavior. Yes, we could break them and force everyone to add -fno-PIC, but typically when we make disruptive and incompatible changes like that, we need to stage the changes and give people a transition plan. For example, we could keep the old behavior but add a warning about the change, something like “warning: -static may be changed in future versions of clang to stop implying -fno-PIC”. After a year or two, we could then go ahead with the change. That is all a lot of work and there needs to be some significant benefit to justify breaking compatibility with older compilers. I don’t see any significant benefit here. It’s a 2-line change to the driver.


More information about the cfe-commits mailing list