Skip to content
This repository has been archived by the owner on Jul 17, 2023. It is now read-only.

Kraft "configure" command fails on Fedora Linux as the default yacc is Berkley Yacc not GNU Bison #32

Open
skyhisi opened this issue Dec 14, 2020 · 0 comments
Assignees
Labels
kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. runtime/linux Runtime support for Linux.

Comments

@skyhisi
Copy link

skyhisi commented Dec 14, 2020

Describe the bug
When kraft configure is run for the first time it builds kconfig, this uses the default system yacc which on Fedora 33 is Berkley Yacc not GNU Bison, but passes the Bison specific option -W.

[INFO    ] make: Entering directory '/home/silas/.unikraft/unikraft'
[INFO    ] mkdir -p /home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig/lxdialog
[INFO    ] make --no-print-directory CC="/usr/lib64/ccache/gcc" HOSTCC="/usr/lib64/ccache/gcc" \
[INFO    ] obj=/home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig -C /home/silas/.unikraft/unikraft/support/kconfig -f Makefile.br /home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig/conf
yacc: invalid option -- 'W'
Usage: yacc [options] filename

Options:
  -b file_prefix        set filename prefix (default "y.")
  -B                    create a backtracking parser
  -d                    write definitions (.tab.h)
  -H defines_file       write definitions to defines_file
  -i                    write interface (y.tab.i)
  -g                    write a graphical description
  -l                    suppress #line directives
  -L                    enable position processing, e.g., "%locations"
  -o output_file        (default ".tab.c")
  -p symbol_prefix      set symbol prefix (default "yy")
  -P                    create a reentrant parser, e.g., "%pure-parser"
  -r                    produce separate code and table files (y.code.c)
  -s                    suppress #define's for quoted names in %token lines
  -t                    add debugging support
  -v                    write description (y.output)
  -V                    show version information and exit
make[3]: *** [Makefile.rules:84: /home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig/parser.tab.h] Error 1
make[2]: *** [/home/silas/Documents/programs/testing/unikraft/helloworld/build/Makefile:695: /home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig/conf] Error 2
make[1]: *** [Makefile:919: sub-make] Error 2
make: *** [Makefile:32: _all] Error 2
[INFO    ] make: Leaving directory '/home/silas/.unikraft/unikraft'
[ERROR   ] Command 'make -C /home/silas/.unikraft/unikraft A=/home/silas/Documents/programs/testing/unikraft/helloworld P= L= UK_DEFCONFIG=/tmp/tmplv6mlq9s defconfig' returned 2

Work around
Install bison package (sudo dnf install bison), then manually run the failing make command and override the use of yacc by passing YACC=bison, e.g:

make --no-print-directory YACC=/usr/bin/bison CC="/usr/lib64/ccache/gcc" HOSTCC="/usr/lib64/ccache/gcc" obj=/home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig -C /home/silas/.unikraft/unikraft/support/kconfig -f Makefile.br /home/silas/Documents/programs/testing/unikraft/helloworld/build/kconfig/conf

Desktop:

  • OS: Fedora 33
@skyhisi skyhisi changed the title Kraft "configure" command fails on Fedora Linux as the default yacc is byacc (Berkley Yacc) not bison Kraft "configure" command fails on Fedora Linux as the default yacc is Berkley Yacc not GNU Bison Dec 14, 2020
@nderjung nderjung added kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. runtime/linux Runtime support for Linux. labels Dec 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. runtime/linux Runtime support for Linux.
Projects
None yet
Development

No branches or pull requests

3 participants