• Dmitry Safonov's avatar
    ia32: Get rid of R_X86_64_32S relocation · 585dda23
    Dmitry Safonov authored
    Distributions starts to supply GCC that is configured to compile
    -pie and -fPIC code by default due to security reasons.
    
    CONFIG_COMPAT was unfriendy to -pie by the reason of R_X86_64_32S
    relocation in call32.S helper:
      LINK     criu/criu
    /usr/bin/ld: criu/arch/x86/crtools.built-in.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
    /usr/bin/ld: final link failed: Nonrepresentable section on output
    collect2: error: ld returned 1 exit status
    make[1]: *** [criu/Makefile:92: criu/criu] Error 1
    make: *** [Makefile:225: criu] Error 2
    
    Use %rip-relative addressing to avoid ld errors for shared binary linking.
    Puff, all needs to be done with bare hands!
    
    Now CONFIG_COMPAT can be used with -pie binaries and all should
    also work for debian toolchain (#315).
    Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
    Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    585dda23
feature-tests.mak 2.15 KB