Files
poky/meta/recipes-devtools/bison/bison_3.5.4.bb
Mingli Yu 7d8dae11b9 bison: fix the parallel build
Explicitly make the BUILT_SOURCES which
are the generated headers such as stdio.h,
fcntl.h and etc to be the dependencies of
the gl_LIBOBJS such as libbison_a-sprintf.o,
libbison_a-printf.o and etc to guarantee the
BUILT_SOURCES is generated before begin to
compile EXTRA_lib_libbison_a_SOURCES such as
fprintf.c in parallel builid, otherwise there
may come below error:
 | muscle-tab.c:(.text+0x77a): undefined reference to `rpl_sprintf'

It does the same for src_bison_OBJECTS and
lib_libbison_a_OBJECTS to make sure BUILT_SOURCES
generated before begin to compile src_bison_SOURCES
which contains AnnotationList.c and etc.

BTW, the MOSTLYCLEANFILES also contains the
generated header needs to be created early
in the build process, so add it also in to
avoid below error:
 | ./lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory

[YOCTO #13825]

(From OE-Core rev: d4a0cbf132cf6a821e3efe7db3d9afd014cc9bc6)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-15 16:31:44 +01:00

46 lines
1.7 KiB
BlitzBasic

SUMMARY = "GNU Project parser generator (yacc replacement)"
DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \
an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \
grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \
little trouble."
HOMEPAGE = "http://www.gnu.org/software/bison/"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SECTION = "devel"
DEPENDS = "bison-native flex-native"
SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
file://dont-depend-on-help2man.patch.patch \
file://add-with-bisonlocaledir.patch \
file://0001-bison-fix-the-parallel-build.patch \
"
SRC_URI[sha256sum] = "4c17e99881978fa32c05933c5262457fa5b2b611668454f8dc2a695cd6b3720c"
# No point in hardcoding path to m4, just use PATH
EXTRA_OECONF += "M4=m4"
# Reset any loadavg set via environment, it breaks parallel build
# | ../bison-3.5.2/lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory
# | #include "uniwidth.h"
# | ^~~~~~~~~~~~
EXTRA_OEMAKE_append = " -l"
inherit autotools gettext texinfo
# The automatic m4 path detection gets confused, so force the right value
acpaths = "-I ${S}/m4"
do_compile_prepend() {
for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
}
do_install_append_class-native() {
create_wrapper ${D}/${bindir}/bison \
BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison
}
do_install_append_class-nativesdk() {
create_wrapper ${D}/${bindir}/bison \
BISON_PKGDATADIR=${datadir}/bison
}
BBCLASSEXTEND = "native nativesdk"