This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Tue, Dec 10, 2002 at 02:52:50PM +0100, Jakub Jelinek wrote: > Hi! > > This is actually the same crap as I had to work around in test-string.h, > ie. x86_64 aligns preinit_array etc. to 16 bytes because they are >= > 16 bytes, yet its actual size is 24 bytes. > /* x86-64 ABI requires arrays greater than 16 bytes to be aligned > to 16byte boundary. */ > Linker script of course doesn't expect .init_array/.fini_array/.preinit_array > sections to be more than word aligned and thus the labels around them > are on wrong positions. > > 2002-12-10 Jakub Jelinek <jakub@redhat.com> > > * elf/tst-array1.c (preinit_array, init_array, fini_array): > Explicitely align the array to sizeof (void *). > * elf/tst-array2dep.c (init_array, fini_array): Likewise. > > --- libc/elf/tst-array1.c.jj 2002-11-07 23:28:04.000000000 +0100 > +++ libc/elf/tst-array1.c 2002-12-10 16:01:54.000000000 +0100 > @@ -35,7 +35,7 @@ preinit_2 (void) > } > > void (*const preinit_array []) (void) > - __attribute__ ((section (".preinit_array"))) = > + __attribute__ ((section (".preinit_array"), aligned (sizeof (void *)))) = > { > &preinit_0, > &preinit_1, I assume size of void * is 8 byte for x86_64. Will it align at 16 byte? Those *_array sections are special sections. Should they be handled by gas/ld automatically? H.J.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |