On 3/4/2025 6:51 AM, Peter Maydell wrote:
On Tue, 4 Mar 2025 at 11:56, Alex Bennée <alex.ben...@linaro.org> wrote:
Peter Maydell <peter.mayd...@linaro.org> writes:
+# GCC versions 12/13/14/15 at least incorrectly complain about
+# "'SHA1Transform' reading 64 bytes from a region of size 0"; see the gcc bug
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106709
+# Since this is just a standard piece of library code we've borrowed for a
+# TCG test case, suppress the warning rather than trying to modify the
+# code to work around the compiler.
+sha1: CFLAGS+=-Wno-stringop-overread
+
Sadly this breaks the hexagon compiler:

   error: unknown warning option '-Wno-stringop-overread' 
[-Werror,-Wunknown-warning-option]
   Traceback (most recent call last):
     File "/home/alex/lsrc/qemu.git/tests/docker/docker.py", line 683, in 
<module>
       sys.exit(main())
                ^^^^^^
     File "/home/alex/lsrc/qemu.git/tests/docker/docker.py", line 679, in main
       return args.cmdobj.run(args, argv)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/home/alex/lsrc/qemu.git/tests/docker/docker.py", line 657, in run
       return Docker().run(cmd, False, quiet=args.quiet,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/home/alex/lsrc/qemu.git/tests/docker/docker.py", line 370, in run
       ret = self._do_check(["run", "--rm", "--label",
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/home/alex/lsrc/qemu.git/tests/docker/docker.py", line 247, in 
_do_check
       return subprocess.check_call(self._command + cmd, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
       raise CalledProcessError(retcode, cmd)
   subprocess.CalledProcessError: Command '['podman', 'run', '--rm', '--label', 
'com.qemu.instance.uuid=5bbb7b6ed2ea4377b9b6d646859ec4ea', '--userns=keep-id', 
'-u', '1000', '-w', 
'/home/alex/lsrc/qemu.git/builds/all/tests/tcg/hexagon-linux-user', '-v', 
'/home/alex/lsrc/qemu.git/builds/all/tests/tcg/hexagon-linux-user:/home/alex/lsrc/qemu.git/builds/all/tests/tcg/hexagon-linux-user:rw',
 '-v', '/home/alex/lsrc/qemu.git:/home/alex/lsrc/qemu.git:ro,z', 
'qemu/debian-hexagon-cross', 'hexagon-unknown-linux-musl-clang', 
'-Wno-incompatible-pointer-types', '-Wno-undefined-internal', 
'-fno-unroll-loops', '-fno-stack-protector', '-Wall', '-Werror', '-O0', '-g', 
'-fno-strict-aliasing', '-Wno-stringop-overread', '-mv73', '-O2', '-static', 
'/home/alex/lsrc/qemu.git/tests/tcg/multiarch/sha1.c', '-o', 'sha1', 
'-static']' returned non-zero exit status 1.
   filter=--filter=label=com.qemu.instance.uuid=5bbb7b6ed2ea4377b9b6d646859ec4ea
   make[1]: *** [Makefile:122: sha1] Error 1
   make: *** [/home/alex/lsrc/qemu.git/tests/Makefile.include:52: 
build-tcg-tests-hexagon-linux-user] Error 2

Is it that new an option?
I think it's new-ish (gcc 11?). On the other hand


I was going to volunteer to update the toolchain used for hexagon to address this.  But unfortunately this warning is still not supported in clang 21.

https://github.com/llvm/llvm-project/issues/72455 sounds like it's not very likely to arrive any time soon.


So "-Wno-unknown-warning-option" does indeed seem like a good workaround.


-Wno-unknown-warning-option is quite old, and would suppress
this error. If we do
  CFLAGS+=-Wno-unknown-warning-option -Wno-stringop-overread

does that work?

(Meson has cc.get_supported_arguments() that we can use to
filter out -Wfoo/-Wno-foo options that the compiler doesn't
support, but since this is built via a makefile rather than
by meson that's not conveniently accessible.)

-- PMM

Reply via email to