This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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