Re: Linker error "relocati,on truncated to fit"
Hi,
(Could I ask to get a CC of answers via mail? I am not subscribed to
this list.)
Thank you for your response!
Bastian Blank wrote:
> On Tue, Jun 13, 2017 at 09:38:44AM +0200, Ole Streicher wrote:
>> I am slowly re-starting the packaging of IRAF (still not officially
>> announced yet). When porting to s390x, I however run into a strange
>> error: IRAF needs a small piece of assembler code (kind-of longjump for
>> Fortan), which John Long gratefully ported to s390x two years ago:
>
> Is IRAF the stuff from http://iraf.noao.edu/ and last released five
> years ago?
Yes. I could convince upstream to put it into a git repository,
<https://github.com/iraf/iraf-v216> and now I am creating pull requests
to get it more Debian friendly: portability, build from the tarball,
removal of oddly licensed code. To port zsvjmp, I created a small
project three years ago: <https://github.com/olebole/zsvjmp>.
>> zsvjmp_: [...]
>> j __sigsetjmp@PLT
>
> Looks like it is, but why do you want this jump via the PLT, while all
> other variants do not?
>
> | ./unix/as.linux/zsvjmp.s: jmp __sigsetjmp # let sigsetjmp do the rest
> | ./unix/as.linux64/zsvjmp_c:asm(" jmp __sigsetjmp # let sigsetjmp do the rest");
That is way outdated. At least for x86_64, I need the @PLT now to avoid
linker errors. From my (very limited) understanding, @PLT would be
correct, since sigsetjmp resides in a shared lib (libc).
>> Could anyone help me here what is wrong with that assembler?
>
> To make this work, you need to build with -fPIC.
This didn't help, I still get the same error message. Since zsvjmp.o
will be statically linked (yet), I also don't see why -fPIC would be needed.
>From browsing the S390 mnemonic list, I tried to replace the "j" opcode
with a "jg", and then the compilation succeeds. However, this is a very
wild guess, since the menmonic list just in both cases said it were a
"jump". Can you (or someone) confirm that "jg" is correct here? The code
still does not work, and I want to be sure that "jg" is not causing this.
Best regards
Ole
Reply to: