Weirdo gcc 4.3.x behaviour
Will Deacon
will.deacon at arm.com
Mon Nov 22 08:12:35 EST 2010
Hi Russell,
> Has anyone else seen weird behaviour from the gcc 4.3 branch?
>
> I've tried gcc-4.3.2 + patch and also gcc-4.3.5, both of which behave
> differently with this change in the kernel:
>
> (asm-generic/pgtable-nopud.h)
> static inline int pgd_none(pgd_t pgd) { return 0; }
> static inline int pgd_bad(pgd_t pgd) { return 0; }
> static inline int pgd_present(pgd_t pgd) { return 1; }
>
> and subsequently adding:
> +#define pgd_none(pgd) 0
> +#define pgd_bad(pgd) 0
> +#define pgd_present(pgd) 1
>
> This causes completely unrelated functions to be optimized differently,
> as can be seen via the bloat-o-meter:
[...]
If you mail me the smallest diff to the kernel which causes this to
happen along with the .s/.i files (gcc --save-temps) for the file that
is changing then I'll pass the information on to the compiler guys at
ARM.
Thanks,
Will
More information about the linux-arm-kernel
mailing list