-
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:
Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
585dda23