Re: [PATCH] ide: Build fix for CONFIG_IDE_PROC_FS=n

From: Elias Oltmanns
Date: Sat Aug 30 2008 - 12:24:12 EST


Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> wrote:
> Hello, I have just written:
>>> Recent changes have broken compilation when CONFIG_IDE_PROC_FS is
>
>>> not set.
>>>
>>> Signed-off-by: Elias Oltmanns <eo@xxxxxxxxxxxxxx>
>>>
>> [...]
>>> diff --git a/drivers/ide/ide-disk.h b/drivers/ide/ide-disk.h
>>> index f937772..5254cae 100644
>>> --- a/drivers/ide/ide-disk.h
>>> +++ b/drivers/ide/ide-disk.h
>>> @@ -23,8 +23,10 @@ ide_decl_devset(acoustic);
>>> /* ide-disk_ioctl.c */
>>> int ide_disk_ioctl(struct inode *, struct file *, unsigned int,
>>> unsigned long);
>>> +#ifdef CONFIG_IDE_PROC_FS
>>> /* ide-disk_proc.c */
>>> extern ide_proc_entry_t ide_disk_proc[];
>>> extern const struct ide_proc_devset ide_disk_settings[];
>>> +#endif /* CONFIG_IDE_PROC_FS */
>>> #endif /* __IDE_DISK_H */
[...]
>>
>> Is surrounding 'extern' declarations by #ifdef's really of any value?
>> They shouldn't be used if CONFIG_IDE_PROC_FS=n, so no object file
>> records should be generated.
>
> Ah, you probably mean to turn the possible link time errors if the
> do get referenced into the compile time errors...

Sorry, I don't quite understand that last sentence. But we definitely
have compile time errors here because the compiler doesn't even know of
ide_proc_entry_t when CONFIG_IDE_PROC_FS is not set. Therefore the
forward declarations appear to be syntactically incorrect, regardless
whether extern or not.

Regards,

Elias
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/