Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #14185

Re: Alignment problems

From jacob navia <jacob@spamsink.net>
Newsgroups comp.lang.c
Subject Re: Alignment problems
Date 2011-12-01 21:50 +0100
Organization lccwin
Message-ID <jb8p9v$cmn$1@speranza.aioe.org> (permalink)
References <jb6gbf$58a$1@speranza.aioe.org> <jb7sfh$221$1@speranza.aioe.org> <jb8ojo$ajt$1@speranza.aioe.org>

Show all headers | View raw


Le 01/12/11 21:38, Alan Curry a écrit :
> In article<jb7sfh$221$1@speranza.aioe.org>,
> jacob navia<jacob@jspamsink.org>  wrote:
>> Thanks to everybody tht answered. I think I will go the way
>> Gordon Burditt proposed.
>
> There's another answer that we forgot:
>
> Put the array at the beginning of the struct. Then if the struct is malloced,
> the array inherits its "aligned for anything" property.
>
I can't do that since I do not know how big the array will be.
The user calls me with

iList.Create(sizeof(double));

to create a list of doubles.

This is a variable length structure, allocated with

	malloc(sizeof(ListElement)+list->ElementSize);

The data start immediately after the pointer.

Now, there are two solutions to this:

1) Use a specific version of lists for integers, doubles, etc.
2) Align the data at run time to a miltiple of 8 or 16:

We would have

iList.CreateAligned(sizeof(double),8);

This special version of Create would align to 8 or whatever bytes
its data.

Or I could modify the Create function to align data in a machine
specific way in each machine.


The problem is further complicated by the fact that under SPARC
modern versions you do NOT need to align anything since the OS
catches the unaligned trap, and loads the double with 2 instructions.

Now the problem is that modern versions of gcc (and that machine has
4.2 installed) follow the recommendations of Oracle (ex Sun) and
emit ldd instead of a sequence of two ld instructions expecting
the OS to trap that. But since that machine has an OS from May
2002 (imagine that, almost ten years old) that apparently does NOT
catch that unaligned instruction.

Anyway, this is a general problem since the power PC has probably
similar problems.


Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Alignment problems jacob navia <jacob@spamsink.net> - 2011-12-01 01:05 +0100
  Re: Alignment problems Ian Collins <ian-news@hotmail.com> - 2011-12-01 13:15 +1300
  Re: Alignment problems pacman@kosh.dhis.org (Alan Curry) - 2011-12-01 02:57 +0000
  Re: Alignment problems gordonb.hpln0@burditt.org (Gordon Burditt) - 2011-11-30 21:27 -0600
  Re: Alignment problems jacob navia <jacob@spamsink.net> - 2011-12-01 13:38 +0100
    Re: Alignment problems pacman@kosh.dhis.org (Alan Curry) - 2011-12-01 20:38 +0000
      Re: Alignment problems jacob navia <jacob@spamsink.net> - 2011-12-01 21:50 +0100
        Re: Alignment problems Ian Collins <ian-news@hotmail.com> - 2011-12-02 10:27 +1300
          Re: Alignment problems Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-12-04 00:23 +0000
            Re: Alignment problems Ian Collins <ian-news@hotmail.com> - 2011-12-04 13:31 +1300
        Re: Alignment problems ImpalerCore <jadill33@gmail.com> - 2011-12-01 14:34 -0800
  Re: Alignment problems "BartC" <bc@freeuk.com> - 2011-12-01 13:46 +0000
    Re: Alignment problems Keith Thompson <kst-u@mib.org> - 2011-12-01 14:15 -0800
      Re: Alignment problems David Thompson <dave.thompson2@verizon.net> - 2012-01-19 02:44 -0500
  Re: Alignment problems "James" <no@spam.invalid> - 2011-12-01 19:43 -0800
  Re: Alignment problems "Brain" <Brian@myhome.com> - 2011-12-04 02:47 -0600
    Re: Alignment problems Keith Thompson <kst-u@mib.org> - 2011-12-04 08:26 -0800
      Re: Alignment problems Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-12-08 00:12 +0200
        Re: Alignment problems Keith Thompson <kst-u@mib.org> - 2011-12-07 22:31 -0800
          Re: Alignment problems lovecreatesbeauty <lovecreatesbeauty@gmail.com> - 2011-12-08 21:43 -0800
            Re: Alignment problems Keith Thompson <kst-u@mib.org> - 2011-12-09 01:31 -0800
              Re: Alignment problems Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-12-09 14:15 +0200

csiph-web