On 7/2/23 17:11, Philippe Mathieu-Daudé wrote:
+Bastian

On 7/2/23 16:08, Thomas Huth wrote:
On 07/02/2023 15.54, Philippe Mathieu-Daudé wrote:
Cc'ing Paolo/Daniel/Thomas

On 7/2/23 15:52, Matheus Tavares Bernardino wrote:
Hexagon's idef-parser machinery uses some bison features that are not
available at older versions. The most preeminent example (as it can
be used as a sentinel) is "%define parse.error verbose". This was
introduced in version 3.0 of the tool, which is able to compile
qemu-hexagon just fine. However, compilation fails with the previous
minor bison release, v2.7. So let's assert the minimum version at
meson.build to give a more comprehensive error message for those trying
to compile QEMU.

[1]: https://www.gnu.org/software/bison/manual/html_node/_0025define-Summary.html#index-_0025define-parse_002eerror

Signed-off-by: Matheus Tavares Bernardino <quic_mathb...@quicinc.com>
---
  target/hexagon/meson.build | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build
index c9d31d095c..42b03c81e6 100644
--- a/target/hexagon/meson.build
+++ b/target/hexagon/meson.build
@@ -183,7 +183,7 @@ if idef_parser_enabled and 'hexagon-linux-user' in target_dirs
      )
      bison = generator(
-        find_program('bison'),
+        find_program('bison', version: '>=3.0'),
          output: ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
          arguments: ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']
      )

Looks reasonable, thus:

Reviewed-by: Thomas Huth <th...@redhat.com>

Out of curiosity: Where did you encounter this problem? After having a quick look at https://repology.org/project/bison/versions it seems to me that all our supported OS distros should already ship bison 3.0 or newer...

I suppose this fix the tricore container problem Peter reported last week:

s/fix/fixes/

https://lore.kernel.org/qemu-devel/CAFEAcA-Vr8=br=9jGU1Tr=HTyH6o+S9H79oG=6bqzb8fsp+...@mail.gmail.com/

https://gitlab.com/qemu-project/qemu/-/jobs/3710561054

#6 43.63 ldlex.l: In function 'yy_input':
#6 43.63 ldlex.l:615:7: error: 'yy_current_buffer' undeclared (first
use in this function); did you mean 'yy_create_buffer'?
#6 43.63 {
#6 43.63 ^
#6 43.63 yy_create_buffer

(if so, it would be helpful to have that mentioned in the commit description)


Reply via email to