[ARM/FDPIC,v3,01/21,ARM] FDPIC: Add -mfdpic option support

Message ID 20181011133518.17258-2-christophe.lyon@st.com
State New
Headers show
Series
  • FDPIC ABI for ARM
Related show

Commit Message

Christophe Lyon Oct. 11, 2018, 1:34 p.m.
2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>
	Mickaël Guêné  <mickael.guene@st.com>

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

Comments

Richard Earnshaw (lists) Oct. 12, 2018, 9:52 a.m. | #1
On 11/10/18 14:34, Christophe Lyon wrote:
> 2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>
> 	Mickaël Guêné  <mickael.guene@st.com>
> 
> 	gcc/
> 	* config/arm/arm.opt: Add -mfdpic option.
> 	* doc/invoke.texi: Add documentation for -mfdpic.

This is OK (once the rest of the series is approved).

R.

> 
> diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
> index a1286a4..231c1cb 100644
> --- a/gcc/config/arm/arm.opt
> +++ b/gcc/config/arm/arm.opt
> @@ -302,3 +302,7 @@ When linking for big-endian targets, generate a legacy BE32 format image.
>  mbranch-cost=
>  Target RejectNegative Joined UInteger Var(arm_branch_cost) Init(-1)
>  Cost to assume for a branch insn.
> +
> +mfdpic
> +Target Report Mask(FDPIC)
> +Enable Function Descriptor PIC mode.
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 5c95f67..3e33e60 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -684,7 +684,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
> @@ -17059,6 +17060,13 @@ 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
> +@opindex mfdpic
> +Select the FDPIC ABI, which uses function descriptors to represent
> +pointers to functions.  Without any PIC/PIE-related options, it
> +implies @option{-fPIE}.
> +
>  @end table
>  
>  @node AVR Options
>
Sandra Loosemore Oct. 17, 2018, 3:05 a.m. | #2
On 10/12/2018 03:52 AM, Richard Earnshaw (lists) wrote:
> On 11/10/18 14:34, Christophe Lyon wrote:
>> 2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>
>> 	Mickaël Guêné  <mickael.guene@st.com>
>>
>> 	gcc/
>> 	* config/arm/arm.opt: Add -mfdpic option.
>> 	* doc/invoke.texi: Add documentation for -mfdpic.
> 
> This is OK (once the rest of the series is approved).

The documentation looks fine to me too.

-Sandra

Patch

diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
index a1286a4..231c1cb 100644
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -302,3 +302,7 @@  When linking for big-endian targets, generate a legacy BE32 format image.
 mbranch-cost=
 Target RejectNegative Joined UInteger Var(arm_branch_cost) Init(-1)
 Cost to assume for a branch insn.
+
+mfdpic
+Target Report Mask(FDPIC)
+Enable Function Descriptor PIC mode.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 5c95f67..3e33e60 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -684,7 +684,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
@@ -17059,6 +17060,13 @@  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
+@opindex mfdpic
+Select the FDPIC ABI, which uses function descriptors to represent
+pointers to functions.  Without any PIC/PIE-related options, it
+implies @option{-fPIE}.
+
 @end table
 
 @node AVR Options