On 10/23/24 05:17, Ilya Leoshkevich wrote:
On Mon, 2024-10-21 at 19:59 -0700, Richard Henderson wrote:
On 10/21/24 07:27, Ilya Leoshkevich wrote:
[1] deprecated -mpower8-vector, resulting in:

      powerpc64-linux-gnu-gcc: warning: switch '-mpower8-vector' is
no longer supported
      qemu/tests/tcg/ppc64/vsx_f2i_nan.c:4:15: error: expected ';'
before 'float'
          4 | typedef vector float vsx_float32_vec_t;
            |               ^~~~~~

Similar to how this was done for the GCC testcases, replace
-mpower8-vector with -mvsx.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109987

Signed-off-by: Ilya Leoshkevich <i...@linux.ibm.com>
---
   tests/tcg/ppc64/Makefile.target | 10 +++++-----
   1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tests/tcg/ppc64/Makefile.target
b/tests/tcg/ppc64/Makefile.target
index 1940886c737..d1b00d2bf09 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -6,7 +6,7 @@ VPATH += $(SRC_PATH)/tests/tcg/ppc64
  config-cc.mak: Makefile
        $(quiet-@)( \
-           $(call cc-option,-mpower8-vector,
CROSS_CC_HAS_POWER8_VECTOR); \
+           $(call cc-option,-mvsx,             CROSS_CC_HAS_VSX);
\
            $(call cc-option,-mpower10,
CROSS_CC_HAS_POWER10)) 3> config-cc.mak

I don't think this is quite right.
I think you need -mpower8 to get OPTION_MASK_P8_VECTOR set.

Do you mean -mcpu=power8? -mpower8 is a GAS option.

It looks like I do, yes.
Also in that vein, -mpower10 has been marked WarnRemoved in gcc trunk.


I was confused why -mvsx works in practice, so I spent some time and
managed to create a "hostile" gcc build, in which this is now a
problem, using:

     ./configure --target=powerpc64-linux-gnu --enable-checking \
                 --disable-bootstrap \
                 --with-as="$(which powerpc64-linux-gnu-as)"

The issue is masked by two things:

- GCC passes "-many" to GAS. GCC commit e154242724b0 ("[RS6000] Don't
   pass -many to the assembler") stops --enable-checking builds from
   doing this.

- binutils has the following line:

   /* The minimum supported cpu for 64-bit little-endian is power8.  */
   ppc_cpu |= ppc_parse_cpu (ppc_cpu, &sticky, "power8");

   so one needs to use the big-endian toolchain to see the problem.

Ah hah!  Good sleuthing.


r~

Reply via email to