[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/dev
On Thu, May 26, 2011 at 4:41 AM, David Laight <david%l8s.co.uk@localhost> wrote:
> On Thu, May 26, 2011 at 02:33:38AM +0900, Masao Uebayashi wrote:
>> >> Modified Files:
>> >> ? ? ? src/sys/dev/bluetooth: bcsp.c bthub.c btuart.c
>> >> ? ? ? src/sys/dev/ieee1394: fwdev.c fwmem.c fwohci.c
>> >> Log Message:
>> >> Declare cfdrivers using extern rather than including ioconf.h.
>> > surely the point of declaring a variable once in a header file is that it
>> > then cannot be accidentally declared differently elsewhere?
>> > is ioconf.h so onerous? (it is merely a list of cfdriver declarations)
>> ioconf.h is not, but GCC is.
>> I found 2 fwmem.o's signatures mismatch between 2 kernels; GENERIC and
>> another doing only "no ehci" and include GENERIC. objdump -D shows:
>> @@ -956,7 +956,7 @@
>> 0000000000000000 <.ident>:
>> 0: 24 4e and $0x4e,%al
>> 2: 65 gs
>> - 3: 74 42 je 47 <__func__.11035+0x11>
>> + 3: 74 42 je 47 <__func__.11034+0x11>
>> 5: 53 push %rbx
>> 6: 44 24 00 rex.R and $0x0,%al
>> GCC definitely lacks care about reproducibility.
> I don't think that you can expect the internal symbols generated by gcc to
> match when code is compiled in different contexts.
Coming to consider what is a "context"..., why do these drivers have
to include "ioconf.h" to know alll the other cfdriver decls? If these
really need their own cfdriver decl, these unnecessarily widen
contents, which is, if not a bug, confusing.
Ultimately all (MI) drivers will become modules. Which means all
objects will have to become bit-identical across kernels. Drivers
including "ioconf.h" is doing something opposite.
(So I'd withdraw a comment that GCC is onerous.)
> If you want to compare .o files that are built with different compilation
> options you really need to massage them somewhat first - or only compare
> some sections.
> David Laight: david%l8s.co.uk@localhost
Main Index |
Thread Index |