From 4687e362bb4810c9fe02d0d2019f0ff0b80a17cc Mon Sep 17 00:00:00 2001 From: eastb233 Date: Fri, 12 Sep 2025 16:03:16 +0800 Subject: [PATCH] [NFC] Remove BUILD_FOR_OPENEULER macro for gcc compatible features --- clang/CMakeLists.txt | 2 +- .../clang/Basic/DiagnosticCommonKinds.td | 2 -- .../include/clang/Basic/DiagnosticOptions.def | 2 -- clang/include/clang/Basic/LangOptions.def | 4 +-- clang/include/clang/Basic/TargetInfo.h | 2 -- clang/include/clang/Driver/Options.td | 9 ------ clang/lib/Basic/Targets.cpp | 5 ---- clang/lib/Basic/Targets/AArch64.cpp | 2 -- clang/lib/Basic/Targets/AArch64.h | 2 -- clang/lib/Driver/Driver.cpp | 6 ---- clang/lib/Driver/ToolChains/Clang.cpp | 14 ++++----- clang/lib/Frontend/CompilerInvocation.cpp | 30 ++----------------- clang/test/Driver/arm-abi-lp64.c | 1 - clang/test/Driver/prefix.c | 6 +--- .../test-generate-missing-build-notes.cpp | 1 - clang/test/Driver/test-warnning.c | 8 ++--- .../test/Driver/unknown-std-gcc-compatible.c | 1 - clang/test/Driver/z-args.c | 1 - 18 files changed, 13 insertions(+), 85 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 98fcb6ea1a07..f8285a213555 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -317,7 +317,7 @@ if (LLVM_COMPILER_IS_GCC_COMPATIBLE) endif() endif () -option(BUILD_FOR_OPENEULER "Add gcc compatible options for openEuler toolchain" OFF) +option(BUILD_FOR_OPENEULER "Build support for openeuler" OFF) if (BUILD_FOR_OPENEULER) add_definitions( -DBUILD_FOR_OPENEULER ) endif() diff --git a/clang/include/clang/Basic/DiagnosticCommonKinds.td b/clang/include/clang/Basic/DiagnosticCommonKinds.td index d35445db231e..d28437dae50b 100644 --- a/clang/include/clang/Basic/DiagnosticCommonKinds.td +++ b/clang/include/clang/Basic/DiagnosticCommonKinds.td @@ -318,12 +318,10 @@ def err_target_unknown_cpu : Error<"unknown target CPU '%0'">; def note_valid_options : Note<"valid target CPU values are: %0">; def err_target_unsupported_cpu_for_micromips : Error< "micromips is not supported for target CPU '%0'">; -#ifdef BUILD_FOR_OPENEULER def warning_target_default_abi : Warning< "'%0' is the default abi for this target.">, InGroup; def warning_not_valid_std : Warning<"'%0' is not valid for '%1'.">, InGroup; -#endif def err_target_unknown_abi : Error<"unknown target ABI '%0'">; def err_target_unsupported_abi : Error<"ABI '%0' is not supported on CPU '%1'">; def err_target_unsupported_abi_for_triple : Error< diff --git a/clang/include/clang/Basic/DiagnosticOptions.def b/clang/include/clang/Basic/DiagnosticOptions.def index 5253e951d403..6a322688cc68 100644 --- a/clang/include/clang/Basic/DiagnosticOptions.def +++ b/clang/include/clang/Basic/DiagnosticOptions.def @@ -99,9 +99,7 @@ VALUE_DIAGOPT(MessageLength, 32, 0) DIAGOPT(ShowSafeBufferUsageSuggestions, 1, 0) -#ifdef BUILD_FOR_OPENEULER DIAGOPT(GccCompatible, 1, 0) /// -fgcc-compatible -#endif #undef DIAGOPT #undef ENUM_DIAGOPT diff --git a/clang/include/clang/Basic/LangOptions.def b/clang/include/clang/Basic/LangOptions.def index eb62a4951c65..f25018333e66 100644 --- a/clang/include/clang/Basic/LangOptions.def +++ b/clang/include/clang/Basic/LangOptions.def @@ -468,9 +468,7 @@ LANGOPT(IncrementalExtensions, 1, 0, " True if we want to process statements" BENIGN_LANGOPT(CheckNew, 1, 0, "Do not assume C++ operator new may not return NULL") -#ifdef BUILD_FOR_OPENEULER -LANGOPT(GccCompatible, 1, 0, "Enable gcc compatibility for openEuler.") -#endif +LANGOPT(GccCompatible, 1, 0, "Enable gcc compatible compilation") #undef LANGOPT #undef COMPATIBLE_LANGOPT diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index b2575eb6c334..0ec54bb14f0f 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -1323,10 +1323,8 @@ public: return false; } -#if defined(BUILD_FOR_OPENEULER) /// Check whether this ABI Name is the default one for GNU/GCC Compatibility virtual bool isDefaultABI(const std::string &Name) {return false;} -#endif /// Use the specified unit for FP math. /// diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index eb91501e0f31..344137013ad2 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -888,13 +888,8 @@ def Xopenmp_target : Separate<["-"], "Xopenmp-target">, Group def Xopenmp_target_EQ : JoinedAndSeparate<["-"], "Xopenmp-target=">, Group, HelpText<"Pass to the target offloading toolchain identified by .">, MetaVarName<" ">; -#ifdef BUILD_FOR_OPENEULER def z : JoinedOrSeparate<["-"], "z">, Flags<[LinkerInput]>, HelpText<"Pass -z or -z to the linker">, MetaVarName<"">, -#else -def z : Separate<["-"], "z">, Flags<[LinkerInput]>, - HelpText<"Pass -z to the linker">, MetaVarName<"">, -#endif Group; def offload_link : Flag<["--"], "offload-link">, Group, HelpText<"Use the new offloading linker to perform the link job.">; @@ -1822,7 +1817,6 @@ def fautotune_rank : Flag<["-"], "fautotune-rank">, Group, HelpText<"Generate files necessary for ML-guided ranking">; #endif -#ifdef BUILD_FOR_OPENEULER def fgcc_compatible : Flag<["-"], "fgcc-compatible">, Flags<[CC1Option]>, MarshallingInfoFlag>, @@ -1831,7 +1825,6 @@ def fGNU_compatibility : Flag<["-"], "fGNU-compatibility">, Flags<[CC1Option]>, Alias, HelpText<"Alias for -fgcc_compatible">; def fno_gcc_compatible : Flag<["-"], "fno-gcc-compatible">, Flags<[CC1Option]>; -#endif // Begin sanitizer flags. These should all be core options exposed in all driver // modes. @@ -5262,13 +5255,11 @@ def falign_jumps_EQ : Joined<["-"], "falign-jumps=">, Group, Group; defm peephole2 : BooleanFFlag<"peephole2">, Group; defm aggressive_loop_optiomizations : BooleanFFlag<"aggressive-loop-optiomizations">, Group; def flto_partition_EQ : Joined<["-"], "flto-partition=">, Group; -#endif defm check_new : BoolOption<"f", "check-new", LangOpts<"CheckNew">, DefaultFalse, diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 432f34f94414..4f2caabee89e 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -809,17 +809,12 @@ TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags, // Set the target ABI if specified. if (!Opts->ABI.empty() && !Target->setABI(Opts->ABI)) { -#if defined(BUILD_FOR_OPENEULER) if (Diags.getDiagnosticOptions().GccCompatible && Target->isDefaultABI(Opts->ABI)) { Diags.Report(diag::warning_target_default_abi) << Opts->ABI; } else { Diags.Report(diag::err_target_unknown_abi) << Opts->ABI; return nullptr; } -#else - Diags.Report(diag::err_target_unknown_abi) << Opts->ABI; - return nullptr; -#endif } // Set the fp math unit. diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index 619677c1c1a4..767c5e4e56d2 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -206,11 +206,9 @@ bool AArch64TargetInfo::setABI(const std::string &Name) { return true; } -#if defined(BUILD_FOR_OPENEULER) bool AArch64TargetInfo::isDefaultABI(const std::string &Name) { return Name == "lp64"; } -#endif bool AArch64TargetInfo::validateBranchProtection(StringRef Spec, StringRef, BranchProtectionInfo &BPI, diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h index 77040949fcbe..9e42ddbbea3f 100644 --- a/clang/lib/Basic/Targets/AArch64.h +++ b/clang/lib/Basic/Targets/AArch64.h @@ -95,9 +95,7 @@ public: StringRef getABI() const override; bool setABI(const std::string &Name) override; -#if defined(BUILD_FOR_OPENEULER) bool isDefaultABI(const std::string &Name) override; -#endif bool validateBranchProtection(StringRef Spec, StringRef Arch, BranchProtectionInfo &BPI, diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 6a1c6ca2c867..bb03aaf9f620 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1577,13 +1577,11 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) { // Populate the tool chains for the offloading devices, if any. CreateOffloadingDeviceToolChains(*C, Inputs); -#ifdef BUILD_FOR_OPENEULER if(C->getArgs().hasFlag(options::OPT_fgcc_compatible, options::OPT_fno_gcc_compatible, false)) { getDiags().setDiagnosticGroupWarningAsError("unused-command-line-argument", 0); getDiags().setDiagnosticGroupWarningAsError("ignored-optimization-argument", 0); } -#endif // Construct the list of abstract actions to perform for this compilation. On // MachO targets this uses the driver-driver and universal actions. @@ -2598,7 +2596,6 @@ void Driver::BuildUniversalActions(Compilation &C, const ToolChain &TC, } } -#ifdef BUILD_FOR_OPENEULER llvm::DenseSet ZArgsList{ "defs", "muldefs", "execstack", "noexecstack", "globalaudit", "combreloc", "nocombreloc", "global", "initfirst", "interpose", "lazy", "loadfltr", @@ -2606,7 +2603,6 @@ llvm::DenseSet ZArgsList{ "origin", "relro", "norelro", "separate-code", "noseparate-code", "common", "nocommon", "text", "notext", "textoff" }; -#endif bool Driver::DiagnoseInputExistence(const DerivedArgList &Args, StringRef Value, types::ID Ty, bool TypoCorrect) const { @@ -2684,13 +2680,11 @@ bool Driver::DiagnoseInputExistence(const DerivedArgList &Args, StringRef Value, if (IsCLMode() && Ty == types::TY_Object && !Value.startswith("/")) return true; -#ifdef BUILD_FOR_OPENEULER if (ZArgsList.find(Value) != ZArgsList.end() || Value.starts_with("common-page-size=") || Value.starts_with("max-page-size=") || Value.starts_with("stack-size=")) return true; -#endif Diag(clang::diag::err_drv_no_such_file) << Value; return false; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 0ced202e7844..e1dbafb28804 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2766,12 +2766,10 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, CmdArgs.push_back(Value.data()); } else if (Value == "--version") { D.PrintVersion(C, llvm::outs()); - #ifdef BUILD_FOR_OPENEULER } else if (Value.startswith("--generate-missing-build-notes=") && - Args.hasFlag(options::OPT_fgcc_compatible, - options::OPT_fno_gcc_compatible, false)) { - // Do nothing. - #endif + Args.hasFlag(options::OPT_fgcc_compatible, + options::OPT_fno_gcc_compatible, false)) { + // Do nothing. } else { D.Diag(diag::err_drv_unsupported_option_argument) << A->getSpelling() << Value; @@ -4721,7 +4719,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-triple"); CmdArgs.push_back(Args.MakeArgString(TripleStr)); -#ifdef BUILD_FOR_OPENEULER if (Args.hasFlag(options::OPT_fgcc_compatible, options::OPT_fno_gcc_compatible, false)) { if (Args.hasArg(options::OPT_nostdinc) && !Args.hasArg(options::OPT_iprefix)) { @@ -4748,7 +4745,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-Wno-error=return-type-c-linkage"); // By default, clang reports errors, but gcc reports warnings. // when -Werror is passed don't add -Wno-error=*. - if(!D.getDiags().getWarningsAsErrors()) { + if (!D.getDiags().getWarningsAsErrors()) { CmdArgs.push_back("-Wno-error=implicit-function-declaration"); CmdArgs.push_back("-Wno-error=incompatible-function-pointer-types"); CmdArgs.push_back("-Wno-error=register"); @@ -4758,7 +4755,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-Wno-error=return-type"); CmdArgs.push_back("-Wno-error=reserved-user-defined-literal"); } - //other warnings + // Other warnings CmdArgs.push_back("-Wno-error=cast-align"); CmdArgs.push_back("-Wno-error=enum-conversion"); CmdArgs.push_back("-Wno-error=switch"); @@ -4769,7 +4766,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fgcc-compatible"); } -#endif if (const Arg *MJ = Args.getLastArg(options::OPT_MJ)) { DumpCompilationDatabase(C, MJ->getValue(), TripleStr, Output, Input, Args); diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index d3c6bf6b5530..ca0623932e35 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -817,9 +817,8 @@ static void addDiagnosticArgs(ArgList &Args, OptSpecifier Group, OptSpecifier GroupWithValue, std::vector &Diagnostics) { for (auto *A : Args.filtered(Group)) { -#ifdef BUILD_FOR_OPENEULER - bool GccCompatible = Args.hasFlag(options::OPT_fgcc_compatible, - options::OPT_fno_gcc_compatible, false); + bool GccCompatible = Args.hasFlag(options::OPT_fgcc_compatible, + options::OPT_fno_gcc_compatible, false); if (A->getOption().getKind() == Option::FlagClass) { // The argument is a pure flag (such as OPT_Wall or // OPT_Wdeprecated). Add its name (minus the "W" or "R" at the @@ -847,22 +846,6 @@ static void addDiagnosticArgs(ArgList &Args, OptSpecifier Group, Diagnostics.push_back(A->getValue()); } } -#else - if (A->getOption().getKind() == Option::FlagClass) { - // The argument is a pure flag (such as OPT_Wall or OPT_Wdeprecated). Add - // its name (minus the "W" or "R" at the beginning) to the diagnostics. - Diagnostics.push_back( - std::string(A->getOption().getName().drop_front(1))); - } else if (A->getOption().matches(GroupWithValue)) { - // This is -Wfoo= or -Rfoo=, where foo is the name of the diagnostic - // group. Add only the group name to the diagnostics. - Diagnostics.push_back( - std::string(A->getOption().getName().drop_front(1).rtrim("=-"))); - } else { - // Otherwise, add its value (for OPT_W_Joined and similar). - Diagnostics.push_back(A->getValue()); - } -#endif } } @@ -3559,10 +3542,8 @@ void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts, if (!Opts.RandstructSeed.empty()) GenerateArg(Args, OPT_frandomize_layout_seed_EQ, Opts.RandstructSeed, SA); -#ifdef BUILD_FOR_OPENEULER if (Opts.GccCompatible) GenerateArg(Args, OPT_fgcc_compatible, SA); -#endif } bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, @@ -3626,7 +3607,6 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, // compatible. const LangStandard &Std = LangStandard::getLangStandardForKind(LangStd); if (!IsInputCompatibleWithStandard(IK, Std)) { -#if defined(BUILD_FOR_OPENEULER) if (Args.hasArg(OPT_fgcc_compatible)) { LangStd = LangStandard::lang_unspecified; Diags.Report(diag::warning_not_valid_std) @@ -3635,10 +3615,6 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Diags.Report(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args) << GetInputKindName(IK); } -#else - Diags.Report(diag::err_drv_argument_not_allowed_with) - << A->getAsString(Args) << GetInputKindName(IK); -#endif } } } @@ -4125,9 +4101,7 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Diags.Report(diag::err_drv_hlsl_unsupported_target) << T.str(); } -#ifdef BUILD_FOR_OPENEULER Opts.GccCompatible = Args.hasArg(options::OPT_fgcc_compatible); -#endif return Diags.getNumErrors() == NumErrorsBefore; } diff --git a/clang/test/Driver/arm-abi-lp64.c b/clang/test/Driver/arm-abi-lp64.c index 378a81e2d921..d3365bd426db 100644 --- a/clang/test/Driver/arm-abi-lp64.c +++ b/clang/test/Driver/arm-abi-lp64.c @@ -1,4 +1,3 @@ -// REQUIRES: build_for_openeuler // RUN: not %clang -fgcc-compatible -mabi=lp64 -target aarch64 %s 2>&1 | FileCheck --check-prefix=CHECK-MABI-WARN %s // CHECK-MABI-WARN: warning: 'lp64' is the default abi for this target. // RUN: not %clang -mabi=lp64 -target aarch64 %s 2>&1 | FileCheck --check-prefix=CHECK-MABI-ERROR %s diff --git a/clang/test/Driver/prefix.c b/clang/test/Driver/prefix.c index 7f1cb4672c39..b429187a49d3 100644 --- a/clang/test/Driver/prefix.c +++ b/clang/test/Driver/prefix.c @@ -1,5 +1,3 @@ -// REQUIRES: build_for_openeuler - // RUN: %clang %s // RUN: %clang -iprefix $(dirname `which clang`)/../lib/clang/*/ -iwithprefix include %s // RUN: %clang -iwithprefix include %s @@ -9,6 +7,4 @@ // RUN: not %clang -nostdinc -iprefix "" -iwithprefix include %s #include -int main(void) { -return 0; -} +int main(void) { return 0; } diff --git a/clang/test/Driver/test-generate-missing-build-notes.cpp b/clang/test/Driver/test-generate-missing-build-notes.cpp index 54ac4c66a5b0..87f0211a5b8b 100644 --- a/clang/test/Driver/test-generate-missing-build-notes.cpp +++ b/clang/test/Driver/test-generate-missing-build-notes.cpp @@ -1,4 +1,3 @@ -// REQUIRES: build_for_openeuler // RUN: %clang -### -fgcc-compatible -Wa,--generate-missing-build-notes=yes %s 2>&1 | FileCheck -check-prefix=CHECK-NO-ERROR %s // RUN: %clang -### -fgcc-compatible -Wa,--generate-missing-build-notes=no %s 2>&1 | FileCheck -check-prefix=CHECK-NO-ERROR %s // RUN: %clang -### -fGNU-compatibility -Wa,--generate-missing-build-notes=no %s 2>&1 | FileCheck -check-prefix=CHECK-NO-ERROR %s diff --git a/clang/test/Driver/test-warnning.c b/clang/test/Driver/test-warnning.c index 641f9e3512d5..5837b1636c5e 100644 --- a/clang/test/Driver/test-warnning.c +++ b/clang/test/Driver/test-warnning.c @@ -1,9 +1,7 @@ -// REQUIRES: build_for_openeuler - // RUN: %clang -v -fgcc-compatible -Wno-format-security -Werror=format=2 -Wall %s -// RUN: %clang -v -Wall %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s -// CHECK-ERROR: warning: format string is not a string literal (potentially insecure) -// RUN: %clang -v -Wno-format-security -Werror=format=2 -Wall %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s +// RUN: %clang -v -Wall %s 2>&1 | FileCheck -check-prefix=CHECK-WARNING %s +// CHECK-WARNING: warning: format string is not a string literal (potentially insecure) +// RUN: not %clang -v -Wno-format-security -Werror=format=2 -Wall %s 2>&1 | FileCheck -check-prefix=CHECK-ERROR %s // CHECK-ERROR: error: format string is not a string literal (potentially insecure) #include diff --git a/clang/test/Driver/unknown-std-gcc-compatible.c b/clang/test/Driver/unknown-std-gcc-compatible.c index 435cb1182c82..1c68036cf8fd 100644 --- a/clang/test/Driver/unknown-std-gcc-compatible.c +++ b/clang/test/Driver/unknown-std-gcc-compatible.c @@ -1,4 +1,3 @@ -// REQUIRES: build_for_openeuler // RUN: not %clang -fgcc-compatible -std=c++11 %s 2>&1 | FileCheck --check-prefix=CHECK-WARN-STD %s // CHECK-WARN-STD: warning: '-std=c++11' is not valid for 'C' // RUN: not %clang -std=c++11 %s 2>&1 | FileCheck --check-prefix=CHECK-ERROR-STD %s diff --git a/clang/test/Driver/z-args.c b/clang/test/Driver/z-args.c index 83bb2b570e69..c91f26d9f2e8 100644 --- a/clang/test/Driver/z-args.c +++ b/clang/test/Driver/z-args.c @@ -1,4 +1,3 @@ -// REQUIRES: build_for_openeuler // RUN: %clang -### -znow 2>&1 | FileCheck -check-prefix=CHECK-LINKER %s // CHECK-LINKER: "-z" "now" -- Gitee