This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: g++ serious bug in Ubuntu Lucid Lynx


This may help as well:

http://clinuxpro.com/Cprogramming/structurepadding.php

On Wed, Jun 2, 2010 at 12:26 PM, Brian Budge <brian.budge@gmail.com> wrote:
> I'm surprised this wasn't the case before. ?AFAIK, structs with
> doubles have been aligned to at least an 8 byte boundary for years.
>
> You may need to write a new reader that knows the layout on disk and
> reconstructs the data.
>
> ?Brian
>
> On Wed, Jun 2, 2010 at 9:16 AM, Christian Convey
> <christian.convey@gmail.com> wrote:
>> Are you sure that's a bug in the legalistic sense? ?IIRC, C and C++
>> don't promise any particular memory layout for structs.
>>
>> On Wed, Jun 2, 2010 at 11:53 AM, David R. Doucette
>> <ddoucette@kldcompanies.com> wrote:
>>> We just installed Lucid Lynx a few days ago, and have hit a fatal flaw with
>>> g++ that has forced us to stop the deployment and roll back the systems we
>>> could.
>>>
>>> Structures in Lucid are now mapping differently than in the past, so we can
>>> no longer read our own files! Further, if any files are written by code
>>> produced by the new g++, they are corrupted.
>>>
>>> The problem is that doubles are now being mapped onto a boundary divisible
>>> by 8 rather than a boundary divisible by 4, meaning that offsets change and
>>> structs get bigger.
>>>
>>> I've attached a tar file showing the mapping on Jaunty, Karmic, and Lucid to
>>> show the change. This is a greatly simplified program that shows the
>>> problem, but it's happening in all of our C++ programs.
>>>
>>> HELP!
>>>
>>> System is Ubuntu 10.4 Lucid Lynx 64 bit.
>>>
>>> David Doucette
>>>
>>
>


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