Hi Jeff, On 9 Feb 2015, at 14:47, Jeff Law <l...@redhat.com> wrote:
> On 02/01/15 09:42, Iain Sandoe wrote: >> >> This is a GCC5 bootstrap regression on 32bit Darwin hosts ( I can raise a PR >> if that is considered necessary). > Has this been addressed or is it still pending? I believe it's still awaiting review - I'm travelling this week, so limited access to resources - but will be able to tackle any comments at the weekend. thanks Iain > > >> >> In fact it is not libcc1, but libiberty that is the cause - >> >> On 26 Jan 2015, at 14:13, Rainer Orth wrote: >> >>> FX <fxcoud...@gmail.com> writes: >>> >>>>> The default BOOT_CFLAGS are: -O2 -g -mdynamic-no-pic >>>>> the libiberty pic build appends: -fno-common (and not even -fPIC) [NB >>>>> -fPIC _won't_ override -mdynamic-no-pic, so that's not a simple way out] >>>>> This means that the PIC library is being built with non-pic relocs. >>>> >>>> config/mh-darwin says that -mdynamic-no-pic is there because it “speeds >>>> compiles by 3-5%”. I don’t think we care about speed when the bootstrap >>>> fails, so can we remove it altogether? >>> >>> Darwin/i686 still doesn't bootstrap without this patch, I believe. >>> Shouldn't it be applied to trunk before GCC 5 ships, rather than leaving >>> that target broken? >> >> The PIC variant of libiberty, has never (since it was added, AFAICT) catered >> for the possibility that non-PIC and PIC options might conflict (and/or that >> it might not be possible to override non-PIC options simply by appending PIC >> ones). >> >> This has gone un-noticed until the libcc1 plugin started linking with the >> pic version of libiberty. >> >> Darwin uses -mdynamic-no-pic as a default flag during bootstrap for 32bit >> targets, since that gives a stated ~ 3-5% improvement in performance. >> >> It is not possible to override this non-pic option by appending -fPIC (that >> simply results in a warning that mdynamic-no-pic takes precedence). >> >> I'd rather not pretend that there's no problem and simply penalise >> performance on m32 darwin by removing the option from the bootflags. >> >> So here's a patch that allows a target to declare incompatible non-pic >> options (in the same way that we have PIC options already declared as >> distinct). >> >> The patch is largely mechanical (each of the targets adjusted to use the >> NONPIC flag for the relevant case). >> >> As an aside, is there a portability reason that we don't make this repeated >> operation into a make function? >> >> bootstapped on x86_64-linux, x86_64-darwin12, i686-darwin10, powerpc-darwin9, >> cross-compiled x86-64-darwin12 X i686-darwin10 , native X i686-darwin10 >> (x86_64-darwin12 build). >> >> all languages including Ada (note that there's a local patch needed to >> work-around an Ada bootstrap issue - pr64349) >> >> OK for trunk? >> Iain >> >> libiberty: >> * Makefile.in (NONPICFLAG, NEWCFLAGS, NEWCPPFLAGS): New. >> (COMPILE.c): Adjust to use new flags. (all non-pic targets): >> Adjust to use NONPIC flag. >> * configure.ac (NOPICFLAG): New. >> * configure: Regenerate. >> >