On Thu, Oct 16, 2014 at 11:28:20AM +0200, Uros Bizjak wrote: > On Thu, Oct 16, 2014 at 11:24 AM, Jakub Jelinek <ja...@redhat.com> wrote: > > >> Now that %ebx is also allocatable in PIC modes, we can cleanup > >> config/i386/cpuid considerably. I propose to remove all PIC related > >> specializations of __cpuid and __cpuid_count and protect the > >> compilation with "#if __GNUC__ >= 5". > >> > >> The only drawback would be that non-bootstrapped build with gcc < 5.0 > >> will ignore -march=native, but I think this should be acceptable. > > > > I'm worried about that. > > Can't you instead keep the current cpuid.h stuff as is, just add > > && __GNUC__ < 5 > > to that, so it treats GCC 5+ PIC as if __PIC__ wasn't defined? > > > > Or, at least use cpuid.h even for older GCC if __PIC__ is not defined > > (or __x86_64__ is defined and not medium/large PIC model)? > > Do we really care that much about non-bootstrapped build? I don't see
At least on Linux, driver-i386.c should not be built with PIC normally, so at least changing #if __GNUC__ >= 5 to #if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__)) would limit the -march=native change for non-bootstrapped compilers to Darwin only (or what other targets use PIC by default?). Jakub