+2010-01-27 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ Backport from trunk:
+ * NEWS: Mention new feature.
+ * config/obj-coff.c (obj_coff_section): Accept digits and use
+ to override default section alignment power if specified.
+ * doc/as.texinfo (.section directive): Update documentation.
+
2010-01-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
-*- text -*-
+Changes in 2.20.1:
+
+* GAS now understands an extended syntax in the .section directive flags
+ for COFF targets that allows the section's alignment to be specified.
+
Changes in 2.20:
* GNU/Linux targets now supports "gnu_unique_object" as a value in the .type
#define OBJ_HEADER "obj-coff.h"
#include "as.h"
+#include "safe-ctype.h"
#include "obstack.h"
#include "subsegs.h"
'r' for read-only data
's' for shared data (PE)
'y' for noread
+ '0' - '9' for power-of-two alignment (GNU extension).
But if the argument is not a quoted string, treat it as a
subsegment number.
/* Strip out the section name. */
char *section_name;
char c;
+ int alignment = -1;
char *name;
unsigned int exp;
flagword flags, oldflags;
attr != '"'
&& ! is_end_of_line[attr])
{
+ if (ISDIGIT (attr))
+ {
+ alignment = attr - '0';
+ continue;
+ }
switch (attr)
{
case 'b':
}
sec = subseg_new (name, (subsegT) exp);
+ if (alignment >= 0)
+ sec->alignment_power = alignment;
oldflags = bfd_get_section_flags (stdoutput, sec);
if (oldflags == SEC_NO_FLAGS)
ignored. (For compatibility with the ELF version)
@item y
section is not readable (meaningful for PE targets)
+@item 0-9
+single-digit power-of-two section alignment (GNU extension)
@end table
If no flags are specified, the default flags depend upon the section name. If
+2010-01-27 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ Backport from trunk:
+ * gas/pe/section-align-1.s: New test source file.
+ * gas/pe/section-align-1.d: Likewise control script.
+ * gas/pe/section-align-2.s: Likewise ...
+ * gas/pe/section-align-2.d: ... and likewise.
+ * gas/pe/pe.exp: Invoke new testcases.
+
2009-12-15 H.J. Lu <hongjiu.lu@intel.com>
Backport from trunk:
run_dump_test "aligncomm-b"
run_dump_test "aligncomm-c"
run_dump_test "aligncomm-d"
+
+run_dump_test "section-align-1"
+run_dump_test "section-align-3"
.*: .*
Sections:
-Idx Name *Size *VMA *LMA *File off *Algn
- 0 \.text 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+Idx Name Size VMA LMA File off Algn
+ 0 \.text 00000000 00000000 00000000 00000000 2\*\*2
ALLOC, LOAD, READONLY, CODE
- 1 \.data 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+ 1 \.data 00000000 00000000 00000000 00000000 2\*\*2
ALLOC, LOAD, DATA
- 2 \.bss 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+ 2 \.bss 00000000 00000000 00000000 00000000 2\*\*2
ALLOC
- 3 \.none 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*0
+ 3 \.none 00000000 00000000 00000000 00000000 2\*\*0
ALLOC, LOAD, READONLY, DATA
- 4 \.zero 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*0
+ 4 \.zero 00000000 00000000 00000000 00000000 2\*\*0
ALLOC, LOAD, READONLY, DATA
- 5 \.one 0*0000001 0*0000000 0*0000000 0*00001a4 2\*\*0
+ 5 \.one 00000001 00000000 00000000 000001a4 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 6 \.two 0*0000002 0*0000000 0*0000000 0*00001a5 2\*\*0
+ 6 \.two 00000002 00000000 00000000 000001a5 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 \.three 0*0000003 0*0000000 0*0000000 0*00001a7 2\*\*0
+ 7 \.three 00000003 00000000 00000000 000001a7 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 \.four 0*0000004 0*0000000 0*0000000 0*00001aa 2\*\*0
+ 8 \.four 00000004 00000000 00000000 000001aa 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 9 \.five 0*0000005 0*0000000 0*0000000 0*00001ae 2\*\*0
+ 9 \.five 00000005 00000000 00000000 000001ae 2\*\*0
CONTENTS, ALLOC, LOAD, READONLY, DATA
.*: .*
Sections:
-Idx Name *Size *VMA *LMA *File off *Algn
- 0 \.text 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+Idx Name Size VMA LMA File off Algn
+ 0 \.text 00000000 00000000 00000000 00000000 2\*\*2
ALLOC, LOAD, READONLY, CODE
- 1 \.data 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+ 1 \.data 00000000 00000000 00000000 00000000 2\*\*2
ALLOC, LOAD, DATA
- 2 \.bss 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*[24]
+ 2 \.bss 00000000 00000000 00000000 00000000 2\*\*2
ALLOC
- 3 \.none 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*3
+ 3 \.none 00000000 00000000 00000000 00000000 2\*\*3
ALLOC, LOAD, READONLY, DATA
- 4 \.zero 0*0000000 0*0000000 0*0000000 0*0000000 2\*\*3
+ 4 \.zero 00000000 00000000 00000000 00000000 2\*\*3
ALLOC, LOAD, READONLY, DATA
- 5 \.one 0*0000008 0*0000000 0*0000000 0*000026c 2\*\*3
+ 5 \.one 00000008 00000000 00000000 0000026c 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 6 \.two 0*0000008 0*0000000 0*0000000 0*0000274 2\*\*3
+ 6 \.two 00000008 00000000 00000000 00000274 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 \.three 0*0000008 0*0000000 0*0000000 0*000027c 2\*\*3
+ 7 \.three 00000008 00000000 00000000 0000027c 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 \.four 0*0000008 0*0000000 0*0000000 0*0000284 2\*\*3
+ 8 \.four 00000008 00000000 00000000 00000284 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 9 \.five 0*0000008 0*0000000 0*0000000 0*000028c 2\*\*3
+ 9 \.five 00000008 00000000 00000000 0000028c 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 10 \.six 0*0000008 0*0000000 0*0000000 0*0000294 2\*\*3
+ 10 \.six 00000008 00000000 00000000 00000294 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 11 \.seven 0*0000008 0*0000000 0*0000000 0*000029c 2\*\*3
+ 11 \.seven 00000008 00000000 00000000 0000029c 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 12 \.eight 0*0000008 0*0000000 0*0000000 0*00002a4 2\*\*3
+ 12 \.eight 00000008 00000000 00000000 000002a4 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 13 \.nine 0*0000010 0*0000000 0*0000000 0*00002ac 2\*\*3
+ 13 \.nine 00000010 00000000 00000000 000002ac 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 14 \.ten 0*0000010 0*0000000 0*0000000 0*00002bc 2\*\*3
+ 14 \.ten 00000010 00000000 00000000 000002bc 2\*\*3
CONTENTS, ALLOC, LOAD, READONLY, DATA