mailing list of musl libc
 help / color / mirror / code / Atom feed
* luajit musl ppc32 bss-plt
       [not found] <120872320.5764335.1551244676399.ref@mail.yahoo.com>
@ 2019-02-27  5:17 ` Doug Crawford
  2019-02-27 13:10   ` Rich Felker
  0 siblings, 1 reply; 2+ messages in thread
From: Doug Crawford @ 2019-02-27  5:17 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 1757 bytes --]

Just wondering if anyone else was successful in running luajit with musl on ppc32.
I have pretty much everything else working on our ppc32 target with musl except luajit which segfaults very early in __register_frame_info@got.plt
During the luajit build I noticed this output:DYNLINK   libluajit.so../powerpc-buildroot-linux-musl/bin/ld: bss-plt forced due to lj_vm.o
I am guessing that something in luajit-2.0.5/src/lj_vm.s is forcing the linker to use the older bss-plt. But, musl only supports secure-plt so this probably is not going to work.
Here is the gdb backtrace when I run luajit:
Core was generated by `luajit'.Program terminated with signal SIGSEGV, Segmentation fault.#0  0xb793b168 in ?? ()(gdb) set solib-search-path target/usr/lib/Reading symbols from /home/dev/atc/buildroot/output/eb8248/target/usr/lib/libluajit-5.1.so.2.1.0...done.(gdb) bt#0  0xb793b168 in __register_frame_info@got.plt ()   from /home/dev/atc/buildroot/output/eb8248/target/usr/lib/libluajit-5.1.so.2.1.0#1  0xb78c1628 in frame_dummy ()   from /home/dev/atc/buildroot/output/eb8248/target/usr/lib/libluajit-5.1.so.2.1.0#2  0xb78c119c in _init () from /home/dev/atc/buildroot/output/eb8248/target/usr/lib/libluajit-5.1.so.2.1.0#3  0xb79a9184 in do_init_fini ()   from /opt/toolchain/ctng-7.4.0-powerpc-603e-linux-musl/powerpc-603e-linux-musl/sysroot/lib/ld-musl-powerpc.so.1#4  0xb795bf50 in libc_start_main_stage2 ()   from /opt/toolchain/ctng-7.4.0-powerpc-603e-linux-musl/powerpc-603e-linux-musl/sysroot/lib/ld-musl-powerpc.so.1#5  0xb795bfc0 in __libc_start_main ()   from /opt/toolchain/ctng-7.4.0-powerpc-603e-linux-musl/powerpc-603e-linux-musl/sysroot/lib/ld-musl-powerpc.so.1#6  0x10000eec in _start_c ()#7  0x10000eb8 in _start ()

[-- Attachment #2: Type: text/html, Size: 2594 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: luajit musl ppc32 bss-plt
  2019-02-27  5:17 ` luajit musl ppc32 bss-plt Doug Crawford
@ 2019-02-27 13:10   ` Rich Felker
  0 siblings, 0 replies; 2+ messages in thread
From: Rich Felker @ 2019-02-27 13:10 UTC (permalink / raw)
  To: musl

On Wed, Feb 27, 2019 at 05:17:56AM +0000, Doug Crawford wrote:
> Just wondering if anyone else was successful in running luajit with musl on ppc32.
> I have pretty much everything else working on our ppc32 target with
> musl except luajit which segfaults very early in
> __register_frame_info@got.plt
> During the luajit build I noticed this output:DYNLINK 
>  libluajit..so../powerpc-buildroot-linux-musl/bin/ld: bss-plt forced
> due to lj_vm.o
> I am guessing that something in luajit-2.0.5/src/lj_vm.s is forcing
> the linker to use the older bss-plt. But, musl only supports
> secure-plt so this probably is not going to work.

That's correct. The difference in ABI is that the secure-plt form
requires a particular GOT register to be loaded as part of the
contract for calling a PLT entry. The function calls in the asm (and
in jit-generated code, if it calls to C functions) need to be modified
to either follow the secureplt ABI, or better yet, not to use the PLT
at all, and instead just load the function address from the GOT and
perform an indirect call/jmp to it (this is considerably more
efficient than using a PLT anyway).

Rich


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-02-27 13:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <120872320.5764335.1551244676399.ref@mail.yahoo.com>
2019-02-27  5:17 ` luajit musl ppc32 bss-plt Doug Crawford
2019-02-27 13:10   ` Rich Felker

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).