mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-02 07:31:22 +00:00
some parts of libluajit is not compiled with PICness lets fix it. Also get the hotfix patch for luajit dot org Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
106 lines
3.2 KiB
Diff
106 lines
3.2 KiB
Diff
Upstream-Status: Unknown
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
libluajit is having symbols that can't be
|
|
resolved the reloc cannot accommodate an offset greater than 24 bits.
|
|
|
|
Looking at libluajit with readelf -r, you see a bunch of entries that look like:
|
|
000082f0 00003c0a R_PPC_REL24 00000000 sqrt + 0
|
|
|
|
These should not occur when the code is compiled and linked with -fPIC.
|
|
|
|
It turns out that libluajit *is* compiled and linked with -fPIC, however...
|
|
There is one assembler file called lj_vm.s which is generated during the build.
|
|
This file is missing the `@plt' qualifier from external references.
|
|
|
|
This file is generated by a program called buildvm. This in turn uses tables
|
|
in a file called buildvm_arch.h which is generated by dynasm.lua.
|
|
|
|
Index: LuaJIT-2.0.1/src/host/buildvm.c
|
|
===================================================================
|
|
--- LuaJIT-2.0.1.orig/src/host/buildvm.c 2013-02-19 12:15:00.000000000 -0800
|
|
+++ LuaJIT-2.0.1/src/host/buildvm.c 2013-05-14 20:26:05.933444512 -0700
|
|
@@ -107,12 +107,14 @@
|
|
#endif
|
|
sprintf(name, "%s%s%s", symprefix, prefix, suffix);
|
|
p = strchr(name, '@');
|
|
+#if 0
|
|
if (p) {
|
|
if (!LJ_64 && (ctx->mode == BUILD_coffasm || ctx->mode == BUILD_peobj))
|
|
name[0] = '@';
|
|
else
|
|
*p = '\0';
|
|
}
|
|
+#endif
|
|
p = (char *)malloc(strlen(name)+1); /* MSVC doesn't like strdup. */
|
|
strcpy(p, name);
|
|
return p;
|
|
Index: LuaJIT-2.0.1/src/vm_ppcspe.dasc
|
|
===================================================================
|
|
--- LuaJIT-2.0.1.orig/src/vm_ppcspe.dasc 2013-02-19 12:15:00.000000000 -0800
|
|
+++ LuaJIT-2.0.1/src/vm_ppcspe.dasc 2013-05-14 20:26:05.937444512 -0700
|
|
@@ -1390,7 +1390,7 @@
|
|
| checknum CARG2
|
|
| evmergehi CARG1, CARG2, CARG2
|
|
| checkfail ->fff_fallback
|
|
- | bl extern func
|
|
+ | bl extern func@plt
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| b ->fff_restv
|
|
|.endmacro
|
|
@@ -1405,7 +1405,7 @@
|
|
| checknum CARG1
|
|
| evmergehi CARG3, CARG4, CARG4
|
|
| checkanyfail ->fff_fallback
|
|
- | bl extern func
|
|
+ | bl extern func@plt
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| b ->fff_restv
|
|
|.endmacro
|
|
@@ -1437,7 +1437,7 @@
|
|
| checknum CARG2
|
|
| evmergehi CARG1, CARG2, CARG2
|
|
| checkfail ->fff_fallback
|
|
- | bl extern log
|
|
+ | bl extern log@plt
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| b ->fff_restv
|
|
|
|
|
@@ -1471,7 +1471,7 @@
|
|
| checknum CARG1
|
|
| checkanyfail ->fff_fallback
|
|
| efdctsi CARG3, CARG4
|
|
- | bl extern ldexp
|
|
+ | bl extern ldexp@plt
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| b ->fff_restv
|
|
|
|
|
@@ -1484,7 +1484,7 @@
|
|
| checkfail ->fff_fallback
|
|
| la CARG3, DISPATCH_GL(tmptv)(DISPATCH)
|
|
| lwz PC, FRAME_PC(BASE)
|
|
- | bl extern frexp
|
|
+ | bl extern frexp@plt
|
|
| lwz TMP1, DISPATCH_GL(tmptv)(DISPATCH)
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| efdcfsi CRET2, TMP1
|
|
@@ -1503,7 +1503,7 @@
|
|
| checkfail ->fff_fallback
|
|
| la CARG3, -8(BASE)
|
|
| lwz PC, FRAME_PC(BASE)
|
|
- | bl extern modf
|
|
+ | bl extern modf@plt
|
|
| evmergelo CRET1, CRET1, CRET2
|
|
| la RA, -8(BASE)
|
|
| evstdd CRET1, 0(BASE)
|
|
@@ -2399,7 +2399,7 @@
|
|
| checknum CARG1
|
|
| evmergehi CARG3, CARG4, CARG4
|
|
| checkanyfail ->vmeta_arith_vv
|
|
- | bl extern pow
|
|
+ | bl extern pow@plt
|
|
| evmergelo CRET2, CRET1, CRET2
|
|
| evstddx CRET2, BASE, RA
|
|
| ins_next
|