--- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 06:22:11.737423661 +0900 @@ -9143,7 +9143,8 @@ reg = gen_reg_rtx (Pmode); if (TARGET_FDPIC - && GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_FUNCTION_P (orig)) + && GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_FUNCTION_P (orig) + && (!TREE_PUBLIC(SYMBOL_REF_DECL(orig)) || DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) == VISIBILITY_HIDDEN)) { /* Weak functions may be NULL which doesn't work with GOTOFFFUNCDESC because the runtime offset is not known. */ @@ -9169,7 +9170,8 @@ if (reg == NULL_RTX) reg = gen_reg_rtx (Pmode); - if (TARGET_FDPIC && SYMBOL_REF_FUNCTION_P (orig)) + if (TARGET_FDPIC && SYMBOL_REF_FUNCTION_P (orig) + && (!TREE_PUBLIC(SYMBOL_REF_DECL(orig)) || DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) == VISIBILITY_HIDDEN)) emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); else emit_insn (gen_symGOT2reg (reg, orig));