From d363e35f5b335b15694bd6e8e96166fcf51e510d Mon Sep 17 00:00:00 2001 From: Alexey Rassikhin Date: Mon, 23 Sep 2024 11:09:24 +0300 Subject: [PATCH 1/2] Move sanitize, visibility and inlinesvisibility to shared table. This enable sanitizer flags for C lang. --- src/tools/gcc.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/tools/gcc.lua b/src/tools/gcc.lua index 789830c816..565752cfcb 100644 --- a/src/tools/gcc.lua +++ b/src/tools/gcc.lua @@ -138,6 +138,18 @@ ["C++"] = "-x c++", ["Objective-C"] = "-x objective-c", ["Objective-C++"] = "-x objective-c++", + }, + sanitize = { + Address = "-fsanitize=address", + }, + visibility = { + Default = "-fvisibility=default", + Hidden = "-fvisibility=hidden", + Internal = "-fvisibility=internal", + Protected = "-fvisibility=protected", + }, + inlinesvisibility = { + Hidden = "-fvisibility-inlines-hidden" } } @@ -230,18 +242,6 @@ }, rtti = { Off = "-fno-rtti" - }, - sanitize = { - Address = "-fsanitize=address", - }, - visibility = { - Default = "-fvisibility=default", - Hidden = "-fvisibility=hidden", - Internal = "-fvisibility=internal", - Protected = "-fvisibility=protected", - }, - inlinesvisibility = { - Hidden = "-fvisibility-inlines-hidden" } } From 73d36f40991e221aad2652fd17e277c4e200c0a2 Mon Sep 17 00:00:00 2001 From: Alexey Rassikhin Date: Tue, 24 Sep 2024 11:55:29 +0300 Subject: [PATCH 2/2] Update tests and clang toolchain --- src/tools/clang.lua | 5 ++++- tests/tools/test_gcc.lua | 11 ++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/tools/clang.lua b/src/tools/clang.lua index e9ccf0946e..fbd241657c 100644 --- a/src/tools/clang.lua +++ b/src/tools/clang.lua @@ -65,7 +65,10 @@ symbols = gcc.shared.symbols, unsignedchar = gcc.shared.unsignedchar, omitframepointer = gcc.shared.omitframepointer, - compileas = gcc.shared.compileas + compileas = gcc.shared.compileas, + sanitize = gcc.shared.sanitize, + visibility = gcc.shared.visibility, + inlinesvisibility = gcc.shared.inlinesvisibility } clang.cflags = table.merge(gcc.cflags, { diff --git a/tests/tools/test_gcc.lua b/tests/tools/test_gcc.lua index 0a875b6277..82bf30e6e6 100644 --- a/tests/tools/test_gcc.lua +++ b/tests/tools/test_gcc.lua @@ -389,6 +389,7 @@ sanitize { "Address" } prepare() test.contains({ "-fsanitize=address" }, gcc.getcxxflags(cfg)) + test.contains({ "-fsanitize=address" }, gcc.getcflags(cfg)) test.contains({ "-fsanitize=address" }, gcc.getldflags(cfg)) end @@ -1083,28 +1084,28 @@ function suite.cxxflags_onVisibilityDefault() visibility "Default" prepare() - test.excludes({ "-fvisibility=default" }, gcc.getcflags(cfg)) + test.contains({ "-fvisibility=default" }, gcc.getcflags(cfg)) test.contains({ "-fvisibility=default" }, gcc.getcxxflags(cfg)) end function suite.cxxflags_onVisibilityHidden() visibility "Hidden" prepare() - test.excludes({ "-fvisibility=hidden" }, gcc.getcflags(cfg)) + test.contains({ "-fvisibility=hidden" }, gcc.getcflags(cfg)) test.contains({ "-fvisibility=hidden" }, gcc.getcxxflags(cfg)) end function suite.cxxflags_onVisibilityInternal() visibility "Internal" prepare() - test.excludes({ "-fvisibility=internal" }, gcc.getcflags(cfg)) + test.contains({ "-fvisibility=internal" }, gcc.getcflags(cfg)) test.contains({ "-fvisibility=internal" }, gcc.getcxxflags(cfg)) end function suite.cxxflags_onVisibilityProtected() visibility "Protected" prepare() - test.excludes({ "-fvisibility=protected" }, gcc.getcflags(cfg)) + test.contains({ "-fvisibility=protected" }, gcc.getcflags(cfg)) test.contains({ "-fvisibility=protected" }, gcc.getcxxflags(cfg)) end @@ -1122,7 +1123,7 @@ function suite.cxxflags_onInlinesVisibilityHidden() inlinesvisibility "Hidden" prepare() - test.excludes({ "-fvisibility-inlines-hidden" }, gcc.getcflags(cfg)) + test.contains({ "-fvisibility-inlines-hidden" }, gcc.getcflags(cfg)) test.contains({ "-fvisibility-inlines-hidden" }, gcc.getcxxflags(cfg)) end