On Thu, May 12, 2016 at 4:19 PM, H.J. Lu wrote: > On Thu, May 12, 2016 at 3:02 PM, Uros Bizjak wrote: >> Hello! >> >> testsuite/gcc.target/i386/pr61599-{1,2}.c testcases expose a failure >> with -mcmodel -fpic, where: >> >> /tmp/ccfpoxHY.o: In function `bar': >> pr61599-2.c:(.text+0xe): relocation truncated to fit: R_X86_64_PC32 >> against symbol `a' defined in LARGE_COMMON section in /tmp/ccKTKST2.o >> collect2: error: ld returned 1 exit status >> compiler exited with status 1 >> >> CM_MEDIUM_PIC code model assumes that code+got/plt fits in a 31 bit >> region, data is unlimited. Based on these assumptions, code should be >> accessed via R_X86_64_GOT64. >> >> Attached patch uses UNSPEC_GOT instead of UNSPEC_GOTPCREL also for >> CM_MEDIUM_PIC. >> >> 2016-05-12 Uros Bizjak >> >> PR target/61599 >> * config/i386/i386.c (legitimize_pic_address): Do not use >> UNSPEC_GOTPCREL for CM_MEDIUM_PIC code model. >> >> Patch was bootstrapped on x86_64-linux-gnu and regression tested with >> -mcmodel=medium -fpic. >> >> Jakub, H.J., do you have any comments on the patch? > > > I prefer this patch. > Oops wrong one. Here is the right one. -- H.J.