brad created this revision. brad added a reviewer: dim. brad added a project: clang. Herald added subscribers: krytarowski, arichardson, emaste. Herald added a project: All. brad requested review of this revision. Herald added a subscriber: MaskRay.
While looking at other usage of getOSMajorVersion() I noticed if a version number is not included in the FreeBSD triple it won't include the --hash-style=both linker option, but it's checking for 9.0 or newer. Without a version should be the latest. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D144341 Files: clang/lib/Driver/ToolChains/FreeBSD.cpp clang/test/Driver/freebsd.c Index: clang/test/Driver/freebsd.c =================================================================== --- clang/test/Driver/freebsd.c +++ clang/test/Driver/freebsd.c @@ -90,6 +90,9 @@ // 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 +// 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-LDFLAGS8-NOT: --hash-style=both // CHECK-LDFLAGS8: --enable-new-dtags // CHECK-LDFLAGS9: --hash-style=both Index: clang/lib/Driver/ToolChains/FreeBSD.cpp =================================================================== --- clang/lib/Driver/ToolChains/FreeBSD.cpp +++ clang/lib/Driver/ToolChains/FreeBSD.cpp @@ -176,7 +176,7 @@ CmdArgs.push_back("/libexec/ld-elf.so.1"); } const llvm::Triple &T = ToolChain.getTriple(); - if (T.getOSMajorVersion() >= 9) { + if (T.getOSVersion().empty() || T.getOSMajorVersion() >= 9) { if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86()) CmdArgs.push_back("--hash-style=both"); }
Index: clang/test/Driver/freebsd.c =================================================================== --- clang/test/Driver/freebsd.c +++ clang/test/Driver/freebsd.c @@ -90,6 +90,9 @@ // 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 +// 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-LDFLAGS8-NOT: --hash-style=both // CHECK-LDFLAGS8: --enable-new-dtags // CHECK-LDFLAGS9: --hash-style=both Index: clang/lib/Driver/ToolChains/FreeBSD.cpp =================================================================== --- clang/lib/Driver/ToolChains/FreeBSD.cpp +++ clang/lib/Driver/ToolChains/FreeBSD.cpp @@ -176,7 +176,7 @@ CmdArgs.push_back("/libexec/ld-elf.so.1"); } const llvm::Triple &T = ToolChain.getTriple(); - if (T.getOSMajorVersion() >= 9) { + if (T.getOSVersion().empty() || T.getOSMajorVersion() >= 9) { if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86()) CmdArgs.push_back("--hash-style=both"); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits