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.

Reply via email to