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 <stilor@att.net>
This commit is contained in:
Alexey Neyman 2019-03-04 00:22:02 -08:00
parent da11216f8d
commit b3cce054ef
15 changed files with 130 additions and 2 deletions

View File

@ -0,0 +1 @@
# GNU bison

View File

@ -39,6 +39,9 @@ config CONFIGURE_has_gnu_m4_1_4_12_or_newer
config CONFIGURE_has_python_3_4_or_newer config CONFIGURE_has_python_3_4_or_newer
@KCONFIG_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 config CONFIGURE_has_python
@KCONFIG_python@ @KCONFIG_python@

View File

@ -35,6 +35,20 @@ config GLIBC_DEP_BINUTILS
select BINUTILS_REQUIRE_2_25_or_later if GLIBC_2_26_or_later 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 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 # 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. # we build 'make' as a companion tool if host's make isn't new enough.
config GLIBC_DEP_PYTHON config GLIBC_DEP_PYTHON

View File

@ -113,7 +113,6 @@ AC_PROG_RANLIB
CTNG_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy]) CTNG_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy])
CTNG_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump]) CTNG_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump])
CTNG_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf]) 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([flex], [flex])
CTNG_CHECK_PROGS_REQ([makeinfo], [makeinfo]) 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-9]|[1-9][0-9]+)\.],
[python_3_4_or_newer]) [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]) AC_SUBST([kconfig_options])

8
packages/bison/3.0.5/chksum vendored Normal file
View File

@ -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

0
packages/bison/3.0.5/version.desc vendored Normal file
View File

8
packages/bison/3.1/chksum vendored Normal file
View File

@ -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

0
packages/bison/3.1/version.desc vendored Normal file
View File

8
packages/bison/3.2.4/chksum vendored Normal file
View File

@ -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

0
packages/bison/3.2.4/version.desc vendored Normal file
View File

8
packages/bison/3.3.2/chksum vendored Normal file
View File

@ -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

0
packages/bison/3.3.2/version.desc vendored Normal file
View File

View File

@ -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'

View File

@ -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
}

View File

@ -458,6 +458,7 @@ if [ -z "${CT_RESTART}" ]; then
fi fi
# Not all tools are available for all platforms, but some are required. # 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 if [ -n "${where}" ]; then
CT_DoLog DEBUG " '${!v}-${tool}' -> '${where}'" CT_DoLog DEBUG " '${!v}-${tool}' -> '${where}'"
printf "#${BANG}${CT_CONFIG_SHELL}\nexec '${where}' \"\${@}\"\n" >"${CT_BUILDTOOLS_PREFIX_DIR}/bin/${!v}-${tool}" 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) ar|as|gcc|ld|nm|objcopy|objdump|ranlib)
CT_Abort "Missing: '${t}${tool}${!s}' or '${t}${tool}' or '${tool}' : either needed!" 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 # Add them in alphabetical (C locale) ordering
g++) g++)
# g++ (needed for companion lib), only needed for HOST # g++ (needed for companion lib), only needed for HOST