This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ARM and padding


Hi !

It doesn't help. I've made a struct like this:
struct
{
  unsigned char buf[250] __attribute__ ((packed));
  unsigned char currPos __attribute__ ((packed));
  unsigned int  remainingBytes __attribute__ ((packed));
  unsigned char state __attribute__ ((packed));
} __attribute__ ((packed)) lowRx;

And still, it's on the adresses:
&buf[] = 0x241E0
&currPos = 0x242DA
&remainingBytes = 0x242DC
&state = 0x242DF

Which makes the sizes:
buf -> currPos =  250
currPos -> remainingBytes = 2 !!!!!
remainingBytes -> state = 4

currPos -> remainingBytes should only be 1.

This is just one struct out of many, with the same problem. I can change Some of them, as this example. But not many compared to
amount of troublesome structs.

yours
Jens




crossgcc-owner@sources.redhat.com
2000-07-18 10:38


To:   jens.ohlund@secrc.abb.se
cc:   crossgcc@sourceware.cygnus.com
Subject:  Re: ARM and padding

Security Level:?         Internal


>How do I tell the compiler that the structs are to be packed ?

__attribute__ (( packed )).  See the gcc manual.

p.



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com






------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]