From patchwork Wed Feb 26 10:03:16 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francois Perrad X-Patchwork-Id: 324250 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (hemlock.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id 101FA2C00A6 for ; Wed, 26 Feb 2014 21:03:52 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 547BB9352B; Wed, 26 Feb 2014 10:03:47 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WB4h5IrJnv4b; Wed, 26 Feb 2014 10:03:43 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 6E177934E7; Wed, 26 Feb 2014 10:03:43 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 118E41BF97C for ; Wed, 26 Feb 2014 10:03:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 09B8A8C2D8 for ; Wed, 26 Feb 2014 10:03:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dfUQ1je-IEAO for ; Wed, 26 Feb 2014 10:03:36 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by whitealder.osuosl.org (Postfix) with ESMTPS id 9EE8B8C2AB for ; Wed, 26 Feb 2014 10:03:35 +0000 (UTC) Received: by mail-wi0-f170.google.com with SMTP id hi5so5402044wib.1 for ; Wed, 26 Feb 2014 02:03:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iTn0YWbkC4BXupCUPdk9N0RKJ/FshV8j+gCseOd87AM=; b=VBtfJmOkU1v8xtBHi8/DDdkvg1Lgj8KBfFITvc6iw7yyrT6sHm6EhvJP8OGNnfvMtH V2aXZoGw4Nsa4SjieyW2eQE01om3lcg/ABU2bkAgEVgGgv0omwmmmLY9ii7f5ZVBcI2M Qqu0bXgjiLPiQCyyk6Btt9xC2O7+fzZjA8QPfmwAy8CkfhgC26V8DG5mqCyKATxH378P sQoXdG1cOA7GpN9cNPQPowFEyZ2h04ybv9hMAhd+DsmvWYggEHqRLx+7uFiXdqCpERY3 p7VbtP2DbFZDuarbdFzvrROQKJCQq3icAIh2E1pnaiE4bSVWXNx4xT7MPBRJOCGy9Lhe selg== X-Received: by 10.194.240.7 with SMTP id vw7mr456233wjc.75.1393409014218; Wed, 26 Feb 2014 02:03:34 -0800 (PST) Received: from ubuntu.localdomain (80.7.83.79.rev.sfr.net. [79.83.7.80]) by mx.google.com with ESMTPSA id k10sm1150563wjf.11.2014.02.26.02.03.32 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 26 Feb 2014 02:03:33 -0800 (PST) From: Francois Perrad To: buildroot@busybox.net Date: Wed, 26 Feb 2014 11:03:16 +0100 Message-Id: <1393408997-32259-4-git-send-email-francois.perrad@gadz.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1393408997-32259-1-git-send-email-francois.perrad@gadz.org> References: <1393408997-32259-1-git-send-email-francois.perrad@gadz.org> Subject: [Buildroot] [lua v2 3/4] lua: handles BR2_PREFER_STATIC_LIB X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net fix compilation with Blackfin FLAT see http://autobuild.buildroot.net/results/b41/b4146bf821d59f694546f6e3a341394cc8fa43ce/ Signed-off-by: Francois Perrad --- package/Config.in | 3 ++- package/lua/5.1.5/lua-02-shared-libs-for-lua.patch | 21 +++++++++++++------- package/lua/5.2.3/lua-02-shared-libs-for-lua.patch | 21 +++++++++++++------- package/lua/lua.mk | 19 ++++++++++++------ 4 files changed, 43 insertions(+), 21 deletions(-) diff --git a/package/Config.in b/package/Config.in index fca61d6..46c4ba4 100644 --- a/package/Config.in +++ b/package/Config.in @@ -362,7 +362,8 @@ source "package/jimtcl/Config.in" source "package/lua/Config.in" source "package/luainterpreter/Config.in" source "package/luajit/Config.in" -if BR2_PACKAGE_HAS_LUA_INTERPRETER +if BR2_PACKAGE_HAS_LUA_INTERPRETER && !BR2_PREFER_STATIC_LIB +# lua modules are dynamically loaded, so not available on static builds menu "Lua libraries/modules" source "package/cgilua/Config.in" source "package/copas/Config.in" diff --git a/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch b/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch index bd40534..3f863a5 100644 --- a/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch +++ b/package/lua/5.1.5/lua-02-shared-libs-for-lua.patch @@ -1,6 +1,7 @@ Add the compilation of a shared library. Compile the lua binary with the shared library. And install the shared library. +The variable BUILDMODE allows to switch between static and dynamic mode. Signed-off-by: Francois Perrad @@ -20,8 +21,8 @@ Index: b/Makefile install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) -+ cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) -+ ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so ++ test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : ++ test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) @@ -37,18 +38,21 @@ Index: b/src/Makefile CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ lundump.o lvm.o lzio.o -@@ -36,8 +37,9 @@ +@@ -36,8 +37,13 @@ LUAC_O= luac.o print.o ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) --ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ifneq (dynamic,$(BUILDMODE)) + ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++else +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) ++endif ALL_A= $(LUA_A) +ALL_SO= $(LUA_SO) default: $(PLAT) -@@ -47,12 +49,18 @@ +@@ -47,12 +53,23 @@ a: $(ALL_A) @@ -58,14 +62,17 @@ Index: b/src/Makefile $(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files $(RANLIB) $@ --$(LUA_T): $(LUA_O) $(LUA_A) -- $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? + ln -fs $@.$(PKG_VERSION) $@ + ++ifneq (dynamic,$(BUILDMODE)) + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ++else +$(LUA_T): $(LUA_O) $(LUA_SO) + $(CC) -o $@ -L. $(MYLDFLAGS) $(LUA_O) -llua $(LIBS) ++endif $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) diff --git a/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch b/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch index cd8a5bf..3cf3b24 100644 --- a/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch +++ b/package/lua/5.2.3/lua-02-shared-libs-for-lua.patch @@ -1,6 +1,7 @@ Add the compilation of a shared library. Compile the lua binary with the shared library. And install the shared library. +The variable BUILDMODE allows to switch between static and dynamic mode. Signed-off-by: Francois Perrad @@ -20,8 +21,8 @@ Index: b/Makefile install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) -+ cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) -+ ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so ++ test -f src/$(TO_SOLIB) && cd src && $(INSTALL_EXEC) $(TO_SOLIB) $(INSTALL_LIB) || : ++ test -f src/$(TO_SOLIB) && ln -sf $(TO_SOLIB) $(INSTALL_LIB)/liblua.so || : cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) @@ -37,18 +38,21 @@ Index: b/src/Makefile CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ ltm.o lundump.o lvm.o lzio.o -@@ -43,8 +44,9 @@ +@@ -43,8 +44,13 @@ LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) --ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ifneq (dynamic,$(BUILDMODE)) + ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++else +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) ++endif ALL_A= $(LUA_A) +ALL_SO= $(LUA_SO) # Targets start here. default: $(PLAT) -@@ -55,12 +57,18 @@ +@@ -55,12 +61,23 @@ a: $(ALL_A) @@ -58,14 +62,17 @@ Index: b/src/Makefile $(AR) $@ $(BASE_O) $(RANLIB) $@ --$(LUA_T): $(LUA_O) $(LUA_A) -- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -o $@.$(PKG_VERSION) -shared -Wl,-soname="$@.$(PKG_VERSION)" $? + ln -fs $@.$(PKG_VERSION) $@ + ++ifneq (dynamic,$(BUILDMODE)) + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ++else +$(LUA_T): $(LUA_O) $(LUA_SO) + $(CC) -o $@ -L. $(LDFLAGS) $(LUA_O) -llua $(LIBS) ++endif $(LUAC_T): $(LUAC_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) diff --git a/package/lua/lua.mk b/package/lua/lua.mk index c016d7e..bf68e65 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -14,8 +14,7 @@ LUA_INSTALL_STAGING = YES LUA_LICENSE = MIT LUA_LICENSE_FILES = COPYRIGHT -LUA_CFLAGS = -Wall -fPIC -LUA_MYLIBS += -ldl +LUA_CFLAGS = -Wall -fPIC -DLUA_USE_POSIX ifeq ($(BR2_PACKAGE_LUA_5_2),y) LUA_CFLAGS += -DLUA_COMPAT_ALL @@ -24,17 +23,23 @@ LUA_CFLAGS += -D_FILE_OFFSET_BITS=32 endif endif +ifeq ($(BR2_PREFER_STATIC_LIB),y) + LUA_BUILDMODE = static +else + LUA_BUILDMODE = dynamic + LUA_CFLAGS += -DLUA_USE_DLOPEN + LUA_MYLIBS += -ldl +endif + ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y) LUA_DEPENDENCIES = readline ncurses LUA_MYLIBS += -lreadline -lhistory -lncurses - LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE + LUA_CFLAGS += -DLUA_USE_READLINE else ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_LINENOISE),y) LUA_DEPENDENCIES = linenoise LUA_MYLIBS += -llinenoise - LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_LINENOISE -else - LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN + LUA_CFLAGS += -DLUA_USE_LINENOISE endif endif @@ -53,6 +58,7 @@ define LUA_BUILD_CMDS CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \ CFLAGS="$(TARGET_CFLAGS) $(LUA_CFLAGS)" \ MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \ + BUILDMODE=$(LUA_BUILDMODE) \ PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all endef @@ -61,6 +67,7 @@ define HOST_LUA_BUILD_CMDS CFLAGS="$(HOST_LUA_CFLAGS)" \ MYLDFLAGS="$(HOST_LDFLAGS)" \ MYLIBS="$(HOST_LUA_MYLIBS)" \ + BUILDMODE=static \ PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all endef