aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/gcc
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-10-23 11:00:02 -0700
committerGerrit Code Review <noreply-gerritcodereview@google.com>2012-10-23 11:00:02 -0700
commit1dfda5810c52c30aa6197e7dc3fd44885af380e4 (patch)
tree30917589b87e54775e7c977ad74be7f26f04ae36 /gcc-4.4.3/gcc
parentd731c23051a3a72d3c51f94acc6dec70bbe4babc (diff)
parent7e66b0108987a56a58c6150672fe7cf8cf88e69a (diff)
downloadtoolchain_gcc-1dfda5810c52c30aa6197e7dc3fd44885af380e4.tar.gz
toolchain_gcc-1dfda5810c52c30aa6197e7dc3fd44885af380e4.tar.bz2
toolchain_gcc-1dfda5810c52c30aa6197e7dc3fd44885af380e4.zip
Merge "Enable assembler linker default for security"
Diffstat (limited to 'gcc-4.4.3/gcc')
-rw-r--r--gcc-4.4.3/gcc/config/arm/elf.h6
-rw-r--r--gcc-4.4.3/gcc/config/arm/linux-eabi.h5
-rw-r--r--gcc-4.4.3/gcc/config/i386/linux.h3
-rw-r--r--gcc-4.4.3/gcc/config/linux-android.h5
-rw-r--r--gcc-4.4.3/gcc/config/mips/linux.h3
5 files changed, 17 insertions, 5 deletions
diff --git a/gcc-4.4.3/gcc/config/arm/elf.h b/gcc-4.4.3/gcc/config/arm/elf.h
index 7c3eddbe0..018319b07 100644
--- a/gcc-4.4.3/gcc/config/arm/elf.h
+++ b/gcc-4.4.3/gcc/config/arm/elf.h
@@ -52,8 +52,7 @@
#undef SUBSUBTARGET_EXTRA_SPECS
#define SUBSUBTARGET_EXTRA_SPECS
-#ifndef ASM_SPEC
-#define ASM_SPEC "\
+#define LINUX_ASM_SPEC "\
%{mbig-endian:-EB} \
%{mlittle-endian:-EL} \
%{mcpu=*:-mcpu=%*} \
@@ -64,6 +63,9 @@
%{msoft-float:-mfloat-abi=soft} %{mhard-float:-mfloat-abi=hard} \
%{mfloat-abi=*} %{mfpu=*} \
%(subtarget_extra_asm_spec)"
+
+#ifndef ASM_SPEC
+#define ASM_SPEC LINUX_ASM_SPEC
#endif
/* The ARM uses @ are a comment character so we need to redefine
diff --git a/gcc-4.4.3/gcc/config/arm/linux-eabi.h b/gcc-4.4.3/gcc/config/arm/linux-eabi.h
index 2ca881890..9bec0c9fa 100644
--- a/gcc-4.4.3/gcc/config/arm/linux-eabi.h
+++ b/gcc-4.4.3/gcc/config/arm/linux-eabi.h
@@ -79,6 +79,11 @@
#define CC1PLUS_SPEC \
LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
+#undef ASM_SPEC
+#define ASM_SPEC \
+ LINUX_OR_ANDROID_CC (LINUX_ASM_SPEC, \
+ LINUX_ASM_SPEC " " ANDROID_ASM_SPEC)
+
#undef LIB_SPEC
#define LIB_SPEC \
LINUX_OR_ANDROID_LD (LINUX_TARGET_LIB_SPEC, \
diff --git a/gcc-4.4.3/gcc/config/i386/linux.h b/gcc-4.4.3/gcc/config/i386/linux.h
index f3a98c26a..f0640b5a6 100644
--- a/gcc-4.4.3/gcc/config/i386/linux.h
+++ b/gcc-4.4.3/gcc/config/i386/linux.h
@@ -108,7 +108,8 @@ along with GCC; see the file COPYING3. If not see
#undef ASM_SPEC
#define ASM_SPEC \
"%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} --32 \
- %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}} " \
+ LINUX_OR_ANDROID_CC ("", ANDROID_ASM_SPEC)
/* These may be provided by config/linux-grtev2.h. */
#ifndef LINUX_GRTE_EXTRA_SPECS
diff --git a/gcc-4.4.3/gcc/config/linux-android.h b/gcc-4.4.3/gcc/config/linux-android.h
index 8184bf90f..73975c6c1 100644
--- a/gcc-4.4.3/gcc/config/linux-android.h
+++ b/gcc-4.4.3/gcc/config/linux-android.h
@@ -39,7 +39,7 @@
"%{" NOANDROID "|tno-android-ld:" LINUX_SPEC ";:" ANDROID_SPEC "}"
#define ANDROID_LINK_SPEC \
- "%{shared: -Bsymbolic}"
+ "%{shared: -Bsymbolic} -z noexecstack -z relro -z now"
#define ANDROID_CC1_SPEC \
"%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \
@@ -49,6 +49,9 @@
"%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \
"%{!frtti:%{!fno-rtti: -fno-rtti}}"
+#define ANDROID_ASM_SPEC \
+ "--noexecstack"
+
#define ANDROID_LIB_SPEC \
"%{!static: -ldl}"
diff --git a/gcc-4.4.3/gcc/config/mips/linux.h b/gcc-4.4.3/gcc/config/mips/linux.h
index 21670e300..280d6fbda 100644
--- a/gcc-4.4.3/gcc/config/mips/linux.h
+++ b/gcc-4.4.3/gcc/config/mips/linux.h
@@ -81,7 +81,8 @@ along with GCC; see the file COPYING3. If not see
#undef SUBTARGET_ASM_SPEC
#define SUBTARGET_ASM_SPEC \
- "%{!mno-abicalls:%{mplt:-call_nonpic;:-KPIC}}"
+ "%{!mno-abicalls:%{mplt:-call_nonpic;:-KPIC}} " \
+ LINUX_OR_ANDROID_CC ("", ANDROID_ASM_SPEC)
/* The MIPS assembler has different syntax for .set. We set it to
.dummy to trap any errors. */