[PATCH] D113840: [Driver][Android] Remove unneeded isNoExecStackDefault
This revision was automatically updated to reflect the committed changes. Closed by commit rG062ef8f6b472: [Driver][Android] Remove unneeded isNoExecStackDefault (authored by MaskRay). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113840/new/ https://reviews.llvm.org/D113840 Files: clang/include/clang/Driver/ToolChain.h clang/lib/Driver/ToolChain.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/Gnu.cpp clang/lib/Driver/ToolChains/Linux.cpp clang/lib/Driver/ToolChains/Linux.h clang/test/Driver/integrated-as.c clang/test/Driver/linux-as.c clang/test/Driver/linux-ld.c Index: clang/test/Driver/linux-ld.c === --- clang/test/Driver/linux-ld.c +++ clang/test/Driver/linux-ld.c @@ -989,15 +989,6 @@ // CHECK-ANDROID-HASH-STYLE-M: "{{.*}}ld{{(.exe)?}}" // CHECK-ANDROID-HASH-STYLE-M: "--hash-style=gnu" -// RUN: %clang %s -### -o %t.o 2>&1 \ -// RUN: --target=armv7-linux-android21 \ -// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NOEXECSTACK %s -// CHECK-ANDROID-NOEXECSTACK: "{{.*}}ld{{(.exe)?}}" -// CHECK-ANDROID-NOEXECSTACK: "-z" "noexecstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-z" "execstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-z,execstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-zexecstack" - // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: --target=armv7-linux-android21 \ // RUN: | FileCheck --check-prefix=CHECK-ANDROID-WARN-SHARED-TEXTREL %s Index: clang/test/Driver/linux-as.c === --- clang/test/Driver/linux-as.c +++ clang/test/Driver/linux-as.c @@ -108,12 +108,12 @@ // RUN: %clang -target arm-linux-androideabi -### \ // RUN: -no-integrated-as -c %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID %s -// CHECK-ARM-ANDROID: as{{(.exe)?}}" "--noexecstack" "-EL" "-mfloat-abi=soft" +// CHECK-ARM-ANDROID: as{{(.exe)?}}" "-EL" "-mfloat-abi=soft" // // RUN: %clang -target arm-linux-androideabi -march=armv7-a -### \ // RUN: -no-integrated-as -c %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID-SOFTFP %s -// CHECK-ARM-ANDROID-SOFTFP: as{{(.exe)?}}" "--noexecstack" "-EL" "-mfloat-abi=softfp" "-march=armv7-a" +// CHECK-ARM-ANDROID-SOFTFP: as{{(.exe)?}}" "-EL" "-mfloat-abi=softfp" "-march=armv7-a" // // RUN: %clang -target arm-linux-eabi -mhard-float -### \ // RUN: -no-integrated-as -c %s 2>&1 \ Index: clang/test/Driver/integrated-as.c === --- clang/test/Driver/integrated-as.c +++ clang/test/Driver/integrated-as.c @@ -14,8 +14,3 @@ // NOFIAS: -cc1 // NOFIAS: "-fno-verbose-asm" // NOFIAS: -no-integrated-as - -// RUN: %clang -target arm-linux-androideabi -### \ -// RUN: -integrated-as -c %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID %s -// CHECK-ARM-ANDROID: "-mnoexecstack" Index: clang/lib/Driver/ToolChains/Linux.h === --- clang/lib/Driver/ToolChains/Linux.h +++ clang/lib/Driver/ToolChains/Linux.h @@ -44,7 +44,6 @@ bool IsAArch64OutlineAtomicsDefault(const llvm::opt::ArgList ) const override; bool isPIEDefault(const llvm::opt::ArgList ) const override; - bool isNoExecStackDefault() const override; bool IsMathErrnoDefault() const override; SanitizerMask getSupportedSanitizers() const override; void addProfileRTLibs(const llvm::opt::ArgList , Index: clang/lib/Driver/ToolChains/Linux.cpp === --- clang/lib/Driver/ToolChains/Linux.cpp +++ clang/lib/Driver/ToolChains/Linux.cpp @@ -680,10 +680,6 @@ return true; } -bool Linux::isNoExecStackDefault() const { -return getTriple().isAndroid(); -} - bool Linux::IsMathErrnoDefault() const { if (getTriple().isAndroid()) return false; Index: clang/lib/Driver/ToolChains/Gnu.cpp === --- clang/lib/Driver/ToolChains/Gnu.cpp +++ clang/lib/Driver/ToolChains/Gnu.cpp @@ -429,11 +429,6 @@ CmdArgs.push_back("text"); } - if (ToolChain.isNoExecStackDefault()) { -CmdArgs.push_back("-z"); -CmdArgs.push_back("noexecstack"); - } - if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); @@ -707,10 +702,6 @@ } } - if (getToolChain().isNoExecStackDefault()) { - CmdArgs.push_back("--noexecstack"); - } - switch (getToolChain().getArch()) { default: break; Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -2439,7 +2439,7 @@ bool TakeNextArg = false; bool UseRelaxRelocations = C.getDefaultToolChain().useRelaxRelocations(); - bool UseNoExecStack = C.getDefaultToolChain().isNoExecStackDefault();
[PATCH] D113840: [Driver][Android] Remove unneeded isNoExecStackDefault
danalbert accepted this revision. danalbert added a comment. This revision is now accepted and ready to land. Fine by me if this is the default for LLD. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113840/new/ https://reviews.llvm.org/D113840 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D113840: [Driver][Android] Remove unneeded isNoExecStackDefault
pirama edited reviewers, added: srhines; removed: pirama. pirama added a comment. Will defer to Dan's review. I think these changes are safe for the Android platform (where we only use lld). The NDK only supports lld but that does not preclude external users from using other linkers. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113840/new/ https://reviews.llvm.org/D113840 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D113840: [Driver][Android] Remove unneeded isNoExecStackDefault
MaskRay created this revision. MaskRay added reviewers: danalbert, pirama. Herald added a subscriber: danielkiss. MaskRay requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. ld.lld used by Android ignores .note.GNU-stack and defaults to noexecstack, so the `-z noexecstack` linker option is unneeded. The `--noexecstack` assembler option is unneeded because AsmPrinter.cpp prints `.section .note.GNU-stack,"",@progbits` (when `llvm.init.trampoline` is unused), so the assembler won't synthesize an executable .note.GNU-stack. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D113840 Files: clang/include/clang/Driver/ToolChain.h clang/lib/Driver/ToolChain.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/Gnu.cpp clang/lib/Driver/ToolChains/Linux.cpp clang/lib/Driver/ToolChains/Linux.h clang/test/Driver/integrated-as.c clang/test/Driver/linux-as.c clang/test/Driver/linux-ld.c Index: clang/test/Driver/linux-ld.c === --- clang/test/Driver/linux-ld.c +++ clang/test/Driver/linux-ld.c @@ -989,15 +989,6 @@ // CHECK-ANDROID-HASH-STYLE-M: "{{.*}}ld{{(.exe)?}}" // CHECK-ANDROID-HASH-STYLE-M: "--hash-style=gnu" -// RUN: %clang %s -### -o %t.o 2>&1 \ -// RUN: --target=armv7-linux-android21 \ -// RUN: | FileCheck --check-prefix=CHECK-ANDROID-NOEXECSTACK %s -// CHECK-ANDROID-NOEXECSTACK: "{{.*}}ld{{(.exe)?}}" -// CHECK-ANDROID-NOEXECSTACK: "-z" "noexecstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-z" "execstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-z,execstack" -// CHECK-ANDROID-NOEXECSTACK-NOT: "-zexecstack" - // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: --target=armv7-linux-android21 \ // RUN: | FileCheck --check-prefix=CHECK-ANDROID-WARN-SHARED-TEXTREL %s Index: clang/test/Driver/linux-as.c === --- clang/test/Driver/linux-as.c +++ clang/test/Driver/linux-as.c @@ -108,12 +108,12 @@ // RUN: %clang -target arm-linux-androideabi -### \ // RUN: -no-integrated-as -c %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID %s -// CHECK-ARM-ANDROID: as{{(.exe)?}}" "--noexecstack" "-EL" "-mfloat-abi=soft" +// CHECK-ARM-ANDROID: as{{(.exe)?}}" "-EL" "-mfloat-abi=soft" // // RUN: %clang -target arm-linux-androideabi -march=armv7-a -### \ // RUN: -no-integrated-as -c %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID-SOFTFP %s -// CHECK-ARM-ANDROID-SOFTFP: as{{(.exe)?}}" "--noexecstack" "-EL" "-mfloat-abi=softfp" "-march=armv7-a" +// CHECK-ARM-ANDROID-SOFTFP: as{{(.exe)?}}" "-EL" "-mfloat-abi=softfp" "-march=armv7-a" // // RUN: %clang -target arm-linux-eabi -mhard-float -### \ // RUN: -no-integrated-as -c %s 2>&1 \ Index: clang/test/Driver/integrated-as.c === --- clang/test/Driver/integrated-as.c +++ clang/test/Driver/integrated-as.c @@ -14,8 +14,3 @@ // NOFIAS: -cc1 // NOFIAS: "-fno-verbose-asm" // NOFIAS: -no-integrated-as - -// RUN: %clang -target arm-linux-androideabi -### \ -// RUN: -integrated-as -c %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-ARM-ANDROID %s -// CHECK-ARM-ANDROID: "-mnoexecstack" Index: clang/lib/Driver/ToolChains/Linux.h === --- clang/lib/Driver/ToolChains/Linux.h +++ clang/lib/Driver/ToolChains/Linux.h @@ -44,7 +44,6 @@ bool IsAArch64OutlineAtomicsDefault(const llvm::opt::ArgList ) const override; bool isPIEDefault(const llvm::opt::ArgList ) const override; - bool isNoExecStackDefault() const override; bool IsMathErrnoDefault() const override; SanitizerMask getSupportedSanitizers() const override; void addProfileRTLibs(const llvm::opt::ArgList , Index: clang/lib/Driver/ToolChains/Linux.cpp === --- clang/lib/Driver/ToolChains/Linux.cpp +++ clang/lib/Driver/ToolChains/Linux.cpp @@ -680,10 +680,6 @@ return true; } -bool Linux::isNoExecStackDefault() const { -return getTriple().isAndroid(); -} - bool Linux::IsMathErrnoDefault() const { if (getTriple().isAndroid()) return false; Index: clang/lib/Driver/ToolChains/Gnu.cpp === --- clang/lib/Driver/ToolChains/Gnu.cpp +++ clang/lib/Driver/ToolChains/Gnu.cpp @@ -429,11 +429,6 @@ CmdArgs.push_back("text"); } - if (ToolChain.isNoExecStackDefault()) { -CmdArgs.push_back("-z"); -CmdArgs.push_back("noexecstack"); - } - if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); @@ -707,10 +702,6 @@ } } - if (getToolChain().isNoExecStackDefault()) { - CmdArgs.push_back("--noexecstack"); - } - switch (getToolChain().getArch()) { default: break; Index: clang/lib/Driver/ToolChains/Clang.cpp