This is the mail archive of the gcc@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: GCC 4.4.0-rc1 available


H.J. Lu wrote:
> On Wed, Apr 15, 2009 at 7:11 AM, Dave Korn

>> and it fails on the assignment "r = a;" because r is unaligned (0x404024); in
>> the assembly source, it is simply defined as
>>
>>        .comm   _r, 16   # 16
>>
>> so maybe the problem is in the Cygwin linker script?  Is the COMMON section
>> supposed to be aligned?  In Cygwin, it just gets appended into .bss, like so:
>>
>>  .bss           0x00404024        0x0
>> /gnu/gcc/releases/4.4.0rc1/gcc/libgcc.a(_ctors.o)
>>  .bss           0x00404024        0x0 /gnu/gcc/releases/4.4.0rc1/gcc/crtend.o
>>  *(COMMON)
>>  COMMON         0x00404024       0x10
>> /win/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/cc86uXzW.o
>>                0x00404024                _r
>>  COMMON         0x00404034       0x20
>> /gnu/gcc/releases/4.4.0rc1/gcc/libgcc.a(_ctors.o)
>>                0x00404054                __bss_end__ = .
>>
>>  Does there need to be an alignment specified for COMMON (and/or other
>> sections)?
>>
> 
> It does look like a Cygwin specific issue.

  Can you tell me whether Linux treats COMMON as a separate section with its
own alignment, or otherwise takes steps to ensure it has a base alignment that
the compiler can assume?  Otherwise I expect I need to look at the cygwin
definitions of the ASM_OUTPUT_COMMON* macros.

    cheers,
      DaveK


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