summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/luajit
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2014-10-10 03:20:04 +0200
committerTudor Florea <tudor.florea@enea.com>2014-10-10 03:20:04 +0200
commit1b8dfe266937a37a4c642f96ceb2347bf4c00a17 (patch)
tree0c6aab146bb3c82efd9c7846a9a4e70dcb0ec84f /meta-oe/recipes-devtools/luajit
downloadmeta-openembedded-daisy-140929.tar.gz
initial commit for Enea Linux 4.0-140929daisy-140929
Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta-oe/recipes-devtools/luajit')
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch33
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit/ppc-fixplt.patch105
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit_2.0.2.bb54
3 files changed, 192 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch b/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
new file mode 100644
index 0000000000..f123b3f55a
--- /dev/null
+++ b/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
@@ -0,0 +1,33 @@
1From 528009f5ca0685c95ef27f6c8957160499c0576a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 10 May 2013 10:42:45 -0700
4Subject: [PATCH] Do not strip automatically, this leaves the stripping
5 busines to OE
6
7Upstream-Status: Inappropriate [OE-Specific]
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 src/Makefile | 2 --
12 1 file changed, 2 deletions(-)
13
14diff --git a/src/Makefile b/src/Makefile
15index 278324a..5ecd6d5 100644
16--- a/src/Makefile
17+++ b/src/Makefile
18@@ -665,12 +665,10 @@ $(LUAJIT_A): $(LJVMCORE_O)
19 $(LUAJIT_SO): $(LJVMCORE_O)
20 $(E) "DYNLINK $@"
21 $(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS)
22- $(Q)$(TARGET_STRIP) $@
23
24 $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP)
25 $(E) "LINK $@"
26 $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS)
27- $(Q)$(TARGET_STRIP) $@
28 $(E) "OK Successfully built LuaJIT"
29
30 ##############################################################################
31--
321.7.9.5
33
diff --git a/meta-oe/recipes-devtools/luajit/luajit/ppc-fixplt.patch b/meta-oe/recipes-devtools/luajit/luajit/ppc-fixplt.patch
new file mode 100644
index 0000000000..b9f17f4e31
--- /dev/null
+++ b/meta-oe/recipes-devtools/luajit/luajit/ppc-fixplt.patch
@@ -0,0 +1,105 @@
1Upstream-Status: Unknown
2
3Signed-off-by: Khem Raj <raj.khem@gmail.com>
4
5libluajit is having symbols that can't be
6resolved the reloc cannot accommodate an offset greater than 24 bits.
7
8Looking at libluajit with readelf -r, you see a bunch of entries that look like:
9 000082f0 00003c0a R_PPC_REL24 00000000 sqrt + 0
10
11These should not occur when the code is compiled and linked with -fPIC.
12
13It turns out that libluajit *is* compiled and linked with -fPIC, however...
14There is one assembler file called lj_vm.s which is generated during the build.
15This file is missing the `@plt' qualifier from external references.
16
17This file is generated by a program called buildvm. This in turn uses tables
18in a file called buildvm_arch.h which is generated by dynasm.lua.
19
20Index: LuaJIT-2.0.1/src/host/buildvm.c
21===================================================================
22--- LuaJIT-2.0.1.orig/src/host/buildvm.c 2013-02-19 12:15:00.000000000 -0800
23+++ LuaJIT-2.0.1/src/host/buildvm.c 2013-05-14 20:26:05.933444512 -0700
24@@ -107,12 +107,14 @@
25 #endif
26 sprintf(name, "%s%s%s", symprefix, prefix, suffix);
27 p = strchr(name, '@');
28+#if 0
29 if (p) {
30 if (!LJ_64 && (ctx->mode == BUILD_coffasm || ctx->mode == BUILD_peobj))
31 name[0] = '@';
32 else
33 *p = '\0';
34 }
35+#endif
36 p = (char *)malloc(strlen(name)+1); /* MSVC doesn't like strdup. */
37 strcpy(p, name);
38 return p;
39Index: LuaJIT-2.0.1/src/vm_ppcspe.dasc
40===================================================================
41--- LuaJIT-2.0.1.orig/src/vm_ppcspe.dasc 2013-02-19 12:15:00.000000000 -0800
42+++ LuaJIT-2.0.1/src/vm_ppcspe.dasc 2013-05-14 20:26:05.937444512 -0700
43@@ -1390,7 +1390,7 @@
44 | checknum CARG2
45 | evmergehi CARG1, CARG2, CARG2
46 | checkfail ->fff_fallback
47- | bl extern func
48+ | bl extern func@plt
49 | evmergelo CRET1, CRET1, CRET2
50 | b ->fff_restv
51 |.endmacro
52@@ -1405,7 +1405,7 @@
53 | checknum CARG1
54 | evmergehi CARG3, CARG4, CARG4
55 | checkanyfail ->fff_fallback
56- | bl extern func
57+ | bl extern func@plt
58 | evmergelo CRET1, CRET1, CRET2
59 | b ->fff_restv
60 |.endmacro
61@@ -1437,7 +1437,7 @@
62 | checknum CARG2
63 | evmergehi CARG1, CARG2, CARG2
64 | checkfail ->fff_fallback
65- | bl extern log
66+ | bl extern log@plt
67 | evmergelo CRET1, CRET1, CRET2
68 | b ->fff_restv
69 |
70@@ -1471,7 +1471,7 @@
71 | checknum CARG1
72 | checkanyfail ->fff_fallback
73 | efdctsi CARG3, CARG4
74- | bl extern ldexp
75+ | bl extern ldexp@plt
76 | evmergelo CRET1, CRET1, CRET2
77 | b ->fff_restv
78 |
79@@ -1484,7 +1484,7 @@
80 | checkfail ->fff_fallback
81 | la CARG3, DISPATCH_GL(tmptv)(DISPATCH)
82 | lwz PC, FRAME_PC(BASE)
83- | bl extern frexp
84+ | bl extern frexp@plt
85 | lwz TMP1, DISPATCH_GL(tmptv)(DISPATCH)
86 | evmergelo CRET1, CRET1, CRET2
87 | efdcfsi CRET2, TMP1
88@@ -1503,7 +1503,7 @@
89 | checkfail ->fff_fallback
90 | la CARG3, -8(BASE)
91 | lwz PC, FRAME_PC(BASE)
92- | bl extern modf
93+ | bl extern modf@plt
94 | evmergelo CRET1, CRET1, CRET2
95 | la RA, -8(BASE)
96 | evstdd CRET1, 0(BASE)
97@@ -2399,7 +2399,7 @@
98 | checknum CARG1
99 | evmergehi CARG3, CARG4, CARG4
100 | checkanyfail ->vmeta_arith_vv
101- | bl extern pow
102+ | bl extern pow@plt
103 | evmergelo CRET2, CRET1, CRET2
104 | evstddx CRET2, BASE, RA
105 | ins_next
diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.2.bb b/meta-oe/recipes-devtools/luajit/luajit_2.0.2.bb
new file mode 100644
index 0000000000..b719b48e09
--- /dev/null
+++ b/meta-oe/recipes-devtools/luajit/luajit_2.0.2.bb
@@ -0,0 +1,54 @@
1SUMMARY = "Just-In-Time Compiler for Lua"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=1793ef52a5d577794cd886a501a7f861"
4HOMEPAGE = "http://luajit.org"
5
6DEPENDS += "lua5.1"
7SRC_URI = "http://luajit.org/download/LuaJIT-${PV}.tar.gz;name=tarball \
8 file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
9 "
10SRC_URI[tarball.md5sum] = "112dfb82548b03377fbefbba2e0e3a5b"
11SRC_URI[tarball.sha256sum] = "c05202974a5890e777b181908ac237625b499aece026654d7cc33607e3f46c38"
12
13SRC_URI_append_fslmachine = " file://ppc-fixplt.patch "
14
15S = "${WORKDIR}/LuaJIT-${PV}"
16
17inherit pkgconfig binconfig
18
19do_configure_prepend() {
20 sed -i -e s:/usr/local:${prefix}:g ${S}/Makefile
21 sed -i -e s:/lib$:${base_libdir}:g ${S}/Makefile
22}
23
24EXTRA_OEMAKE = 'CROSS=${HOST_PREFIX} TARGET_CFLAGS="${TOOLCHAIN_OPTIONS}" TARGET_LDFLAGS="${TOOLCHAIN_OPTIONS}" TARGET_SHLDFLAGS="${TOOLCHAIN_OPTIONS}"'
25EXTRA_OEMAKE_append_powerpc = ' HOST_CC="${BUILD_CC} -m32"'
26EXTRA_OEMAKE_append_x86-64 = ' HOST_CC="${BUILD_CC}"'
27EXTRA_OEMAKE_append_i586 = ' HOST_CC="${BUILD_CC} -m32"'
28EXTRA_OEMAKE_append_powerpc64 = ' HOST_CC="${BUILD_CC}"'
29EXTRA_OEMAKE_append_arm = ' HOST_CC="${BUILD_CC} -m32"'
30EXTRA_OEMAKE_append_mips64 = ' HOST_CC="${BUILD_CC} -m32"'
31
32do_compile () {
33 oe_runmake
34}
35
36do_install () {
37 oe_runmake 'DESTDIR=${D}' install
38 rmdir ${D}${datadir}/lua/5.1 \
39 ${D}${datadir}/lua \
40 ${D}${libdir}/lua/5.1 \
41 ${D}${libdir}/lua
42}
43
44PACKAGES += 'luajit-common'
45
46FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
47 ${libdir}/libluajit-5.1.so.${PV} \
48"
49FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
50 ${libdir}/libluajit-5.1.so \
51 ${libdir}/pkgconfig/luajit.pc \
52"
53FILES_luajit-common = "${datadir}/${BPN}-${PV}"
54