[coreboot] [RFC] Error out on implicit declarations
marcj303 at gmail.com
Thu Dec 18 19:08:25 CET 2008
On Thu, Dec 18, 2008 at 10:22 AM, Myles Watson <mylesgw at gmail.com> wrote:
> On Thu, Dec 18, 2008 at 7:52 AM, Jordan Crouse <jordan at cosmicpenguin.net>
>> Myles Watson wrote:
>>> On Thu, Dec 18, 2008 at 3:18 AM, Carl-Daniel Hailfinger <
>>> c-d.hailfinger.devel.2006 at gmx.net> wrote:
>>>> Bao, Zheng found a bug which killed SATA booting on my board.
>>>> This happened because we do not error out on implicit function
>>>> declarations. The linker has no way of checking whether the implicitly
>>>> assumed function signature is identical to the real signature, so
>>>> mismatches can occur and these mismatches are practically impossible to
>>>> debug because the code looks completely correct.
>>>> Adding -Werror-implicit-function-declaration to our CFLAGS would solve
>>>> this problem nicely, but a lot of files in the tree need to be fixed.
>>> I think this is a great idea. Isn't the correct order to fix all the
>>> warnings, then make it an error?
>> Yeah - the unfortunate thing about changes like this is that you end up
>> being responsible for fixing the errors.. :)
> Here's my first patch. It clears up all of them except get_nodes for
> coreboot/svn/src/cpu/amd/dualcore/dualcore.c:63: warning: implicit
> declaration of function 'get_nodes'
> The rest were easy. This one I'm not sure what was supposed to be here.
>> Carl-Daniel - if you post a list of offending files, we'll all help clear
>> them up. Dumping the log through grep "implicit declaration of function"
>> should suffice.
> If you want to take the get_nodes reference, that would be great. If this
> is the way its supposed to be cleaned up, I'll keep going a little more. I
> think we should divide it up based on processor type so we don't duplicate
> Signed-off-by: Myles Watson <mylesgw at gmail.com>
Acked-by: Marc Jones <marcj303 at gmail.com>
This is a much needed cleanup. Thanks Carl-Daniel and Myles for starting on it.
I think that the get_node is a little tricky because it is used in
CAR and in main coreboot code?
More information about the coreboot