aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bison
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bison')
-rw-r--r--tools/bison/Makefile28
-rw-r--r--tools/bison/patches/000-relocatable.patch20
-rw-r--r--tools/bison/patches/010-intl-stub-compat.patch15
-rw-r--r--tools/bison/patches/100-fix-gets-removal.patch15
4 files changed, 78 insertions, 0 deletions
diff --git a/tools/bison/Makefile b/tools/bison/Makefile
new file mode 100644
index 000000000..ef705227e
--- /dev/null
+++ b/tools/bison/Makefile
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2008-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bison
+PKG_VERSION:=2.5
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
+PKG_MD5SUM:=9dba20116b13fc61a0846b0058fbe004
+PKG_CAT:=bzcat
+
+HOST_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+
+HOST_LDFLAGS += $(HOST_STATIC_LINKING)
+
+define Host/Clean
+ -$(MAKE) -C $(HOST_BUILD_DIR) uninstall
+ $(call Host/Clean/Default)
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/bison/patches/000-relocatable.patch b/tools/bison/patches/000-relocatable.patch
new file mode 100644
index 000000000..50dca6d33
--- /dev/null
+++ b/tools/bison/patches/000-relocatable.patch
@@ -0,0 +1,20 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -81,6 +81,7 @@ MOSTLYCLEANFILES = yacc
+
+ yacc:
+ echo '#! /bin/sh' >$@
++ echo 'test -n "$$STAGING_DIR" && exec "$$STAGING_DIR/../host/bin/bison" -y "$$@"' >>$@
+ echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@
+ chmod a+x $@
+
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -1609,6 +1609,7 @@ uninstall-am: uninstall-binPROGRAMS unin
+
+ yacc:
+ echo '#! /bin/sh' >$@
++ echo 'test -n "$$STAGING_DIR" && exec "$$STAGING_DIR/../host/bin/bison" -y "$$@"' >>$@
+ echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@
+ chmod a+x $@
+
diff --git a/tools/bison/patches/010-intl-stub-compat.patch b/tools/bison/patches/010-intl-stub-compat.patch
new file mode 100644
index 000000000..2cd720b68
--- /dev/null
+++ b/tools/bison/patches/010-intl-stub-compat.patch
@@ -0,0 +1,15 @@
+--- a/src/main.c
++++ b/src/main.c
+@@ -58,9 +58,9 @@ main (int argc, char *argv[])
+ {
+ program_name = argv[0];
+ setlocale (LC_ALL, "");
+- (void) bindtextdomain (PACKAGE, LOCALEDIR);
+- (void) bindtextdomain ("bison-runtime", LOCALEDIR);
+- (void) textdomain (PACKAGE);
++ bindtextdomain (PACKAGE, LOCALEDIR);
++ bindtextdomain ("bison-runtime", LOCALEDIR);
++ textdomain (PACKAGE);
+
+ uniqstrs_new ();
+ muscle_init ();
diff --git a/tools/bison/patches/100-fix-gets-removal.patch b/tools/bison/patches/100-fix-gets-removal.patch
new file mode 100644
index 000000000..1b9031064
--- /dev/null
+++ b/tools/bison/patches/100-fix-gets-removal.patch
@@ -0,0 +1,15 @@
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -177,12 +177,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not
+ "use gnulib module fflush for portable POSIX compliance");
+ #endif
+
+-/* It is very rare that the developer ever has full control of stdin,
+- so any use of gets warrants an unconditional warning. Assume it is
+- always declared, since it is required by C89. */
+-#undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+-
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+ # if !(defined __cplusplus && defined GNULIB_NAMESPACE)