Messages in this thread | | | Date | Mon, 28 Apr 2008 17:41:11 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [2.6 patch] fs/block_dev.c:I_BDEV() mustn't be inline |
| |
On Mon, 28 Apr 2008, Adrian Bunk wrote: > > This patch fixes the following build error with UML and gcc 4.3:
I'm not going to apply these before I understand what the breakage is all about.
> -inline struct block_device *I_BDEV(struct inode *inode) > +struct block_device *I_BDEV(struct inode *inode) > { > return &BDEV_I(inode)->bdev; > }
There is NO WAY IN HELL this function shouldn't be inlined, and it doesn't matter a whit if some users outside of this file then also want the non-inlined version.
The whole setup should result in a single offset-of from the inode, ie we're talking something that normally generates no code at all when inlined (because the offset will be subsumed into whatever actually uses the result).
So just removing the inline is simply not acceptable any more, since it just implies total and utter breakage of the compiler. At some point you just have to say: "That is sh*t", and not take it any more.
What is UML doing to trigger this?
Or should be just tell people that gcc-4.3 is unusable crap?
Linus
| |