diff options
4 files changed, 221 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/byacc/byacc.inc b/meta-oe/recipes-extended/byacc/byacc.inc new file mode 100644 index 0000000000..9bdafd2440 --- /dev/null +++ b/meta-oe/recipes-extended/byacc/byacc.inc | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | SUMMARY = "Berkeley LALR Yacc parser generator" | ||
| 2 | HOMEPAGE = "http://invisible-island.net/byacc/" | ||
| 3 | DESCRIPTION = "A parser generator utility that reads a grammar specification from a file and generates an LR(1) \ | ||
| 4 | parser for it. The parsers consist of a set of LALR(1) parsing tables and a driver routine written in the C \ | ||
| 5 | programming language." | ||
| 6 | SECTION = "devel" | ||
| 7 | LICENSE = "PD" | ||
| 8 | |||
| 9 | SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz \ | ||
| 10 | file://byacc-open.patch \ | ||
| 11 | file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch" | ||
| 12 | |||
| 13 | EXTRA_OECONF += "--program-transform-name='s,^,b,'" | ||
| 14 | |||
| 15 | BBCLASSEXTEND = "native" | ||
| 16 | |||
| 17 | inherit autotools | ||
| 18 | |||
| 19 | do_configure() { | ||
| 20 | install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} | ||
| 21 | install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} | ||
| 22 | oe_runconf | ||
| 23 | } | ||
diff --git a/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch new file mode 100644 index 0000000000..7cd2510c8e --- /dev/null +++ b/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch | |||
| @@ -0,0 +1,161 @@ | |||
| 1 | Subject: byacc: do not reorder $CC and $CFLAGS | ||
| 2 | |||
| 3 | byacc tries to process $CC and decide which part should belong to CC and which | ||
| 4 | part should below to CFLAGS and then do reordering. It doesn't make much sense | ||
| 5 | for OE. And it doesn't do its work correctly. Some options are dropped. | ||
| 6 | |||
| 7 | Delete all these stuff so that we could have all options we need. | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate [OE Specific] | ||
| 10 | |||
| 11 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
| 12 | --- | ||
| 13 | aclocal.m4 | 1 - | ||
| 14 | configure | 119 ------------------------------------------------------------- | ||
| 15 | 2 files changed, 120 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/aclocal.m4 b/aclocal.m4 | ||
| 18 | index 917a848..62ef241 100644 | ||
| 19 | --- a/aclocal.m4 | ||
| 20 | +++ b/aclocal.m4 | ||
| 21 | @@ -1021,7 +1021,6 @@ CF_GCC_VERSION | ||
| 22 | CF_ACVERSION_CHECK(2.52, | ||
| 23 | [AC_PROG_CC_STDC], | ||
| 24 | [CF_ANSI_CC_REQD]) | ||
| 25 | -CF_CC_ENV_FLAGS | ||
| 26 | ])dnl | ||
| 27 | dnl --------------------------------------------------------------------------- | ||
| 28 | dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27 | ||
| 29 | diff --git a/configure b/configure | ||
| 30 | index 9707e50..4f0497c 100755 | ||
| 31 | --- a/configure | ||
| 32 | +++ b/configure | ||
| 33 | @@ -1946,125 +1946,6 @@ esac | ||
| 34 | # This should have been defined by AC_PROG_CC | ||
| 35 | : ${CC:=cc} | ||
| 36 | |||
| 37 | -echo "$as_me:1949: checking \$CC variable" >&5 | ||
| 38 | -echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 | ||
| 39 | -case "$CC" in | ||
| 40 | -(*[\ \ ]-*) | ||
| 41 | - echo "$as_me:1953: result: broken" >&5 | ||
| 42 | -echo "${ECHO_T}broken" >&6 | ||
| 43 | - { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 | ||
| 44 | -echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} | ||
| 45 | - # humor him... | ||
| 46 | - cf_flags=`echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'` | ||
| 47 | - CC=`echo "$CC " | sed -e 's/[ ]-[^ ].*$//' -e 's/[ ]*$//'` | ||
| 48 | - for cf_arg in $cf_flags | ||
| 49 | - do | ||
| 50 | - case "x$cf_arg" in | ||
| 51 | - (x-[IUDfgOW]*) | ||
| 52 | - | ||
| 53 | -cf_fix_cppflags=no | ||
| 54 | -cf_new_cflags= | ||
| 55 | -cf_new_cppflags= | ||
| 56 | -cf_new_extra_cppflags= | ||
| 57 | - | ||
| 58 | -for cf_add_cflags in $cf_flags | ||
| 59 | -do | ||
| 60 | -case $cf_fix_cppflags in | ||
| 61 | -(no) | ||
| 62 | - case $cf_add_cflags in | ||
| 63 | - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) | ||
| 64 | - case $cf_add_cflags in | ||
| 65 | - (-D*) | ||
| 66 | - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` | ||
| 67 | - | ||
| 68 | - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ | ||
| 69 | - && test -z "${cf_tst_cflags}" \ | ||
| 70 | - && cf_fix_cppflags=yes | ||
| 71 | - | ||
| 72 | - if test $cf_fix_cppflags = yes ; then | ||
| 73 | - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" | ||
| 74 | - continue | ||
| 75 | - elif test "${cf_tst_cflags}" = "\"'" ; then | ||
| 76 | - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" | ||
| 77 | - continue | ||
| 78 | - fi | ||
| 79 | - ;; | ||
| 80 | - esac | ||
| 81 | - case "$CPPFLAGS" in | ||
| 82 | - (*$cf_add_cflags) | ||
| 83 | - ;; | ||
| 84 | - (*) | ||
| 85 | - case $cf_add_cflags in | ||
| 86 | - (-D*) | ||
| 87 | - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` | ||
| 88 | - | ||
| 89 | -CPPFLAGS=`echo "$CPPFLAGS" | \ | ||
| 90 | - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ | ||
| 91 | - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` | ||
| 92 | - | ||
| 93 | - ;; | ||
| 94 | - esac | ||
| 95 | - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" | ||
| 96 | - ;; | ||
| 97 | - esac | ||
| 98 | - ;; | ||
| 99 | - (*) | ||
| 100 | - cf_new_cflags="$cf_new_cflags $cf_add_cflags" | ||
| 101 | - ;; | ||
| 102 | - esac | ||
| 103 | - ;; | ||
| 104 | -(yes) | ||
| 105 | - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" | ||
| 106 | - | ||
| 107 | - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` | ||
| 108 | - | ||
| 109 | - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ | ||
| 110 | - && test -z "${cf_tst_cflags}" \ | ||
| 111 | - && cf_fix_cppflags=no | ||
| 112 | - ;; | ||
| 113 | -esac | ||
| 114 | -done | ||
| 115 | - | ||
| 116 | -if test -n "$cf_new_cflags" ; then | ||
| 117 | - | ||
| 118 | - CFLAGS="$CFLAGS $cf_new_cflags" | ||
| 119 | -fi | ||
| 120 | - | ||
| 121 | -if test -n "$cf_new_cppflags" ; then | ||
| 122 | - | ||
| 123 | - CPPFLAGS="$CPPFLAGS $cf_new_cppflags" | ||
| 124 | -fi | ||
| 125 | - | ||
| 126 | -if test -n "$cf_new_extra_cppflags" ; then | ||
| 127 | - | ||
| 128 | - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" | ||
| 129 | -fi | ||
| 130 | - | ||
| 131 | - ;; | ||
| 132 | - (*) | ||
| 133 | - CC="$CC $cf_arg" | ||
| 134 | - ;; | ||
| 135 | - esac | ||
| 136 | - done | ||
| 137 | - test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6 | ||
| 138 | - | ||
| 139 | -echo "${as_me:-configure}:2051: testing resulting CC: '$CC' ..." 1>&5 | ||
| 140 | - | ||
| 141 | - test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6 | ||
| 142 | - | ||
| 143 | -echo "${as_me:-configure}:2055: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 | ||
| 144 | - | ||
| 145 | - test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6 | ||
| 146 | - | ||
| 147 | -echo "${as_me:-configure}:2059: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 | ||
| 148 | - | ||
| 149 | - ;; | ||
| 150 | -(*) | ||
| 151 | - echo "$as_me:2063: result: ok" >&5 | ||
| 152 | -echo "${ECHO_T}ok" >&6 | ||
| 153 | - ;; | ||
| 154 | -esac | ||
| 155 | - | ||
| 156 | echo "$as_me:2068: checking whether ${MAKE-make} sets \${MAKE}" >&5 | ||
| 157 | echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 | ||
| 158 | set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` | ||
| 159 | -- | ||
| 160 | 2.8.3 | ||
| 161 | |||
diff --git a/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch b/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch new file mode 100644 index 0000000000..005831130b --- /dev/null +++ b/meta-oe/recipes-extended/byacc/byacc/byacc-open.patch | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | Ubuntu defaults to passing _FORTIFY_SOURCE=2 which breaks byacc as it doesn't | ||
| 2 | pass enough arguments to open(): | ||
| 3 | |||
| 4 | inlined from 'open_tmpfile' at byacc-20150711/main.c:588:5: | ||
| 5 | /usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:24: error: call to '__open_missing_mode' declared with attribute error: | ||
| 6 | open with O_CREAT in second argument needs 3 arguments | ||
| 7 | |||
| 8 | Add a mode of 0666 to fix this. | ||
| 9 | |||
| 10 | Upstream-Status: Pending | ||
| 11 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
| 12 | |||
| 13 | diff --git a/main.c b/main.c | ||
| 14 | index 620ce3f..82071a4 100644 | ||
| 15 | --- a/main.c | ||
| 16 | +++ b/main.c | ||
| 17 | @@ -526,7 +526,7 @@ my_mkstemp(char *temp) | ||
| 18 | } | ||
| 19 | if ((name = tempnam(dname, fname)) != 0) | ||
| 20 | { | ||
| 21 | - fd = open(name, O_CREAT | O_EXCL | O_RDWR); | ||
| 22 | + fd = open(name, O_CREAT | O_EXCL | O_RDWR, 0666); | ||
| 23 | strcpy(temp, name); | ||
| 24 | } | ||
| 25 | else | ||
diff --git a/meta-oe/recipes-extended/byacc/byacc_20170201.bb b/meta-oe/recipes-extended/byacc/byacc_20170201.bb new file mode 100644 index 0000000000..702c4c99ef --- /dev/null +++ b/meta-oe/recipes-extended/byacc/byacc_20170201.bb | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | # Sigh. This is one of those places where everyone licenses it differently. Someone | ||
| 2 | # even apply UCB to it (Free/Net/OpenBSD). The maintainer states that: | ||
| 3 | # "I've found no reliable source which states that byacc must bear a UCB copyright." | ||
| 4 | # Setting to PD as this is what the upstream has it as. | ||
| 5 | |||
| 6 | LICENSE = "PD" | ||
| 7 | LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=9176bfb16dab43ebcb8e50d9ee9550b6" | ||
| 8 | require byacc.inc | ||
| 9 | |||
| 10 | SRC_URI[md5sum] = "4bb274bbd7b648d4251c2b9ca36ed0c9" | ||
| 11 | SRC_URI[sha256sum] = "90b768d177f91204e6e7cef226ae1dc7cac831b625774cebd3e233a917754f91" | ||
| 12 | |||
