lkml.org 
[lkml]   [2000]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: linux-2.4.0-test9
Keith Owens wrote:
> >Put __attribute__ ((section (".data"))) into __tcp_clean_cacheline_pad
> >and it should do what you want.
> >
> >Heck, section ".bss" might give you the alignment without the allocation
> >but I'm not as confident about that.
>
> Call me mad but you could actually try this instead of guessing.

I just tried it with "gcc 2.96" (RedHat 7's edition) and that _does_
work. Good old egcs 1.1.2 gives the broken behaviour you describe.

int __attribute__ ((section (".data.init"))) x1;
int __attribute__ ((aligned (32), section (".data.init"))) x2;
int __attribute__ ((section (".data.init"))) x3 = 0;

$ gcc --version
2.96
$ as --version
GNU assembler 2.10.90
...
$ gcc -c test.c
$ objdump -h test.o
...
Idx Name Size VMA LMA File off Algn
0 .text 00000000 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00000000 00000000 00000034 2**2
ALLOC
3 .note 00000014 00000000 00000000 00000034 2**0
CONTENTS, READONLY
4 .data.init 00000024 00000000 00000000 00000060 2**5
CONTENTS, ALLOC, LOAD, DATA
5 .comment 00000029 00000000 00000000 00000084 2**0
CONTENTS, READONLY

Another one with .bss section gives a warning, but also works, even
preserving alignment in the .bss section:

int __attribute__ ((section (".bss"))) x1;
int __attribute__ ((aligned (32), section (".bss"))) x2;
int __attribute__ ((section (".bss"))) x3;

$ gcc test.c
/tmp/cc6KLZDY.s: Assembler messages:
/tmp/cc6KLZDY.s:5: Warning: Ignoring incorrect section type for .bss
$ objdump -h test.o
...
Idx Name Size VMA LMA File off Algn
0 .text 00000000 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000028 00000000 00000000 00000040 2**5
ALLOC
3 .note 00000014 00000000 00000000 00000040 2**0
CONTENTS, READONLY
4 .comment 00000029 00000000 00000000 00000054 2**0
CONTENTS, READONLY

$ nm test.o
00000000 t gcc2_compiled.
00000000 B x1
00000020 B x2
00000024 B x3

enjoy,
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:39    [W:0.029 / U:1.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site