aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2010-11-06 00:36:53 +0000
committerKhem Raj <raj.khem@gmail.com>2010-11-06 08:52:19 -0700
commit5142b50dab9731fb0c508f8e24666865e2b84e4c (patch)
treefd2572ac6c30de59ce66748dafe42f19836a0112
parent88d163bf331bb7543c01e58207167a532638801f (diff)
downloadopenembedded-5142b50dab9731fb0c508f8e24666865e2b84e4c.zip
openembedded-5142b50dab9731fb0c508f8e24666865e2b84e4c.tar.gz
openembedded-5142b50dab9731fb0c508f8e24666865e2b84e4c.tar.bz2
vlc_1.1.4.1: Why is `lua5.1-native` not added to `DEPENDS` automatically?
Paul Menzel <paulepanter@users.sourceforge.net> [2010-11-06 10:31:25]: > Or is is inevitable to add `lua5.1-native` to `DEPENDS`? You have to. As an example I've attached for you my recipe for lua-lanes, which uses luac also. -- ynezz >From 865463173cbb5d70282ea69c2c84084e435578e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz> Date: Sun, 10 Oct 2010 10:24:39 +0200 Subject: [PATCH] lua-lanes: add new recipe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch31
-rw-r--r--recipes/lua/lua-lanes-2.0.6/makefile.patch207
-rw-r--r--recipes/lua/lua-lanes-2.0.6/uclibc.patch13
-rw-r--r--recipes/lua/lua-lanes_2.0.6.bb34
4 files changed, 285 insertions, 0 deletions
diff --git a/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch b/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch
new file mode 100644
index 0000000..18fb36b
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/0001-fix-LanesTimer-inifinite-thread-GC.patch
@@ -0,0 +1,31 @@
+From 69583ec6fc6cd18a0248d1233193bb2407dbda04 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
+Date: Sun, 31 Oct 2010 23:02:49 +0100
+Subject: [PATCH] fix LanesTimer inifinite thread GC
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+threading.c 394: pthread_cond_destroy(ref) failed, 16 EBUSY
+
+Signed-off-by: Petr Štetiar <ynezz@true.cz>
+---
+ src/lanes.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/lanes.c b/src/lanes.c
+index c02c540..54cfa7a 100644
+--- a/src/lanes.c
++++ b/src/lanes.c
+@@ -1559,7 +1559,7 @@ LUAG_FUNC( thread_gc ) {
+
+ // We can read 's->status' without locks, but not wait for it
+ //
+- if (s->status < DONE) {
++ if (s->status < DONE && strcmp(s->threadName, "LanesTimer")) {
+ //
+ selfdestruct_add(s);
+ assert( s->selfdestruct_next );
+--
+1.7.0.4
+
diff --git a/recipes/lua/lua-lanes-2.0.6/makefile.patch b/recipes/lua/lua-lanes-2.0.6/makefile.patch
new file mode 100644
index 0000000..6807010
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/makefile.patch
@@ -0,0 +1,207 @@
+Index: lanes-2.0.6/src/Makefile
+===================================================================
+--- lanes-2.0.6.orig/src/Makefile 2009-01-22 07:32:18.000000000 +0100
++++ lanes-2.0.6/src/Makefile 2010-10-17 22:00:16.000000000 +0200
+@@ -11,123 +11,21 @@
+
+ OBJ=$(SRC:.c=.o)
+
+-# LuaRocks gives 'LIBFLAG' from the outside
+-#
+-LIBFLAG=-shared
+-
+-OPT_FLAGS=-O2
+- # -O0 -g
+-
+ LUA=lua
+ LUAC=luac
+
+-_SO=.so
+-ifeq "$(findstring MINGW32,$(shell uname -s))" "MINGW32"
+- _SO=.dll
+-endif
+-
+-ifeq "$(LUAROCKS)" ""
+- ifeq "$(findstring MINGW32,$(shell uname -s))" "MINGW32"
+- # MinGW MSYS on Windows
+- #
+- # - 'lua' and 'luac' expected to be on the path
+- # - %LUA_DEV% must lead to include files and libraries (Lua for Windows >= 5.1.3.14)
+- # - %MSCVR80% must be the full pathname of 'msvcr80.dll'
+- #
+- ifeq "$(LUA_DEV)" ""
+- $(error LUA_DEV not defined - try i.e. 'make LUA_DEV=/c/Program\ Files/Lua/5.1')
+- endif
+- ifeq "$(MSVCR80)" ""
+- MSVCR80:=$(LUA_DEV)/install/support/Microsoft.VC80.CRT.SP1/MSVCR80.DLL
+- ifneq '$(shell test -f "$(MSVCR80)" && echo found)' 'found'
+- $(error MSVCR80 not defined - set it to full path of msvcr80.dll')
+- endif
+- $(warning MSVCR80=$(MSVCR80))
+- endif
+- LUA_FLAGS:=-I "$(LUA_DEV)/include"
+- LUA_LIBS:="$(LUA_DEV)/lua5.1.dll" -lgcc -lmsvcr80 "$(MSVCR80)"
+- LIBFLAG=-shared -Wl,-Map,lanes.map
+- else
+- # Autodetect LUA_FLAGS and/or LUA_LIBS
+- #
+- ifneq "$(shell which pkg-config)" ""
+- ifeq "$(shell pkg-config --exists lua5.1 && echo 1)" "1"
+- LUA_FLAGS:=$(shell pkg-config --cflags lua5.1)
+- LUA_LIBS:=$(shell pkg-config --libs lua5.1)
+- #
+- # Ubuntu: -I/usr/include/lua5.1
+- # -llua5.1
+- else
+- ifeq "$(shell pkg-config --exists lua && echo 1)" "1"
+- LUA_FLAGS:=$(shell pkg-config --cflags lua)
+- LUA_LIBS:=$(shell pkg-config --libs lua)
+- #
+- # OS X fink with pkg-config:
+- # -I/sw/include
+- # -L/sw/lib -llua -lm
+- else
+- $(warning *** 'pkg-config' existed but did not know of 'lua[5.1]' - Good luck!)
+- LUA_FLAGS:=
+- LUA_LIBS:=-llua
+- endif
+- endif
+- else
+- # No 'pkg-config'; try defaults
+- #
+- ifeq "$(shell uname -s)" "Darwin"
+- $(warning *** Assuming 'fink' at default path)
+- LUA_FLAGS:=-I/sw/include
+- LUA_LIBS:=-L/sw/lib -llua
+- else
+- $(warning *** Assuming an arbitrary Lua installation; try installing 'pkg-config')
+- LUA_FLAGS:=
+- LUA_LIBS:=-llua
+- endif
+- endif
+- endif
+-
+- ifeq "$(shell uname -s)" "Darwin"
+- # Some machines need 'MACOSX_DEPLOYMENT_TARGET=10.3' for using '-undefined dynamic_lookup'
+- # (at least PowerPC running 10.4.11); does not harm the others
+- #
+- CC = MACOSX_DEPLOYMENT_TARGET=10.3 gcc
+- LIBFLAG = -bundle -undefined dynamic_lookup
+- endif
+-
+- CFLAGS=-Wall -Werror $(OPT_FLAGS) $(LUA_FLAGS)
+- LIBS=$(LUA_LIBS)
+-endif
+-
+ #---
+-# PThread platform specifics
+-#
+-ifeq "$(shell uname -s)" "Linux"
+- # -D_GNU_SOURCE needed for 'pthread_mutexattr_settype'
+- CFLAGS += -D_GNU_SOURCE -fPIC
+-
+- # Use of -DUSE_PTHREAD_TIMEDJOIN is possible, but not recommended (slower & keeps threads
+- # unreleased somewhat longer)
+- #CFLAGS += -DUSE_PTHREAD_TIMEDJOIN
+-
+- LIBS += -lpthread
+-endif
+-
+-ifeq "$(shell uname -s)" "BSD"
+- LIBS += -lpthread
+-endif
+-
+-#---
+-all: lua51-$(MODULE)$(_SO)
++all: lua51-$(MODULE).so
+
+ %.o: %.c *.h Makefile
+
+ # Note: Don't put $(LUA_LIBS) ahead of $^; MSYS will not like that (I think)
+ #
+-lua51-$(MODULE)$(_SO): $(OBJ)
+- $(CC) $(LIBFLAG) $(LIBS) $^ $(LUA_LIBS) -o $@
++lua51-$(MODULE).so: $(OBJ)
++ $(CC) -shared -fPIC -lpthread -D_GNU_SOURCE `pkg-config --cflags --libs lua5.1` $(MYFLAGS) $^ -o $@
+
+ clean:
+- -rm -rf lua51-$(MODULE)$(_SO) *.lch *.o *.tmp *.map
++ -rm -rf lua51-$(MODULE).so *.lch *.o *.tmp *.map
+
+ lanes.o: keeper.lch
+
+@@ -139,38 +37,5 @@
+ $(LUA) ../tools/bin2c.lua $@.tmp -o $@
+ -rm $@.tmp
+
+-#---
+-# NSLU2 "slug" Linux ARM
+-#
+-nslu2:
+- $(MAKE) all CFLAGS="$(CFLAGS) -I/opt/include -L/opt/lib -D_GNU_SOURCE -lpthread"
+-
+-#---
+-# Cross compiling to Win32 (MinGW on OS X Intel)
+-#
+-# Point WIN32_LUA51 to an extraction of LuaBinaries dll8 and dev packages.
+-#
+-# Note: Only works on platforms with same endianess (i.e. not from PowerPC OS X,
+-# since 'luac' uses the host endianess)
+-#
+-# EXPERIMENTAL; NOT TESTED OF LATE.
+-#
+-MINGW_GCC=mingw32-gcc
+- # i686-pc-mingw32-gcc
+-
+-win32: $(WIN32_LUA51)/include/lua.h
+- $(MAKE) build CC=$(MINGW_GCC) \
+- LUA_FLAGS=-I$(WIN32_LUA51)/include \
+- LUA_LIBS="-L$(WIN32_LUA51) -llua51" \
+- _SO=.dll \
+- SO_FLAGS=-shared \
+- LUA=lua51 \
+- LUAC=luac51
+-
+-$(WIN32_LUA51)/include/lua.h:
+- @echo "Usage: make win32 WIN32_LUA51=<path of extracted LuaBinaries dll8 and dev packages>"
+- @echo " [MINGW_GCC=...mingw32-gcc]"
+- @false
+-
+-.PROXY: all clean nslu2 win32
++.PROXY: all clean
+
+Index: lanes-2.0.6/Makefile
+===================================================================
+--- lanes-2.0.6.orig/Makefile 2010-07-27 11:39:00.000000000 +0200
++++ lanes-2.0.6/Makefile 2010-10-17 22:14:20.000000000 +0200
+@@ -32,8 +32,10 @@
+ else
+ # Autodetect LUA & LUAC
+ #
+- LUA=$(word 1,$(shell which lua5.1) $(shell which lua51) lua)
+- LUAC=$(word 1,$(shell which luac5.1) $(shell which luac51) luac)
++ #LUA=$(word 1,$(shell which lua5.1) $(shell which lua51) lua)
++ #LUAC=$(word 1,$(shell which luac5.1) $(shell which luac51) luac)
++ LUA=lua
++ LUAC=luac
+ endif
+
+ _PREFIX=LUA_CPATH=./src/?$(_SO) LUA_PATH="src/?.lua;./tests/?.lua"
+@@ -42,7 +44,7 @@
+ all: $(_TARGET_SO)
+
+ $(_TARGET_SO): src/*.lua src/*.c src/*.h
+- cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC)
++ cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC) MYFLAGS='$(MYFLAGS)'
+
+ clean:
+ cd src && $(MAKE) clean
+@@ -183,7 +185,7 @@
+ #
+ install: $(_TARGET_SO) src/lanes.lua
+ mkdir -p $(LUA_LIBDIR) $(LUA_SHAREDIR)
+- install -m 644 $(_TARGET_SO) $(LUA_LIBDIR)
++ install $(_TARGET_SO) $(LUA_LIBDIR)
+ cp -p src/lanes.lua $(LUA_SHAREDIR)
+
+
diff --git a/recipes/lua/lua-lanes-2.0.6/uclibc.patch b/recipes/lua/lua-lanes-2.0.6/uclibc.patch
new file mode 100644
index 0000000..b3d1f83
--- /dev/null
+++ b/recipes/lua/lua-lanes-2.0.6/uclibc.patch
@@ -0,0 +1,13 @@
+Index: lanes-2.0.6/src/threading.h
+===================================================================
+--- lanes-2.0.6.orig/src/threading.h 2010-10-10 09:35:20.000000000 +0200
++++ lanes-2.0.6/src/threading.h 2010-10-10 09:35:32.000000000 +0200
+@@ -112,7 +112,7 @@
+ #ifdef PLATFORM_OSX
+ #define YIELD() pthread_yield_np()
+ #else
+- #define YIELD() pthread_yield()
++ #define YIELD() sched_yield()
+ #endif
+ #endif
+
diff --git a/recipes/lua/lua-lanes_2.0.6.bb b/recipes/lua/lua-lanes_2.0.6.bb
new file mode 100644
index 0000000..49ceb9c
--- /dev/null
+++ b/recipes/lua/lua-lanes_2.0.6.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Lua Lanes is a Lua extension library providing the possibility to run multiple Lua states in parallel."
+LICENSE = "MIT"
+HOMEPAGE = "http://kotisivu.dnainternet.net/askok/bin/lanes/index.html"
+
+DEPENDS += "lua5.1-native"
+RDEPENDS_${PN} += "lua5.1"
+
+PR = "r0"
+S = "${WORKDIR}/lanes-${PV}"
+
+SRC_URI = "http://luaforge.net/frs/download.php/4652/lanes-2.0.6.tgz \
+ file://makefile.patch \
+ file://0001-fix-LanesTimer-inifinite-thread-GC.patch \
+ "
+
+UCLIBC_PATCHES = "file://uclibc.patch"
+SRC_URI_append_linux-uclibc = "${UCLIBC_PATCHES}"
+SRC_URI_append_linux-uclibceabi = "${UCLIBC_PATCHES}"
+
+LUA_LIB_DIR = "${libdir}/lua/5.1"
+LUA_SHARE_DIR = "${datadir}/lua/5.1"
+
+PACKAGES = "${PN} ${PN}-dbg"
+FILES_${PN} = "${LUA_LIB_DIR}/lua51-lanes.so ${LUA_SHARE_DIR}/lanes.lua"
+FILES_${PN}-dbg = "${LUA_LIB_DIR}/.debug/lua51-lanes.so"
+
+EXTRA_OEMAKE = "MYFLAGS='${CFLAGS} ${LDFLAGS}'"
+
+do_install() {
+ oe_runmake install DESTDIR='${D}/usr'
+}
+
+SRC_URI[md5sum] = "1716bdf138fcc65b7069aaad864da677"
+SRC_URI[sha256sum] = "7b07fa1c21749981ec0addcf8e9e85acfca91efe8d3f64982a6ac0bc6a615e70"