On Fri, Aug 06, 2004 at 16:32:52 +0300, Momchil Velikov wrote: > >>>>> "Jan" == Jan Hudec <bulb@xxxxxx> writes: > > Jan> On Fri, Aug 06, 2004 at 10:40:05 +0300, Momchil Velikov wrote: > >> >>>>> "Huang" == Huang, Roy <roy.huang@xxxxxxxxx> writes: > Huang> or the argument of fix_to_virt( ) is not a constant, the compiler issues > Huang> an error during the linking phase because the symbol _ > Huang> _this_fixmap_does_not_exist is not defined elsewhere. > >> > >> Which is an utter stupidity, as no compiler is _required_ to do so. > > Jan> Linux kernel is NOT written in C. It is written in GNU C. > > Which is an utter stupidity. In addition to being a politicaly important thing (making Linux tied to GNU), it's the only way to do many things. There is not standard for things like attributes and standards for things like inline emerged long after work on Linux started. Thus compiler-specific extensions must have been used. I really wonder how you'd implement the functionality of the kernel linker script without relying on GNU ld. > Jan> And it is written so, that it is only compilable with > Jan> optimizations turned on. > > Which is an utter stupidity. But turns out to be a handy one ;-). > Jan> Under that circumstances, the linker error is guaranteed to only > Jan> occur in and only in the errorneous cases. > > Subject to more constraints, like constant arguments, etc. Which is > an utter stupidity. That's not more constraints. That's just what the intended usage is. ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb@xxxxxx>
Attachment:
signature.asc
Description: Digital signature