From: "Doobs" <doobs@doobs.com>
Subject: Re: Any way of persuading GNAT/GCC to implement a true overlay and not a pointer?
Date: Sat, 1 Apr 2006 22:33:39 +0100
Date: 2006-04-01T22:33:39+01:00 [thread overview]
Message-ID: <xvudndXV2_swbLPZRVnyhA@pipex.net> (raw)
In-Reply-To: to23g3-laq.ln1@newserver.thecreems.com
>>>>>I was under the impression that code of the following form :
>>>>>
>>>>>X : <Some Type>;
>>>>>Y : <Some Type>;
>>>>>for Y'Address use X'Address;
>>>>>
>>>>>would result in an overlay in the resulting code.
>>>>
>>>>Could you show some more code? Probably initialization is causing
>>>>your problems, which can be fixed with a pragma Import.
>>>
>>>The following is an example of the problem:
>>>
>>>package TestPackage
>>>is
>>>
>>> type MyRecordType is
>>> record
>>> element1 : Positive;
>>> element2 : Positive;
>>> end record;
>>>
>>> type MyArrayType is array(1..2) of Positive;
>>>
>>> myX : MyRecordType;
>>> pragma volatile(myX);
>>> myY : MyArrayType;
>>> pragma volatile(myY);
>>> for myY'Address use myX'Address;
>>>
>>>
>>>end TestPackage;
>>>
>>>The following fragments of the resulting MAP file (GCC 3.4.2 mingw32)
>>>show the problem...
>>>
>>>.data 0x00472b00 0x10 ./testpackage.o
>>> 0x00472b00 testpackage__myy
>>>.data 0x00472b10 0x10 ./nextpackage.o
>>>
>>><..... later in the file...>
>>>
>>>COMMON 0x004a2770 0x20 ./testpackage.o
>>> 0x004a2770 testpackage__myx
>>> 0x004a2780 testpackage_E
>>>
>>>
>>>Clearly myX and myY do NOT share the same address. I am also puzzled as
>>>to why the variables have been put in differen memory sections...
>>>
>>
>> Note that including a pragma import did NOT solve the problem - the code
>> looked like this
>>
>> myX : MyRecordType;
>> pragma volatile(myX);
>> myY : MyArrayType;
>> pragma volatile(myY);
>> for myY'Address use myX'Address;
>> pragma Import (Ada, myY);
>>
>>
>> But the map file exhibited the same problem as before.
>
> Try this.
>
> package TestPackage
> is
>
> type MyRecordType is
> record
> element1 : Positive;
> element2 : Positive;
> end record;
>
> type MyArrayType is array(1..2) of Positive;
>
> myX : MyRecordType;
> pragma Volatile(Myx);
> Pragma Export(Ada, Myx, "MyX");
>
> myY : MyArrayType;
> pragma Volatile(Myy);
> pragma Import(Ada, Myy, "MyX");
>
> end TestPackage;
>
> Not sure exactly what your end desired result is but assuming you really
> need to do this then perhaps this works.
Interestingly with this approach any reference to myY disappears from the
Map file and debug symbol table.
myY then ceases to be a useful symbol for debugging purposes external to the
program (which was the original reason to have the overlay!).....
next prev parent reply other threads:[~2006-04-01 21:33 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-01 13:47 Any way of persuading GNAT/GCC to implement a true overlay and not a pointer? Doobs
2006-04-01 14:33 ` Jeffrey Creem
2006-04-01 16:52 ` Doobs
2006-04-01 17:56 ` Martin Krischik
2006-04-01 18:04 ` Dmitry A. Kazakov
2006-04-01 17:08 ` Florian Weimer
2006-04-01 17:54 ` Doobs
2006-04-01 18:19 ` Doobs
2006-04-01 20:01 ` Jeffrey Creem
2006-04-01 21:33 ` Doobs [this message]
2006-04-03 12:25 ` Gerd
2006-04-01 20:57 ` Dmitry A. Kazakov
2006-04-04 1:23 ` Randy Brukardt
2006-04-10 1:42 ` Justin Gombos
2006-04-10 20:12 ` Randy Brukardt
2006-04-11 13:54 ` Making money on open source, if not by selling _support_, then how? Marc A. Criley
2006-04-11 15:13 ` Justin Gombos
2006-04-11 16:22 ` Dmitry A. Kazakov
2006-04-11 17:56 ` Justin Gombos
2006-04-11 18:38 ` Georg Bauhaus
2006-04-12 13:59 ` Justin Gombos
2006-04-12 14:39 ` Georg Bauhaus
2006-04-15 19:33 ` Justin Gombos
2006-04-12 17:07 ` Larry Kilgallen
2006-04-13 3:16 ` Justin Gombos
2006-04-11 19:59 ` Randy Brukardt
2006-04-11 20:18 ` Ed Falis
2006-04-12 14:10 ` Justin Gombos
2006-04-12 20:57 ` Randy Brukardt
2006-04-15 20:37 ` Justin Gombos
2006-04-18 0:24 ` Randy Brukardt
2006-04-18 16:02 ` Justin Gombos
2006-04-12 19:27 ` Martin Dowie
2006-04-12 8:32 ` Dmitry A. Kazakov
2006-04-12 11:23 ` Georg Bauhaus
2006-04-12 15:34 ` Dmitry A. Kazakov
2006-04-12 17:11 ` Georg Bauhaus
2006-04-12 19:37 ` Dmitry A. Kazakov
2006-04-12 21:56 ` Georg Bauhaus
2006-04-13 9:17 ` Dmitry A. Kazakov
2006-04-13 14:18 ` Georg Bauhaus
2006-04-14 10:01 ` Dmitry A. Kazakov
2006-04-14 12:55 ` Georg Bauhaus
2006-04-15 10:13 ` Dmitry A. Kazakov
2006-04-15 18:07 ` Georg Bauhaus
2006-04-13 2:58 ` Justin Gombos
2006-04-13 9:17 ` Dmitry A. Kazakov
2006-04-15 21:17 ` Justin Gombos
2006-04-16 10:53 ` Dmitry A. Kazakov
2006-04-16 13:03 ` Georg Bauhaus
2006-04-16 17:59 ` Dmitry A. Kazakov
2006-04-16 20:53 ` Georg Bauhaus
2006-04-17 9:16 ` Dmitry A. Kazakov
2006-04-19 20:38 ` Justin Gombos
2006-04-20 18:01 ` Dmitry A. Kazakov
2006-04-18 0:29 ` Randy Brukardt
2006-04-16 14:55 ` Justin Gombos
2006-04-16 17:59 ` Dmitry A. Kazakov
2006-04-19 18:17 ` Justin Gombos
2006-04-20 18:07 ` Dmitry A. Kazakov
2006-04-11 15:34 ` Justin Gombos
2006-04-12 2:59 ` Steve
2006-04-13 7:41 ` Jean-Pierre Rosen
2006-04-13 13:18 ` Marc A. Criley
2006-04-13 13:35 ` Dmitry A. Kazakov
2006-04-13 13:57 ` Making money on open source, if not by selling _support_, then Larry Kilgallen
2006-04-13 19:37 ` Justin Gombos
2006-04-13 21:02 ` Larry Kilgallen
2006-04-14 2:49 ` Justin Gombos
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox