diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 429a2ff3ff2..7bbb1b04648 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-03-18 Alexandre Oliva + * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't + use %gprel for symbols that are going to be placed in linkonce + sections. + * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate RETURN_ADDRESS_POINTER_REGNUM to $ra. (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index bc09632e73f..536ef51461d 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3407,7 +3407,11 @@ do \ specific sections, except for .sdata and .sbss which are \ handled above. */ \ else if (TARGET_GP_OPT && TREE_CODE (DECL) == VAR_DECL \ - && DECL_SECTION_NAME (DECL) == NULL_TREE) \ + && DECL_SECTION_NAME (DECL) == NULL_TREE \ + && ! (TARGET_MIPS16 && TREE_PUBLIC (DECL) \ + && (DECL_COMMON (DECL) \ + || DECL_ONE_ONLY (DECL) \ + || DECL_WEAK (DECL)))) \ { \ int size = int_size_in_bytes (TREE_TYPE (DECL)); \ \