From db013b28c3d4a92cc007c878eb4d6585ba86dd1a Mon Sep 17 00:00:00 2001 From: Paul Robinson Date: Thu, 28 Apr 2022 09:58:47 -0700 Subject: [PATCH] [PS5] Defaults for -fdeclspec, -ffunction/data-sections --- clang/lib/Driver/ToolChains/Clang.cpp | 4 ++-- clang/lib/Driver/ToolChains/CommonArgs.cpp | 4 ++-- clang/test/Driver/ps4-ps5-toolchain.c | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 clang/test/Driver/ps4-ps5-toolchain.c diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 4c22d33..8c68473 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6441,9 +6441,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.addOptInFlag(CmdArgs, options::OPT_fborland_extensions, options::OPT_fno_borland_extensions); - // -fno-declspec is default, except for PS4. + // -fno-declspec is default, except for PS4/PS5. if (Args.hasFlag(options::OPT_fdeclspec, options::OPT_fno_declspec, - RawTriple.isPS4())) + RawTriple.isPS())) CmdArgs.push_back("-fdeclspec"); else if (Args.hasArg(options::OPT_fno_declspec)) CmdArgs.push_back("-fno-declspec"); // Explicitly disabling __declspec. diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 03a887a..b646a1d 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -486,9 +486,9 @@ llvm::StringRef tools::getLTOParallelism(const ArgList &Args, const Driver &D) { return LtoJobsArg->getValue(); } -// CloudABI uses -ffunction-sections and -fdata-sections by default. +// CloudABI and PS4/PS5 use -ffunction-sections and -fdata-sections by default. bool tools::isUseSeparateSections(const llvm::Triple &Triple) { - return Triple.getOS() == llvm::Triple::CloudABI; + return Triple.getOS() == llvm::Triple::CloudABI || Triple.isPS(); } void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, diff --git a/clang/test/Driver/ps4-ps5-toolchain.c b/clang/test/Driver/ps4-ps5-toolchain.c new file mode 100644 index 0000000..308b80c --- /dev/null +++ b/clang/test/Driver/ps4-ps5-toolchain.c @@ -0,0 +1,7 @@ +// PS4/PS5 miscellaneous toolchain defaults. + +// RUN: %clang -c %s -### -target x86_64-scei-ps4 2>&1 | FileCheck %s +// RUN: %clang -c %s -### -target x86_64-sie-ps5 2>&1 | FileCheck %s +// CHECK-DAG: "-ffunction-sections" +// CHECK-DAG: "-fdata-sections" +// CHECK-DAG: "-fdeclspec" -- 2.7.4