Hi Tglx, Andy,

Sorry for old-posting,

2017-09-15 8:09 GMT+01:00 Thomas Gleixner <[email protected]>:
> On Thu, 14 Sep 2017, Andy Lutomirski wrote:
>> On Thu, Sep 14, 2017 at 9:00 AM, Thomas Gleixner <[email protected]> wrote:
>> > On Thu, 14 Sep 2017, Andy Lutomirski wrote:
>> >> On Thu, Sep 14, 2017 at 12:38 AM, Thomas Gleixner <[email protected]> 
>> >> wrote:
>> >> > Hi!
>> >> >
>> >> > I've seen the following crash sporadically with commit 46c1e79fee:
>> >> >
>> >> > Have not seen that with 3882a734c19b, though I saw the PCID warnings on
>> >> > that machine.
>> >> >
>> >> > I have no idea how to reproduce so bisecting is pretty much pointless. 
>> >> > Any
>> >> > idea what to do?
>> >>
>> >> Does tools/testing/selftests/x86/sigreturn_64 reproduce it?
>> >
>> > Will try tomorrow once I figured out how to compile that stuff. Invoking a
>> > simple make in that directory fails.
>>
>> What's the error?  It works for me.
>
> gcc -m64 -o 
> /home/tglx/work/kernel/linus/linux/tools/testing/selftests/x86/sysret_ss_attrs_64
>  -O2 -g -std=gnu99 -pthread -Wall  sysret_ss_attrs.c thunks.S -lrt -ldl
> /usr/bin/ld: /tmp/cco4vSkU.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

Had the same issue in copied thunks.S helper to CRIU.
As I wanted to compile CRIU as pie also (which is the default now
in some distributions), I fixed it up by using %rip-relative addressing
and pushing segment descriptor to stack before long-jumping.
Not sure if that's the issue for the selftest as it can be just always
compiled as pic.

Anyway, here is the commit if you want to look:
https://github.com/0x7f454c46/criu/commit/cf36ea5d8408bf1e42c3bd21b9594369ea7123fb

-- 
             Dmitry

Reply via email to