This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: 7506 - Temporary fix to g++ 3.2/binutils 2.13/Solaris 2.7 or later
- From: "Dana, Eric" <Eric_Dana at bmc dot com>
- To: "'gcc-patches at gcc dot gnu dot org'" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 18 Sep 2002 15:39:53 -0500
- Subject: RE: 7506 - Temporary fix to g++ 3.2/binutils 2.13/Solaris 2.7 or later
Enclosed is a corrected patch from:
http://gcc.gnu.org/ml/gcc-patches/2002-09/msg00826.html
--Eric--
---Cut Here---
*** gcc/config/sparc.h.orig Wed Sep 18 16:18:45 2002
--- gcc/config/sparc.h Wed Sep 18 16:36:05 2002
***************
*** 2015,2020 ****
--- 2015,2024 ----
binutils 2.12 would emit a R_SPARC_DISP32 dynamic relocation if the
symbol %r_disp32() is against was not local, but .hidden. In that
+
+ binutils 2.13 seems to require a 64-bit relocation for TARGET_ARCH64.
+ This may not be the best long term solution, but it gets C++ apps
+ using libstdc++ working. */
case, we have to use DW_EH_PE_absptr for pic personality. */
#ifdef HAVE_AS_SPARC_UA_PCREL
#ifdef HAVE_AS_SPARC_UA_PCREL_HIDDEN
***************
*** 2022,2028 ****
(flag_pic \
? (GLOBAL ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4\
: ((TARGET_ARCH64 && ! GLOBAL) \
! ? (DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
: DW_EH_PE_absptr))
#else
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
--- 2026,2032 ----
(flag_pic \
? (GLOBAL ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4\
: ((TARGET_ARCH64 && ! GLOBAL) \
! ? (DW_EH_PE_pcrel | DW_EH_PE_sdata8) \
: DW_EH_PE_absptr))
#else
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
***************
*** 2029,2035 ****
(flag_pic \
? (GLOBAL ? DW_EH_PE_absptr : (DW_EH_PE_pcrel | DW_EH_PE_sdata4)) \
: ((TARGET_ARCH64 && ! GLOBAL) \
! ? (DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
: DW_EH_PE_absptr))
#endif
--- 2033,2039 ----
(flag_pic \
? (GLOBAL ? DW_EH_PE_absptr : (DW_EH_PE_pcrel | DW_EH_PE_sdata4)) \
: ((TARGET_ARCH64 && ! GLOBAL) \
! ? (DW_EH_PE_pcrel | DW_EH_PE_sdata8) \
: DW_EH_PE_absptr))
#endif