Fix compile errors with GCC 4.2. 2017-01-11 Cary Coutant gold/ PR gold/21040 * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): Remove unnecessary 'typename' keyword. (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern declarations. diff --git a/gold/testsuite/copy_test_relro_1.cc b/gold/testsuite/copy_test_relro_1.cc index c5f280b..3628214 100644 --- a/gold/testsuite/copy_test_relro_1.cc +++ b/gold/testsuite/copy_test_relro_1.cc @@ -21,10 +21,16 @@ // MA 02110-1301, USA. extern int a; -extern int* const p = &a; -extern const int b[] = { 100, 200, 300, 400 }; +extern int* const p; +extern const int b[]; +extern const int c; +extern const int* const q; -extern const int c = 500; +int* const p = &a; -extern const int* const q = &c; +const int b[] = { 100, 200, 300, 400 }; + +const int c = 500; + +const int* const q = &c; diff --git a/gold/x86_64.cc b/gold/x86_64.cc index 4116429..d4d76b5 100644 --- a/gold/x86_64.cc +++ b/gold/x86_64.cc @@ -478,29 +478,29 @@ class Output_data_plt_x86_64_bnd : public Output_data_plt_x86_64<64> virtual void do_fill_first_plt_entry(unsigned char* pov, - typename elfcpp::Elf_types<64>::Elf_Addr got_addr, - typename elfcpp::Elf_types<64>::Elf_Addr plt_addr); + elfcpp::Elf_types<64>::Elf_Addr got_addr, + elfcpp::Elf_types<64>::Elf_Addr plt_addr); virtual unsigned int do_fill_plt_entry(unsigned char* pov, - typename elfcpp::Elf_types<64>::Elf_Addr got_address, - typename elfcpp::Elf_types<64>::Elf_Addr plt_address, + elfcpp::Elf_types<64>::Elf_Addr got_address, + elfcpp::Elf_types<64>::Elf_Addr plt_address, unsigned int got_offset, unsigned int plt_offset, unsigned int plt_index); virtual void do_fill_tlsdesc_entry(unsigned char* pov, - typename elfcpp::Elf_types<64>::Elf_Addr got_address, - typename elfcpp::Elf_types<64>::Elf_Addr plt_address, - typename elfcpp::Elf_types<64>::Elf_Addr got_base, + elfcpp::Elf_types<64>::Elf_Addr got_address, + elfcpp::Elf_types<64>::Elf_Addr plt_address, + elfcpp::Elf_types<64>::Elf_Addr got_base, unsigned int tlsdesc_got_offset, unsigned int plt_offset); void fill_aplt_entry(unsigned char* pov, - typename elfcpp::Elf_types<64>::Elf_Addr got_address, - typename elfcpp::Elf_types<64>::Elf_Addr plt_address, + elfcpp::Elf_types<64>::Elf_Addr got_address, + elfcpp::Elf_types<64>::Elf_Addr plt_address, unsigned int got_offset, unsigned int plt_offset, unsigned int plt_index);