From: Khem Raj Date: Fri, 1 Dec 2023 18:33:53 +0000 (-0800) Subject: virglrenderer: Fix build with clang X-Git-Tag: yocto-5.2~4438 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6e698bac55f785e84f52161cfab8fe6e764940cc;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git virglrenderer: Fix build with clang Fix warnigns seen with -Wembedded-directive -D_FORTIFY_SOURCE=2 Signed-off-by: Khem Raj Cc: Alexander Kanavin Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch new file mode 100644 index 00000000000..48488d7be12 --- /dev/null +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch @@ -0,0 +1,56 @@ +From ea328b246d093477cf26a68b42e975aaaef6abad Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Nov 2023 21:55:36 -0800 +Subject: [PATCH] vtest: Fix undefined behavior with clang + +This is seen when compiling with CC="clang -D_FORTIFY_SOURCE=2" +Move #ifdef outside of printf() call. + +Fixes + +| ../git/vtest/vtest_server.c:244:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] +| 244 | #ifdef ENABLE_VENUS +| | ^ +| ../git/vtest/vtest_server.c:246:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] +| 246 | #endif +| | ^ + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1309] +Signed-off-by: Khem Raj +--- + vtest/vtest_server.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c +index 1ca7f74f..93d949d7 100644 +--- a/vtest/vtest_server.c ++++ b/vtest/vtest_server.c +@@ -197,6 +197,12 @@ static void vtest_server_parse_args(int argc, char **argv) + /* getopt_long stores the option index here. */ + int option_index = 0; + ++#ifdef ENABLE_VENUS ++ char* ven = " [--venus]"; ++#else ++ char* ven = ""; ++#endif ++ + do { + ret = getopt_long(argc, argv, "", long_options, &option_index); + +@@ -244,10 +250,8 @@ static void vtest_server_parse_args(int argc, char **argv) + printf("Usage: %s [--no-fork] [--no-loop-or-fork] [--multi-clients] " + "[--use-glx] [--use-egl-surfaceless] [--use-gles] [--no-virgl]" + "[--rendernode ] [--socket-path ] " +-#ifdef ENABLE_VENUS +- " [--venus]" +-#endif +- " [file]\n", argv[0]); ++ "%s" ++ " [file]\n", argv[0], ven); + exit(EXIT_FAILURE); + break; + } +-- +2.43.0 + diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb index ffe30a9c525..eb7ba1089f6 100644 --- a/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb @@ -12,6 +12,7 @@ DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm" SRCREV = "9c9d55ecbe502e0d71ee99529709efcca69aac42" SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;protocol=https \ file://0001-meson.build-use-python3-directly-for-python.patch \ + file://0001-vtest-Fix-undefined-behavior-with-clang.patch \ " S = "${WORKDIR}/git"