From b3cce054ef381502af4f58105604081bf431ac9e Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 4 Mar 2019 00:22:02 -0800 Subject: [PATCH] Meet our new companion tool, bison Which is here courtesy of CentOS6, which only has bison 2.4 - while new glibc requires 2.7. Signed-off-by: Alexey Neyman --- config/comp_tools/bison.in | 1 + config/configure.in.in | 3 + config/libc/glibc.in | 14 +++++ configure.ac | 7 ++- packages/bison/3.0.5/chksum | 8 +++ packages/bison/3.0.5/version.desc | 0 packages/bison/3.1/chksum | 8 +++ packages/bison/3.1/version.desc | 0 packages/bison/3.2.4/chksum | 8 +++ packages/bison/3.2.4/version.desc | 0 packages/bison/3.3.2/chksum | 8 +++ packages/bison/3.3.2/version.desc | 0 packages/bison/package.desc | 6 ++ scripts/build/companion_tools/510-bison.sh | 66 ++++++++++++++++++++++ scripts/crosstool-NG.sh | 3 +- 15 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 config/comp_tools/bison.in create mode 100644 packages/bison/3.0.5/chksum create mode 100644 packages/bison/3.0.5/version.desc create mode 100644 packages/bison/3.1/chksum create mode 100644 packages/bison/3.1/version.desc create mode 100644 packages/bison/3.2.4/chksum create mode 100644 packages/bison/3.2.4/version.desc create mode 100644 packages/bison/3.3.2/chksum create mode 100644 packages/bison/3.3.2/version.desc create mode 100644 packages/bison/package.desc create mode 100644 scripts/build/companion_tools/510-bison.sh diff --git a/config/comp_tools/bison.in b/config/comp_tools/bison.in new file mode 100644 index 00000000..b0dc9e17 --- /dev/null +++ b/config/comp_tools/bison.in @@ -0,0 +1 @@ +# GNU bison diff --git a/config/configure.in.in b/config/configure.in.in index c8df5a35..27e9f168 100644 --- a/config/configure.in.in +++ b/config/configure.in.in @@ -39,6 +39,9 @@ config CONFIGURE_has_gnu_m4_1_4_12_or_newer config CONFIGURE_has_python_3_4_or_newer @KCONFIG_python_3_4_or_newer@ +config CONFIGURE_has_bison_2_7_or_newer + @KCONFIG_bison_2_7_or_newer@ + config CONFIGURE_has_python @KCONFIG_python@ diff --git a/config/libc/glibc.in b/config/libc/glibc.in index e27a4f68..4138707f 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -35,6 +35,20 @@ config GLIBC_DEP_BINUTILS select BINUTILS_REQUIRE_2_25_or_later if GLIBC_2_26_or_later select BINUTILS_REQUIRE_older_than_2_30 if GLIBC_older_than_2_26 && ARCH_ARM && ARCH_64 +# Glibc 2.29 requires GCC5+ or, for ppc64le, GCC6.2+. We only support the latest +# release on GCC6 branch, so just assume it is newer than 6.2 +config GLIBC_DEP_GCC + def_bool y + select GCC_REQUIRE_5_or_later if GLIBC_2_29_or_later + select GCC_REQUIRE_6_or_later if GLIBC_2_29_or_later && ARCH_POWERPC && ARCH_64 && ARCH_LE + +# Glibc 2.29 requires bison 2.7 or later. All versions in ct-ng satisfy that +# version requirement. +config GLIBC_DEP_BISON + def_bool y + depends on GLIBC_2_29_or_later && !CONFIGURE_has_bison_2_7_or_newer + select COMP_TOOLS_BISON + # Glibc 2.29 now requires Python 3.4 or later, and make 4.0 or later. Ensure # we build 'make' as a companion tool if host's make isn't new enough. config GLIBC_DEP_PYTHON diff --git a/configure.ac b/configure.ac index bea1817a..566b0248 100644 --- a/configure.ac +++ b/configure.ac @@ -113,7 +113,6 @@ AC_PROG_RANLIB CTNG_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy]) CTNG_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump]) CTNG_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf]) -CTNG_PATH_TOOL_REQ([BISON], [bison], [bison]) CTNG_CHECK_PROGS_REQ([flex], [flex]) CTNG_CHECK_PROGS_REQ([makeinfo], [makeinfo]) @@ -246,6 +245,12 @@ CTNG_PROG_VERSION([PYTHON], [^Python 3\.([4-9]|[1-9][0-9]+)\.], [python_3_4_or_newer]) +CTNG_PROG_VERSION([BISON], + [bison >= 2.7], + [bison], + [bison], + [\(GNU Bison\) (2\.[7-9]|2\.[1-9][0-9]|[3-9]\.)], + [bison_2_7_or_newer]) AC_SUBST([kconfig_options]) diff --git a/packages/bison/3.0.5/chksum b/packages/bison/3.0.5/chksum new file mode 100644 index 00000000..e3c010d3 --- /dev/null +++ b/packages/bison/3.0.5/chksum @@ -0,0 +1,8 @@ +md5 bison-3.0.5.tar.xz 3e54f20988ecd1b62044e25481e5f06b +sha1 bison-3.0.5.tar.xz 45e904d04d88c821df95833c4be4414ce5a47a4b +sha256 bison-3.0.5.tar.xz 075cef2e814642e30e10e8155e93022e4a91ca38a65aa1d5467d4e969f97f338 +sha512 bison-3.0.5.tar.xz 00b448db8abe91b07e32ff5273c6617bc1350d806f92073a9472f4c2f0de5d22c152795674171b74f2eb9eff8d36f8173b82dacb215601bb071ae39404d4a8a2 +md5 bison-3.0.5.tar.gz 41ad57813157b61bfa47e33067a9d6f0 +sha1 bison-3.0.5.tar.gz 326135383c6ef4439781f5817475948b28501dbc +sha256 bison-3.0.5.tar.gz cd399d2bee33afa712bac4b1f4434e20379e9b4099bce47189e09a7675a2d566 +sha512 bison-3.0.5.tar.gz 2087f5ced90518a93416c0c2d914f0ddbb55fb87af94becf03c7097f5d2365a05a3c287241018e86883d8a8bc3519dd7f175606edde96a30b3a54ca0b8a84642 diff --git a/packages/bison/3.0.5/version.desc b/packages/bison/3.0.5/version.desc new file mode 100644 index 00000000..e69de29b diff --git a/packages/bison/3.1/chksum b/packages/bison/3.1/chksum new file mode 100644 index 00000000..9ae47fb9 --- /dev/null +++ b/packages/bison/3.1/chksum @@ -0,0 +1,8 @@ +md5 bison-3.1.tar.xz db7e431785ad96870bfa570a15cab079 +sha1 bison-3.1.tar.xz 84e5b016fa76f6cd4246131b1ca11a0f926e7922 +sha256 bison-3.1.tar.xz 7c2464ad6cb7b513b2c350a092d919327e1f63d12ff024836acbb504475da5c6 +sha512 bison-3.1.tar.xz 2a8e217ffb55ed5b1fcc989377ac348a066e62b8a4b0b0da40c3c7202f3ea487b2aab6a704a10b48d2d17673be0e22f6ff1be91fc05c4e0a57969b42a59d0152 +md5 bison-3.1.tar.gz ba1f1c7d286adc79339c0f1d0f696963 +sha1 bison-3.1.tar.gz 6d42cbe38023a3020df498f1c22dc46439ee08b3 +sha256 bison-3.1.tar.gz a7cb36b55316eeec626865c03d2a44210617a17c7d393ee63d8553e0649ee946 +sha512 bison-3.1.tar.gz 5864bcc211bf326d7bde27a0f2603385e1796d475e607ac8904e360ef50c8e069033cc3701eb010e8077eec7f265276e0921dcae8beb9c1779b42ef598e59908 diff --git a/packages/bison/3.1/version.desc b/packages/bison/3.1/version.desc new file mode 100644 index 00000000..e69de29b diff --git a/packages/bison/3.2.4/chksum b/packages/bison/3.2.4/chksum new file mode 100644 index 00000000..9bb466f5 --- /dev/null +++ b/packages/bison/3.2.4/chksum @@ -0,0 +1,8 @@ +md5 bison-3.2.4.tar.xz 4c8cec0ca8b637d46f24902d032b9296 +sha1 bison-3.2.4.tar.xz 950c7fa571677828eab963126b93a4ed9d496b74 +sha256 bison-3.2.4.tar.xz 523d44419f4df68286503740c95c7b3400b748d7d8b797209195ee5d67f05634 +sha512 bison-3.2.4.tar.xz 652b54fdee969bbc17eeb04d05d65f143e8e0e1b46ac2574e3a76687b9bd916c9a0c97658b4f8357958d64e87fe2a6a2a98a6c312970f0e74fb4445962e9daae +md5 bison-3.2.4.tar.gz eeecdf612b423097ea9182979ca3e093 +sha1 bison-3.2.4.tar.gz 5e10f5d5036907f9d58232372754bce58af651c2 +sha256 bison-3.2.4.tar.gz cb673e2298d34b5e46ba7df0641afa734da1457ce47de491863407a587eec79a +sha512 bison-3.2.4.tar.gz 2670a5aa0d4e9a9433b4b132e11b0af42da8500fdd085fdf7c11033418baf4b0d5d6ca9e56d701c9b406c33231f2d0979a72c15f2ecdade34bc01fa31a690ce0 diff --git a/packages/bison/3.2.4/version.desc b/packages/bison/3.2.4/version.desc new file mode 100644 index 00000000..e69de29b diff --git a/packages/bison/3.3.2/chksum b/packages/bison/3.3.2/chksum new file mode 100644 index 00000000..23fc9370 --- /dev/null +++ b/packages/bison/3.3.2/chksum @@ -0,0 +1,8 @@ +md5 bison-3.3.2.tar.xz c9b552dee234b2f6b66e56b27e5234c9 +sha1 bison-3.3.2.tar.xz 6a09cd588f7a0f985839fc8cecdc80da948f7de7 +sha256 bison-3.3.2.tar.xz 039ee45b61d95e5003e7e8376f9080001b4066ff357bde271b7faace53b9d804 +sha512 bison-3.3.2.tar.xz 63c67291ea1bd00f4412fc589ffb891ede3e2577253016a9a185e00fb2d702371f3862486639a8f52f8a887f340a639575ff3b7ba93c152170cbfd8c9585c1dc +md5 bison-3.3.2.tar.gz a2d208a01a72eb98c2d7e3a2ec2bc51e +sha1 bison-3.3.2.tar.gz 364991dad2ae8e255564fdcb6f77e8da608243d5 +sha256 bison-3.3.2.tar.gz 0fda1d034185397430eb7b0c9e140fb37e02fbfc53b90252fa5575e382b6dbd1 +sha512 bison-3.3.2.tar.gz 42cc3de5a1f349eb8677869f85ea44c8590d3c59ba2488bab04f1575c840c25f80bfb3b5650dfa9cbad530238c1e5efb9b683571fe2e87346e1b01a392a3508b diff --git a/packages/bison/3.3.2/version.desc b/packages/bison/3.3.2/version.desc new file mode 100644 index 00000000..e69de29b diff --git a/packages/bison/package.desc b/packages/bison/package.desc new file mode 100644 index 00000000..b4c6cbce --- /dev/null +++ b/packages/bison/package.desc @@ -0,0 +1,6 @@ +repository='git https://git.savannah.gnu.org/git/bison.git' +bootstrap='./bootstrap' +mirrors='$(CT_Mirrors GNU bison)' +relevantpattern='*.*|.' +archive_formats='.tar.xz .tar.gz' +signature_format='packed/.sig' diff --git a/scripts/build/companion_tools/510-bison.sh b/scripts/build/companion_tools/510-bison.sh new file mode 100644 index 00000000..9379ea82 --- /dev/null +++ b/scripts/build/companion_tools/510-bison.sh @@ -0,0 +1,66 @@ +# Build script for bison + +do_companion_tools_bison_get() +{ + CT_Fetch BISON +} + +do_companion_tools_bison_extract() +{ + CT_ExtractPatch BISON +} + +do_companion_tools_bison_for_build() +{ + CT_DoStep INFO "Installing bison for build" + CT_mkdir_pushd "${CT_BUILD_DIR}/build-bison-build" + do_bison_backend \ + host=${CT_BUILD} \ + prefix="${CT_BUILD_COMPTOOLS_DIR}" \ + cflags="${CT_CFLAGS_FOR_BUILD}" \ + ldflags="${CT_LDFLAGS_FOR_BUILD}" + CT_Popd + CT_EndStep +} + +do_companion_tools_bison_for_host() +{ + CT_DoStep INFO "Installing bison for host" + CT_mkdir_pushd "${CT_BUILD_DIR}/build-bison-host" + do_bison_backend \ + host=${CT_HOST} \ + prefix="${CT_PREFIX_DIR}" \ + cflags="${CT_CFLAGS_FOR_HOST}" \ + ldflags="${CT_LDFLAGS_FOR_HOST}" + CT_Popd + CT_EndStep +} + +do_bison_backend() +{ + local host + local prefix + local cflags + local ldflags + local -a extra_config + + for arg in "$@"; do + eval "${arg// /\\ }" + done + + CT_DoLog EXTRA "Configuring bison" + CT_DoExecLog CFG \ + CFLAGS="${cflags}" \ + LDFLAGS="${ldflags}" \ + ${CONFIG_SHELL} \ + "${CT_SRC_DIR}/bison/configure" \ + --host="${host}" \ + --prefix="${prefix}" \ + "${extra_config[@]}" + + CT_DoLog EXTRA "Building bison" + CT_DoExecLog ALL make + + CT_DoLog EXTRA "Installing bison" + CT_DoExecLog ALL make install +} diff --git a/scripts/crosstool-NG.sh b/scripts/crosstool-NG.sh index 2e60f200..db15b890 100644 --- a/scripts/crosstool-NG.sh +++ b/scripts/crosstool-NG.sh @@ -458,6 +458,7 @@ if [ -z "${CT_RESTART}" ]; then fi # Not all tools are available for all platforms, but some are required. + # TBD do we need these as shell wrappers? exec is slow on Cygwin, and this makes exec twice for each compiler/linker run if [ -n "${where}" ]; then CT_DoLog DEBUG " '${!v}-${tool}' -> '${where}'" printf "#${BANG}${CT_CONFIG_SHELL}\nexec '${where}' \"\${@}\"\n" >"${CT_BUILDTOOLS_PREFIX_DIR}/bin/${!v}-${tool}" @@ -468,7 +469,7 @@ if [ -z "${CT_RESTART}" ]; then ar|as|gcc|ld|nm|objcopy|objdump|ranlib) CT_Abort "Missing: '${t}${tool}${!s}' or '${t}${tool}' or '${tool}' : either needed!" ;; - # Some are conditionnally required + # Some are conditionally required # Add them in alphabetical (C locale) ordering g++) # g++ (needed for companion lib), only needed for HOST