grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Fix packing issue of machine_mmap_entry


From: Marco Gerards
Subject: Re: [PATCH] Fix packing issue of machine_mmap_entry
Date: Sat, 10 Nov 2007 16:55:45 +0100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

Christian Franke <address@hidden> writes:

> Marco Gerards wrote:
>
>>> ...
>>>     Add compile time assert to check packing.
>>>
>>
>> Can you remove the compile time assert?
>
> Done.
>
>> We usually check stuff like
>> this using configure.  If you can send in a patch for configure.ac,
>> that would be appreciated.
>>
>>
> Yes, but be patient.
>
> The configure approach is quite different: In configure, you can check
> whether compiler supports attr packed and whether it works as
> expected. With the good old typedef compile time assert, you can check
> whether this *specific* structure is properly declared and packed.

Right, but if you add a configure.ac option you can see if it works
globally.  If it doesn't, we have a problem anyways.  We shouldn't
rely on how it is packed.  If the packed attribute doesn't work, GRUB
can't be compiled.

>>> --- grub2.orig/include/grub/i386/pc/init.h  2007-07-22 01:32:23.000000000 
>>> +0200
>>> +++ grub2/include/grub/i386/pc/init.h       2007-10-13 21:25:24.000000000 
>>> +0200
>>> @@ -40,10 +40,14 @@ grub_uint32_t grub_get_eisa_mmap (void);
>>>  struct grub_machine_mmap_entry
>>>  {
>>>    grub_uint32_t size;
>>> -  grub_uint64_t addr;
>>> +  grub_uint64_t addr; /* must be at offset 4, see startup.S */
>>
>> I do not think this comment is required.  It's fixed now :-)
>>
>>
>
> Hmm...OK removed. Now there is no clue why this struct has packing
> requirements. And this also is no longer checked.

All structs that rely on gcc not adding packing for alignment, should
have the packed attribute.

> Christian
>
>
> 2007-11-09  Christian Franke  <address@hidden>
>
>       * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
>       Add attribute packed, gcc 3.4.4 on Cygwin aligns this
>       to 64 bit boundary by default.

This looks good :-)

--
Marco





reply via email to

[Prev in Thread] Current Thread [Next in Thread]