[ARM/FDPIC 01/24] [ARM] FDPIC: Add -mfdpic option support
authorChristophe Lyon <christophe.lyon@st.com>
Tue, 10 Sep 2019 07:32:41 +0000 (09:32 +0200)
committerChristophe Lyon <clyon@gcc.gnu.org>
Tue, 10 Sep 2019 07:32:41 +0000 (09:32 +0200)
2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
Mickaël Guêné  <mickael.guene@st.com>

* config/arm/arm.opt: Add -mfdpic option.
* doc/invoke.texi: Add documentation for -mfdpic.

Co-Authored-By: Mickaël Guêné <mickael.guene@st.com>
From-SVN: r275561

gcc/ChangeLog
gcc/config/arm/arm.opt
gcc/doc/invoke.texi

index fcf052a7643ed797c3c8782c746923f7052f4f3b..8fae4ec0280daa945da5ae9b7f92e769015b0a68 100644 (file)
@@ -1,3 +1,9 @@
+2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
+       Mickaël Guêné  <mickael.guene@st.com>
+
+       * config/arm/arm.opt: Add -mfdpic option.
+       * doc/invoke.texi: Add documentation for -mfdpic.
+
 2019-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        * expmed.c (extract_bit_field): Update function comment
index 5ecc5e5c91c521309925d4c14f04644e37f472e6..545ec49e23186a4832dd3b9d4a0973e37cf56e2e 100644 (file)
@@ -306,3 +306,7 @@ Cost to assume for a branch insn.
 mgeneral-regs-only
 Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
 Generate code which uses the core registers only (r0-r14).
+
+mfdpic
+Target Report Mask(FDPIC)
+Enable Function Descriptor PIC mode.
index ef23a7d89334086adb2663b83bfc2cce994d5caa..234c1b7cadf9838c5b6d186a1a920174b16b4a8a 100644 (file)
@@ -710,7 +710,8 @@ Objective-C and Objective-C++ Dialects}.
 -mrestrict-it @gol
 -mverbose-cost-dump @gol
 -mpure-code @gol
--mcmse}
+-mcmse @gol
+-mfdpic}
 
 @emph{AVR Options}
 @gccoptlist{-mmcu=@var{mcu}  -mabsdata  -maccumulate-args @gol
@@ -18029,6 +18030,27 @@ MOVT instruction.
 Generate secure code as per the "ARMv8-M Security Extensions: Requirements on
 Development Tools Engineering Specification", which can be found on
 @url{http://infocenter.arm.com/help/topic/com.arm.doc.ecm0359818/ECM0359818_armv8m_security_extensions_reqs_on_dev_tools_1_0.pdf}.
+
+@item -mfdpic
+@itemx -mno-fdpic
+@opindex mfdpic
+@opindex mno-fdpic
+Select the FDPIC ABI, which uses 64-bit function descriptors to
+represent pointers to functions.  When the compiler is configured for
+@code{arm-*-uclinuxfdpiceabi} targets, this option is on by default
+and implies @option{-fPIE} if none of the PIC/PIE-related options is
+provided.  On other targets, it only enables the FDPIC-specific code
+generation features, and the user should explicitly provide the
+PIC/PIE-related options as needed.
+
+Note that static linking is not supported because it would still
+involve the dynamic linker when the program self-relocates.  If such
+behavior is acceptable, use -static and -Wl,-dynamic-linker options.
+
+The opposite @option{-mno-fdpic} option is useful (and required) to
+build the Linux kernel using the same (@code{arm-*-uclinuxfdpiceabi})
+toolchain as the one used to build the userland programs.
+
 @end table
 
 @node AVR Options