From 8ddf07cc546e12ab199ad5ae7bb22e76cd8127ed Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Thu, 15 Sep 2016 15:11:49 +0000 Subject: [PATCH] Document our extension to the COFF .section directive flags llvm-svn: 281616 --- llvm/docs/Extensions.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/llvm/docs/Extensions.rst b/llvm/docs/Extensions.rst index f7029215c199..6c50abf192f2 100644 --- a/llvm/docs/Extensions.rst +++ b/llvm/docs/Extensions.rst @@ -165,6 +165,22 @@ and ``.bar`` is associated to ``.foo``. .section .foo,"bw",discard, "sym" .section .bar,"rd",associative, "sym" +MC supports these flags in the COFF ``.section`` directive: + + - ``b``: BSS section (``IMAGE_SCN_CNT_INITIALIZED_DATA``) + - ``d``: Data section (``IMAGE_SCN_CNT_UNINITIALIZED_DATA``) + - ``n``: Section is not loaded (``IMAGE_SCN_LNK_REMOVE``) + - ``r``: Read-only + - ``s``: Shared section + - ``w``: Writable + - ``x``: Executable section + - ``y``: Not readable + - ``D``: Discardable (``IMAGE_SCN_MEM_DISCARDABLE``) + +These flags are all compatible with gas, with the exception of the ``D`` flag, +which gnu as does not support. For gas compatibility, sections with a name +starting with ".debug" are implicitly discardable. + ELF-Dependent -------------