Document our extension to the COFF .section directive flags
authorReid Kleckner <rnk@google.com>
Thu, 15 Sep 2016 15:11:49 +0000 (15:11 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 15 Sep 2016 15:11:49 +0000 (15:11 +0000)
llvm-svn: 281616

llvm/docs/Extensions.rst

index f702921..6c50abf 100644 (file)
@@ -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
 -------------