Re: Kernel compiled with gcc-4.6+ fails to boot on ia64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Did you compile kernel with -O2 or -O1 optimization?

For some time now, ia64 kernels behave strangely and this might be due
to gcc optimization. Have a look at [1] (long). As a quick summary,
you can jump directly to comment #106 [2].
Although reported on Debian BTS, I've performed tests on Gentoo and
found similar problems (also reported in [1]).
I don't know exactly when problems first appear, but I can generate
broken kernels with gcc 4.5 (tested on Gentoo). So, the problem is not
limited to gcc 4.7, as implied in comment #116 too [3].
And as I was stating in comment #106, given a working kernel
configuration, simply changing one setting from built-in to built as a
module can lead to a non-working kernel.
But what really surprised me the most is that I didn't found any clear
allusion to this issue on linux-ia64 list, except a quick comment I
made in a post, back in March 2012 , during kernel 2.6.38 development
cycle [4]!

All the questions I had in comment #106 [2] are still valid and remain
unanswered.
So, I would be interested if Intel/hp developers (Tony? Hongjiu?
Fenghua?) can add comments to clarify how ia64 kernel development
works and how is it possible that this issue isn't affecting every
ia64 users.

     Émeric


[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691576
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691576#106
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691576#116
[4] http://marc.info/?l=linux-ia64&m=133124040906499&w=2



2014/1/22 Luck, Tony <tony.luck@xxxxxxxxx>:
> H.J.
>
> Would the approach below help debug an issue with why ia64 kernel is completely[*]
> broken with gcc-4.7.3, but works with gcc-4.5.4?
>
> If not - do you have a better suggestion on how to narrow the scope of the
> problem.
>
> -Tony
>
> [*] No output to serial console at all - not even with the ia64 early console enabled.
>
>
> -----Original Message-----
> From: Luck, Tony
> Sent: Tuesday, January 21, 2014 4:54 PM
> To: 'Dennis Schridde'
> Cc: Yu, Fenghua; linux-ia64@xxxxxxxxxxxxxxx
> Subject: RE: Kernel compiled with gcc-4.6+ fails to boot on ia64
>
>>> I'd start off with using the old compiler
>>> for arch/ia64/kernel/* (perhaps arch/ia64/mm/* too) and the new
>>> compiler for everything else.
>>
>> Thanks for your suggestion. How do I do that properly?
>> I think the following will not work, because changing CC will cause
>> arch/ia64/kernel to be rebuild, right?
>> # make -C arch/ia64/kernel CC=gcc-4.7.3
>> # make CC=gcc-4.5.4
>
> yes - you'd have to fake Kbuild/make into thinking you were using the same compiler
> all the time.  I don't know if there is a "proper" way to do that.  I'd do it by writing
> a shell script "mycc" that in pseudo-code looks like:
>
> ---------
> #!/bin/bash
>
> USECC=gcc-4.7.3
> # Look to see if we have a ".c" file argument on a special list
> for i
> do case "$i" in
>      *.c)
>                if grep -s "^$i$" ~/special
>           then
>                 USECC=gcc4.5.4
>           fi
>         ;;
>     esac
> done
>
> $USECC "$@"
> ----------
>
> Then start with:
> $ find arch/ia64/kernel arch/ia64/mm -name "*.c" > ~/special
> $ make CC=mycc
>
> [Warning: I've never tried anything like this]
>
>> And what would you suggest to add after ia64/kernel and ia64/mm? I do
>> not know much about the parts of the kernel that run at this early
>> stage.
>
> Not a clue.  If My guess that the problem is in those arch specific files, then
> you have a list of ~64 to play with ... bisection would get you to one (if just
> one is the root of the problem) in six builds.
>
> If I'm wrong ... well the full list of files built in a typical configuration
> is a couple of thousand.  So eleven builds.
>
> If the problem is in a static inline" - well none of this will help :-(
>
> -Tony
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux