public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Jonathan Larmour <jlarmour@redhat.com>
To: Grant Edwards <grante@visi.com>
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] How to stop gcc padding structs???
Date: Mon, 29 Jan 2001 09:49:00 -0000	[thread overview]
Message-ID: <3A75AD28.3F252CD3@redhat.com> (raw)
In-Reply-To: <20010128124058.A9989@visi.com>

Grant Edwards wrote:
> 
> I'm again fighting with gcc trying (and failing) to get it to
> stop putting padding bytes into structs.  Have any eCosians
> figured out how to prevent gcc from padding structs?
> 
> I ran into this problem before and gave up, finally having to
> use hand-calculated constants instead of "sizeof (struct foo)"
> in numerous places.  For example, it's impossible to define an
> Ethernet header structure that ends up having a size of 14
> bytes!
> 
> In the following example, gcc insists that each of the "high"
> structs occupies four bytes despite my putting a "packed"
> attribute evryplace that doesn't generate a syntax warning.

It's generally non-portable to rely on struct layout matching hardware, and
just because gcc can be coerced to do it doesn't make it wise, nor
guarantee it on different architectures (or different versions of gcc!). It
is better practice to use accessor macros instead.

And no, I know Red Hat don't always practice what we preach, but we
*should*.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine

  parent reply	other threads:[~2001-01-29  9:49 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-28 10:37 Grant Edwards
2001-01-29  0:27 ` Andrew Lunn
2001-01-29  7:24   ` Grant Edwards
2001-01-29  9:49 ` Jonathan Larmour [this message]
2001-01-29  9:53   ` Grant Edwards
2001-01-29 14:15 ` Jesper Skov
2001-01-28 13:34 Lewin A.R.W. Edwards

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3A75AD28.3F252CD3@redhat.com \
    --to=jlarmour@redhat.com \
    --cc=ecos-discuss@sources.redhat.com \
    --cc=grante@visi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).