[PATCH] D144341: [Driver][FreeBSD] Correct usage of --hash-style=both with triple without version
Brad Smith via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 20 16:55:06 PST 2023
brad updated this revision to Diff 498980.
Herald added a subscriber: fedor.sergeev.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144341/new/
https://reviews.llvm.org/D144341
Files:
clang/lib/Driver/ToolChains/FreeBSD.cpp
clang/test/Driver/constructors.c
clang/test/Driver/freebsd.c
Index: clang/test/Driver/freebsd.c
===================================================================
--- clang/test/Driver/freebsd.c
+++ clang/test/Driver/freebsd.c
@@ -81,17 +81,15 @@
// CHECK-RV64I-LD: ld{{.*}}" {{.*}} "-m" "elf64lriscv"
//
// Check that the new linker flags are passed to FreeBSD
-// RUN: %clang --target=x86_64-pc-freebsd8 -m32 %s \
-// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
-// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS8 %s
// RUN: %clang --target=x86_64-pc-freebsd9 -m32 %s \
// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS9 %s
// RUN: %clang --target=x86_64-pc-freebsd10.0 -m32 %s \
// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS9 %s
-// CHECK-LDFLAGS8-NOT: --hash-style=both
-// CHECK-LDFLAGS8: --enable-new-dtags
+// RUN: %clang --target=x86_64-pc-freebsd -m32 %s \
+// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-LDFLAGS9 %s
// CHECK-LDFLAGS9: --hash-style=both
// CHECK-LDFLAGS9: --enable-new-dtags
//
Index: clang/test/Driver/constructors.c
===================================================================
--- clang/test/Driver/constructors.c
+++ clang/test/Driver/constructors.c
@@ -84,7 +84,11 @@
// RUN: %clang -### %s -fsyntax-only 2>&1 \
// RUN: --target=i386-unknown-freebsd11 \
// RUN: | FileCheck --check-prefix=CHECK-NO-INIT-ARRAY %s
-
+//
+// RUN: %clang -### %s -fsyntax-only 2>&1 \
+// RUN: --target=i386-unknown-freebsd \
+// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
+//
// RUN: %clang -### %s -fsyntax-only 2>&1 \
// RUN: --target=i386-unknown-freebsd12 \
// RUN: | FileCheck --check-prefix=CHECK-INIT-ARRAY %s
Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===================================================================
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -175,11 +175,8 @@
CmdArgs.push_back("-dynamic-linker");
CmdArgs.push_back("/libexec/ld-elf.so.1");
}
- const llvm::Triple &T = ToolChain.getTriple();
- if (T.getOSMajorVersion() >= 9) {
- if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86())
- CmdArgs.push_back("--hash-style=both");
- }
+ if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86())
+ CmdArgs.push_back("--hash-style=both");
CmdArgs.push_back("--enable-new-dtags");
}
@@ -404,9 +401,10 @@
}
unsigned FreeBSD::GetDefaultDwarfVersion() const {
- if (getTriple().getOSMajorVersion() < 12)
- return 2;
- return 4;
+ unsigned Major = getTriple().getOSMajorVersion();
+ if (Major >= 12 || Major == 0)
+ return 4;
+ return 2;
}
void FreeBSD::AddClangSystemIncludeArgs(
@@ -550,8 +548,10 @@
void FreeBSD::addClangTargetOptions(const ArgList &DriverArgs,
ArgStringList &CC1Args,
Action::OffloadKind) const {
+ const llvm::Triple &T = getToolChain().getTriple();
if (!DriverArgs.hasFlag(options::OPT_fuse_init_array,
options::OPT_fno_use_init_array,
- getTriple().getOSMajorVersion() >= 12))
+ (T.getOSMajorVersion().empty() ||
+ T.getOSMajorVersion() >= 12)))
CC1Args.push_back("-fno-use-init-array");
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144341.498980.patch
Type: text/x-patch
Size: 3530 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230221/3011f4ef/attachment-0001.bin>
More information about the cfe-commits
mailing list