#pragma pack(1)/#pragma pack() fixed this problem
Did I the first person to see this problem?
If we want to fix this problem we will need to change a lot file. I "grep" the
ipmitool project and I saw 192 occurance of __attribute__ ((packed))
Do we want to change all of this structures for #pragma pack(1)/#pragma pack()?
Stéphane Filion, Ing jr. / Jr. Eng.
Concepteur de logiciel
Software designer
[EMAIL PROTECTED] Kontron Canada
www.kontron.com <http://www.kontron.com/>
Tel.: (450) 437-4661 ext: 2459
Fax: (450) 437-8053
L'information contenue dans le présent document est la propriété de Kontron
Canada Inc. et est divulguée en toute confidentialité. Cette information ne
doit pas être révisée, utilisée, divulguée ou distribuée sans le consentement
écrit explicite de Kontron Canada Inc. Si vous n'êtes pas le destinataire prévu
et avez reçu cette communication par erreur, veuillez contacter l'originateur
et supprimer toute copie.
The information contained in this document is confidential and property of
Kontron Canada Inc. Any unauthorized review, use, disclosure or distribution is
prohibited without express written consent of Kontron Canada Inc. If you are
not the intended recipient, please contact the sender and destroy all copies of
the original message and enclosed attachments.
-----Message d'origine-----
De : Cress, Andrew R [mailto:[EMAIL PROTECTED]
Envoyé : Thursday 24 July 2008 5:20 PM
À : Filion, Stéphane; ipmitool-devel@lists.sourceforge.net
Objet : RE: [Ipmitool-devel] Ipimitool and GCC 4.3.1
Does #pragma pack(1)/#pragma pack() work for this case with gcc 4.3.1?
_____
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Filion, Stéphane
Sent: Thursday, July 24, 2008 2:05 PM
To: ipmitool-devel@lists.sourceforge.net
Subject: [Ipmitool-devel] Ipimitool and GCC 4.3.1
I would like to know if somebody already tried to build ipmitool with the GCC
>= 4.1?
After some investigation, I probably found a bug with GCC >= 4.1 This bug has
an impact on the ipmitool. The bug seems to be related to all packed structure
in the ipmitool. The compiler seems not to pack the structure.
With the following example:
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
struct __attribute__ ((packed)) packstruct {
unsigned char t0 :5 ;
unsigned char t1 :5 ;
unsigned char t2 :5 ;
unsigned char t3 :5 ;
unsigned char t4 :4 ;
};
int
main(int argc, char ** argv)
{
printf("size: %i\n",sizeof(struct packstruct));
if(sizeof(struct packstruct) != 3)
return(1);
else
return(0);
}
//////////////////////////////////////////////////////////////////////////////
With this structure, the size of my structure is supposed to be 3 bytes, but
with a GCC >= 4.1, the size of my structure is 5 bytes.
GCC 4.1.2: Size = 5
GCC 4.3.1: Size = 5
GCC 4.0.2: Size = 3
GCC 3.3.6: Size = 3
In other hand, if I use unsigned int instead of unsigned char, the size of the
structure is correct.
I don't know if I'm wrong or if the IPMITool project will need to take an
action?
Best regards,
Stephane Filion
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel