buildroot/package/slang/0003-Disable-module-support-in-the-statically-linked-version-of-slsh.patch
Vicente Olivert Riera 41d6f177d2 slang: add adapted upstream patches for static builds
These are adapted upstream patches to make them apply on the version we
are using in Buildroot, and also taking into account that we already
have another patch which modifies the same file, so these patches would
not apply as they are. Unnecessary parts of the upstream patches have
been ingnored, such as changelogs or version changes.
The purpose of these patches are allowing the static library and a
static version of slsh be built without building any dynamic bit.
These patches will be included in the next release, so we can remove
them when we do the next version bump.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Markos Chandras <Markos.Chandras@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-09 20:19:49 +01:00

115 lines
5.5 KiB
Diff

Disable module support in the statically linked version of slsh
Adapt an upstream patch to make it apply on 2.3.0. Unnecessary changes
have been ignored.
Repository: git://git.jedsoft.org/git/slang.git
Commit ID: 997c85f5cdb19802a5c97afe44e366a60f94a069
Author: John E. Davis <jed@jedsoft.org>
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
diff -rup a/slsh/Makefile.in b/slsh/Makefile.in
--- a/slsh/Makefile.in 2014-12-09 10:04:44.084899944 +0000
+++ b/slsh/Makefile.in 2014-12-09 10:16:11.545897275 +0000
@@ -1,9 +1,11 @@
#-*-sh-*-
CC = @CC@
CFLAGS = @CFLAGS@ @SLANG_DLL_CFLAGS@
-LDFLAGS = @LDFLAGS@ @DYNAMIC_LINK_FLAGS@
+LDFLAGS = @LDFLAGS@
+DLINK_FLAGS = @DYNAMIC_LINK_FLAGS@
CONFIG_DIR = @CONFIG_DIR@
OBJDIR = $(ARCH)objs
+SOBJDIR = static_objs
SRCDIR = $(CONFIG_DIR)/slsh
#---------------------------------------------------------------------------
# Installation location of the slang library
@@ -19,7 +21,8 @@ SLANG_SRCINC = -I@SRCDIR@
SLANG_ELFLIB = -L@ELFDIR@# for dynamically linked
SLANG_OBJLIB = -L@OBJDIR@# for statically linked
#---------------------------------------------------------------------------
-OTHER_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@
+DYNAMIC_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@
+STATIC_LIBS = @TERMCAP@ @LIBS@ @M_LIB@
RPATH = @RPATH@
#----------------------------------------------------------------------------
INSTALL = @INSTALL@
@@ -69,29 +72,37 @@ DEST_SLSH_DOC_DIR= $(DESTDIR)$(SLSH_DOC_
#----------------------------------------------------------------------------
@SET_MAKE@
SHELL = /bin/sh
-#INST_LIBS = $(RPATH) $(SLANG_INST_LIB) $(DEST_LIB_DIR) -lslang $(READLINE_LIB) $(OTHER_LIBS)
-INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(OTHER_LIBS)
+INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS)
DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \
-DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \
-DSLSH_PATH_ENV='$(SLSH_PATH_ENV)'
-SRC_LIBS = $(SLANG_ELFLIB) -lslang $(READLINE_LIB) $(OTHER_LIBS)
-STATIC_SRC_LIBS = $(SLANG_OBJLIB) -lslang $(READLINE_LIB) $(OTHER_LIBS)
+SDEFS = $(DEFS) -DSLSH_STATIC
+SRC_LIBS = $(SLANG_ELFLIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS)
+STATIC_SRC_LIBS = $(SLANG_OBJLIB) -lslang $(READLINE_LIB) $(STATIC_LIBS)
#
all: $(OBJDIR)/slsh_exe
slsh: $(OBJDIR)/slsh
-static: $(OBJDIR)/slsh_static
$(OBJDIR)/slsh_exe: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o
- $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(SRC_LIBS)
+ $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS)
$(OBJDIR)/slsh: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o
- $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(SRC_LIBS)
+ $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS)
$(OBJDIR)/slsh.o: $(OBJDIR) slsh.c slsh.h config.h Makefile
cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) $(SRCDIR)/slsh.c
$(OBJDIR)/readline.o: $(OBJDIR) readline.c slsh.h config.h Makefile
cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c
-$(OBJDIR)/slsh_static: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o
- $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_static $(LDFLAGS) $(STATIC_SRC_LIBS)
$(OBJDIR):
-$(MKINSDIR) $(OBJDIR)
+#
+static: $(SOBJDIR)/slsh
+$(SOBJDIR)/slsh: $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o
+ $(CC) $(CFLAGS) $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o -o $(SOBJDIR)/slsh $(LDFLAGS) $(STATIC_SRC_LIBS)
+$(SOBJDIR)/slsh.o: $(SOBJDIR) slsh.c slsh.h config.h Makefile
+ cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) $(SRCDIR)/slsh.c
+$(SOBJDIR)/readline.o: $(SOBJDIR) readline.c slsh.h config.h Makefile
+ cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c
+$(SOBJDIR):
+ -$(MKINSDIR) $(SOBJDIR)
+#
config.h: ../src/config.h
cp ../src/config.h .
install_directories:
@@ -158,7 +169,7 @@ install: slsh install_directories instal
$(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/
install-static: static install_directories install_lib_files install_rline_files \
install_scripts install_help install_docs
- $(INSTALL) $(OBJDIR)/slsh_static $(DEST_BIN_DIR)/slsh
+ $(INSTALL) $(SOBJDIR)/slsh $(DEST_BIN_DIR)/
$(INSTALL_DATA) etc/slsh.rc $(DEST_SLSH_CONF_DIR)/
echo 'prepend_to_slang_load_path("$(SLSH_LOCALLIB_DIR)");' >> $(DEST_SLSH_CONF_DIR)/slsh.rc
$(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/
@@ -167,6 +178,7 @@ install-static: static install_directori
#---------------------------------------------------------------------------
clean:
-/bin/rm -f *~ $(OBJDIR)/slsh.o $(OBJDIR)/readline.o $(OBJDIR)/slsh $(OBJDIR)/slsh_exe scripts/*~ lib/*~
+ -/bin/rm -f $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o $(SOBJDIR)/slsh $(SOBJDIR)/slsh_exe
distclean: clean
-/bin/rm -f Makefile config.h
#
diff -rup a/slsh/slsh.c b/slsh/slsh.c
--- a/slsh/slsh.c 2014-09-18 04:02:24.000000000 +0100
+++ b/slsh/slsh.c 2014-12-09 10:17:04.602824146 +0000
@@ -514,7 +514,9 @@ int main (int argc, char **argv)
if ((-1 == SLang_init_all ())
|| (-1 == SLang_init_array_extra ())
+#ifndef SLSH_STATIC
|| (-1 == SLang_init_import ()) /* dynamic linking */
+#endif
|| (-1 == SLadd_intrin_fun_table (Intrinsics, NULL))
|| (-1 == slsh_init_readline_intrinsics ()))
{