stress-ng: Robustify test-float test

Latest compilers are able to figure out that whole code can be optmized
away when CFLAGS has -O2 or more agressive optimizations. In order to
ensure the test is doing the right thing, make the variables global so
compiler is not able to optimize it away.

This fixes build on x86 especially when using clang compiler

(From OE-Core rev: e9c4017982a5556580d24e72e74c4d5a879ff11c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2023-01-23 09:41:56 -08:00
committed by Richard Purdie
parent d2066f99d0
commit b0e00ca9bd
2 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
From 958a86069c8d0149969b5c32212a28009c4a9ded Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 21 Jan 2023 23:18:18 -0800
Subject: [PATCH] test-float: Make variables global
Latest clang ( clang 16+ ) is able to optimize everything out when -O2 is used and as
a result build succeeds and test output comes out to be wrong. Therefore
make the variables global, so clang does not optimize away the functions
Upstream-Status: Backport [https://github.com/ColinIanKing/stress-ng/commit/e299eb60a3a029e975304cc43045aea6ab1fad70]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/test-float.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/test/test-float.c b/test/test-float.c
index d2800cd3..ad5503c3 100644
--- a/test/test-float.c
+++ b/test/test-float.c
@@ -61,10 +61,9 @@
/* Avoid implicit int in the definition of test even if FLOAT is not known. */
typedef FLOAT float_type;
+FLOAT a = 0.0, b = 0.0, c = 0.0, d = 0.0;
static float_type HOT OPTIMIZE3 test(void)
{
- FLOAT a = 0.0, b = 0.0, c = 0.0, d = 0.0;
-
float_ops(FLOAT, a, b, c, d, sin, cos);
float_ops(FLOAT, a, b, c, d, sinl, cosl);
--
2.39.1

View File

@@ -6,6 +6,7 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
file://0001-test-float-Make-variables-global.patch \
file://0001-Pass-LD_GOLD-1-via-makefile-to-enable-gold-linker.patch"
SRCREV = "4164f6842c712c2d9a13619c3c70fd35d8d02cdb"
S = "${WORKDIR}/git"