From 4563bc4dc63664a64cb9ce6c426c689619c209e4 Mon Sep 17 00:00:00 2001 From: Christophe Lyon Date: Tue, 10 Sep 2019 09:32:41 +0200 Subject: [PATCH] [ARM/FDPIC 01/24] [ARM] FDPIC: Add -mfdpic option support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2019-09-10 Christophe Lyon Mickaël Guêné * config/arm/arm.opt: Add -mfdpic option. * doc/invoke.texi: Add documentation for -mfdpic. Co-Authored-By: Mickaël Guêné From-SVN: r275561 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/arm.opt | 4 ++++ gcc/doc/invoke.texi | 24 +++++++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcf052a7643..8fae4ec0280 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-10 Christophe Lyon + Mickaël Guêné + + * config/arm/arm.opt: Add -mfdpic option. + * doc/invoke.texi: Add documentation for -mfdpic. + 2019-09-09 Bernd Edlinger * expmed.c (extract_bit_field): Update function comment diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt index 5ecc5e5c91c..545ec49e231 100644 --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt @@ -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. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ef23a7d8933..234c1b7cadf 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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 -- 2.30.2