From cbddf64c0243816b45e6680754a251c603245dbc Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 11 May 2015 09:09:04 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 8 ++++++++ gcc/config/aarch64/aarch64-linux.h | 6 ++++++ gcc/config/arm/linux-elf.h | 6 ++++++ gcc/config/s390/linux.h | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c305d2efa45f..c6130e2b4bd4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-05-11 Jakub Jelinek + + 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 * 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 7973268e757f..ba7fc3b4d1d6 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 1279cbaf6f2c..6455e62489d7 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 2048ddc02514..21f9825bf659 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 -- 2.43.5