diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-18 09:44:21 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-18 09:44:21 +0000 |
commit | e348ff3e8521ed7cf9b5ca04ec462ad773c598a9 (patch) | |
tree | f265953e69b78d5f07f6dcd4e973c24c2e324993 /gcc/config/arm/vxworks.h | |
parent | e13cda6d61d70c7375050bd34fd32887442f0e8e (diff) | |
download | gcc-e348ff3e8521ed7cf9b5ca04ec462ad773c598a9.tar.gz |
gcc/
* config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
* config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
arm_cannot_force_const_mem.
(arm_cannot_force_const_mem): New function.
* config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
(LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
of arm_tls_referenced_p.
* config/arm/arm.md (movsi): Split out-of-section constants when
ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
* config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126718 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/vxworks.h')
-rw-r--r-- | gcc/config/arm/vxworks.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/arm/vxworks.h b/gcc/config/arm/vxworks.h index 58fea14f985..fb6c79b0331 100644 --- a/gcc/config/arm/vxworks.h +++ b/gcc/config/arm/vxworks.h @@ -106,3 +106,11 @@ Boston, MA 02110-1301, USA. */ the past before this macro was changed. */ #undef DEFAULT_STRUCTURE_SIZE_BOUNDARY #define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8 + +/* The kernel loader does not allow relocations to overflow, so we + cannot allow arbitrary relocation addends in kernel modules or RTP + executables. Also, the dynamic loader uses the resolved relocation + value to distinguish references to the text and data segments, so we + cannot allow arbitrary offsets for shared libraries either. */ +#undef ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P +#define ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1 |