aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-05-11 09:09:04 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2015-05-11 09:09:04 +0200
commitcbddf64c0243816b45e6680754a251c603245dbc (patch)
tree7c52ea95474a2c5bac4e514c331c3b229d247c25 /gcc
parent3eb92a3d25d596acb8a45d2ec335c6e3f6950391 (diff)
downloadgcc-cbddf64c0243816b45e6680754a251c603245dbc.zip
gcc-cbddf64c0243816b45e6680754a251c603245dbc.tar.gz
gcc-cbddf64c0243816b45e6680754a251c603245dbc.tar.bz2
re PR target/65780 (Uninitialized common handling in executables)
PR target/65780 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to default_binds_local_p_2. * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise. * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise. From-SVN: r222992
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/aarch64/aarch64-linux.h6
-rw-r--r--gcc/config/arm/linux-elf.h6
-rw-r--r--gcc/config/s390/linux.h6
4 files changed, 26 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c305d2e..c6130e2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2015-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/65780
+ * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
+ default_binds_local_p_2.
+ * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
+ * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
+
2015-05-09 Jan Hubicka <hubicka@ucw.cz>
* tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index 7973268..ba7fc3b 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -78,4 +78,10 @@
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
#endif /* GCC_AARCH64_LINUX_H */
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index 1279cba..6455e62 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -118,3 +118,9 @@
/* Add .note.GNU-stack. */
#undef NEED_INDICATE_EXEC_STACK
#define NEED_INDICATE_EXEC_STACK 1
+
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 2048ddc..21f9825 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -90,4 +90,10 @@ along with GCC; see the file COPYING3. If not see
#undef TARGET_LIBC_HAS_FUNCTION
#define TARGET_LIBC_HAS_FUNCTION gnu_libc_has_function
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
#endif