yann@1: See http://gcc.gnu.org/PR11901 yann@1: Should fix yann@1: make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1 yann@1: in glibc's "make tests". yann@1: yann@1: Note: this patch is named yann@1: sh-pic-set_fpscr-gcc-3.3.2.patch yann@1: and must be applied after yann@1: sh-lib1funcs_sizeAndType.patch yann@1: but that'll happen naturally if you apply them in alphabetical order. yann@1: yann@1: ------------- yann@1: yann@1: Date: Wed, 30 Jul 2003 12:03:01 +0900 yann@1: From: kaz Kojima yann@1: Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails yann@1: with "libc.so: text relocations used" in glibc-2.3.2 for sh4) yann@1: To: dank@kegel.com yann@1: Cc: linux-sh@m17n.org yann@1: Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp> yann@1: yann@1: > I'll try to write the PIC version of it, yann@1: yann@1: Dan, does the attached patch work for you? yann@1: yann@1: Regards, yann@1: kaz yann@1: -- yann@1: diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm yann@1: --- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003 yann@1: +++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003 yann@1: @@ -1936,7 +1944,17 @@ GLOBAL(moddi3): yann@1: FUNC(GLOBAL(set_fpscr)) yann@1: GLOBAL(set_fpscr): yann@1: lds r4,fpscr yann@1: +#ifdef __PIC__ yann@1: + mov.l r12,@-r15 yann@1: + mova LOCAL(set_fpscr_L0),r0 yann@1: + mov.l LOCAL(set_fpscr_L0),r12 yann@1: + add r0,r12 yann@1: + mov.l LOCAL(set_fpscr_L1),r0 yann@1: + mov.l @(r0,r12),r1 yann@1: + mov.l @r15+,r12 yann@1: +#else yann@1: mov.l LOCAL(set_fpscr_L1),r1 yann@1: +#endif yann@1: swap.w r4,r0 yann@1: or #24,r0 yann@1: #ifndef FMOVD_WORKS yann@1: @@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr): yann@1: mov.l r3,@(4,r1) yann@1: #endif yann@1: .align 2 yann@1: +#ifdef __PIC__ yann@1: +LOCAL(set_fpscr_L0): yann@1: + .long _GLOBAL_OFFSET_TABLE_ yann@1: +LOCAL(set_fpscr_L1): yann@1: + .long GLOBAL(fpscr_values@GOT) yann@1: +#else yann@1: LOCAL(set_fpscr_L1): yann@1: .long GLOBAL(fpscr_values) yann@1: +#endif yann@1: yann@1: ENDFUNC(GLOBAL(set_fpscr)) yann@1: #ifndef NO_FPSCR_VALUES yann@1: yann@1: