https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87833
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW CC| |marxin at gcc dot gnu.org Component|target |lto Summary|[9/10 Regression] Intel MIC |[9/10 Regression] -fPIC |(emulated) offloading: |-fno-PIE don't work with |"relocation [...] can not |LTO |be used when making a | |shared object; recompile | |with -fPIC" | --- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- [hjl@gnu-cfl-1 pr87833]$ cat x.i void open_fd(char *); void init_ioctl_ctl() { open_fd(""); } void get_ioctl_ops() {} [hjl@gnu-cfl-1 pr87833]$ cat y.i void get_ioctl_ops(); void a() { get_ioctl_ops(); } [hjl@gnu-cfl-1 pr87833]$ make /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -O2 -fPIC -c y.i /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -O2 -fPIC -c x.i /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -o x.so y.o x.o -shared -fPIC -fno-pie [hjl@gnu-cfl-1 pr87833]$ make clean rm -f *.o *.s foo bar *.[cCi].* x *.ii.* *.a [hjl@gnu-cfl-1 pr87833]$ make LTO=1 /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -O2 -flto -fPIC -c y.i /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -O2 -flto -fPIC -c x.i /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -o x.so y.o x.o -shared -fPIC -fno-pie /usr/local/bin/ld: /tmp/x.so.LWF6nG.ltrans0.ltrans.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/local/bin/ld: final link failed: nonrepresentable section on output collect2: error: ld returned 1 exit status make: *** [Makefile:21: x.so] Error 1 [hjl@gnu-cfl-1 pr87833]$ -fPIC -fno-pie should turn off PIE/pie, not PIC/pic.