[PATCH 02/17] gas/COFF: extend use of SEC_ALLOC
Jan Beulich
jbeulich@suse.com
Mon Aug 4 09:13:48 GMT 2025
More information about the Binutils mailing list
Mon Aug 4 09:13:48 GMT 2025
- Previous message (by thread): [PATCH 01/17] ld/PE: adjust .reloc and .edata section flags
- Next message (by thread): [PATCH 03/17] bfd / PE/COFF: avoid setting SEC_ALLOC when finding IMAGE_SCN_MEM_DISCARDABLE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In line with bfd's styp_to_sec_flags(), set SEC_ALLOC for code/data
sections. Tie the setting to SEC_LOAD, not avoid inadvertently producing
a .bss-like section.
---
As it looks, TC_COFF_SECTION_DEFAULT_ATTRIBUTES exists "just in case"? I
can't find any target overriding it (and hence no target-specific
adjustments are needed here).
A testcase will be added when _bfd_XXi_swap_scnhdr_out() actually learns
to respect SEC_ALLOC.
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -43,7 +43,7 @@
attributes when a directive has no valid flags or the "w" flag is
used. This default should be appropriate for most. */
#ifndef TC_COFF_SECTION_DEFAULT_ATTRIBUTES
-#define TC_COFF_SECTION_DEFAULT_ATTRIBUTES (SEC_LOAD | SEC_DATA)
+#define TC_COFF_SECTION_DEFAULT_ATTRIBUTES (SEC_ALLOC | SEC_LOAD | SEC_DATA)
#endif
/* This is used to hold the symbol built by a sequence of pseudo-ops
@@ -1605,6 +1605,8 @@ obj_coff_section (int ignore ATTRIBUTE_U
case 'n':
/* Section not loaded. */
flags &=~ SEC_LOAD;
+ if (!is_bss)
+ flags &= ~SEC_ALLOC;
flags |= SEC_NEVER_LOAD;
load_removed = 1;
break;
@@ -1617,7 +1619,7 @@ obj_coff_section (int ignore ATTRIBUTE_U
/* Data section. */
flags |= SEC_DATA;
if (! load_removed)
- flags |= SEC_LOAD;
+ flags |= SEC_LOAD | SEC_ALLOC;
flags &=~ SEC_READONLY;
break;
@@ -1641,7 +1643,7 @@ obj_coff_section (int ignore ATTRIBUTE_U
otherwise set the SEC_DATA flag. */
flags |= (attr == 'x' || (flags & SEC_CODE) ? SEC_CODE : SEC_DATA);
if (! load_removed)
- flags |= SEC_LOAD;
+ flags |= SEC_LOAD | SEC_ALLOC;
/* Note - the READONLY flag is set here, even for the 'x'
attribute in order to be compatible with the MSVC
linker. */
- Previous message (by thread): [PATCH 01/17] ld/PE: adjust .reloc and .edata section flags
- Next message (by thread): [PATCH 03/17] bfd / PE/COFF: avoid setting SEC_ALLOC when finding IMAGE_SCN_MEM_DISCARDABLE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list