Re: [PATCH] D55828: [clang] [Driver] Disable -faddrsig by default on NetBSD

2018-12-19 Thread Kamil Rytarowski via cfe-commits
On 19.12.2018 22:03, Michał Górny wrote:
> On Wed, 2018-12-19 at 21:51 +0100, Joerg Sonnenberger wrote:
>> On Tue, Dec 18, 2018 at 04:35:54PM +, Michał Górny via Phabricator via 
>> cfe-commits wrote:
>>> mgorny created this revision.
>>> mgorny added reviewers: krytarowski, pcc.
>>>
>>> Avoid passing -faddrsig by default on NetBSD.  This platform is still
>>> using old GNU binutils that crashes on executables containing those
>>> sections.
>>
>> I find that a strange claim, given that many Linux distributions in the
>> wild have much older GNU binutils.
>>
> 
> It only meant that newer versions don't crash, or so I have been told. 
> Nothing more.
> 

GNU strip(1) from NetBSD HEAD (2.27) is randomly affected by this:

http://netbsd.org/~kamil/llvm/strip.txt

GNU strip(1) 2.30 is reported to only output warnings.

This patch should be pulled to older versions.



signature.asc
Description: OpenPGP digital signature
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] r340224 - Teach libc++ to use native NetBSD's max_align_t

2018-08-20 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Mon Aug 20 15:29:20 2018
New Revision: 340224

URL: http://llvm.org/viewvc/llvm-project?rev=340224=rev
Log:
Teach libc++ to use native NetBSD's max_align_t

Summary:
The NetBSD headers ship with max_align_t, that is not
compatible with the fallback version in libc++.

There is no defined a compiler specific symbol in the headers like:
 - __CLANG_MAX_ALIGN_T_DEFINED
 - _GCC_MAX_ALIGN_T
 - __DEFINED_max_align_t

Sponsored by 

Reviewers: chandlerc, dlj, EricWF, joerg

Reviewed By: joerg

Subscribers: bsdjhb, llvm-commits, cfe-commits

Differential Revision: https://reviews.llvm.org/D47814

Modified:
libcxx/trunk/include/cstddef
libcxx/trunk/include/stddef.h

Modified: libcxx/trunk/include/cstddef
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/cstddef?rev=340224=340223=340224=diff
==
--- libcxx/trunk/include/cstddef (original)
+++ libcxx/trunk/include/cstddef Mon Aug 20 15:29:20 2018
@@ -50,7 +50,7 @@ using ::ptrdiff_t;
 using ::size_t;
 
 #if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) || \
-defined(__DEFINED_max_align_t)
+defined(__DEFINED_max_align_t) || defined(__NetBSD__)
 // Re-use the compiler's  max_align_t where possible.
 using ::max_align_t;
 #else

Modified: libcxx/trunk/include/stddef.h
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/stddef.h?rev=340224=340223=340224=diff
==
--- libcxx/trunk/include/stddef.h (original)
+++ libcxx/trunk/include/stddef.h Mon Aug 20 15:29:20 2018
@@ -54,7 +54,7 @@ using std::nullptr_t;
 
 // Re-use the compiler's  max_align_t where possible.
 #if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) && \
-!defined(__DEFINED_max_align_t)
+!defined(__DEFINED_max_align_t) && !defined(__NetBSD__)
 typedef long double max_align_t;
 #endif
 


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r332071 - Support XRay in the NetBSD driver

2018-05-10 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Thu May 10 18:00:38 2018
New Revision: 332071

URL: http://llvm.org/viewvc/llvm-project?rev=332071=rev
Log:
Support XRay in the NetBSD driver

Summary:
While there, perform a small cleanup, reducing delta
with drivers for other OSes.

Sponsored by 

Reviewers: joerg, vitalybuka, dberris

Reviewed By: dberris

Subscribers: llvm-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D46721

Modified:
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=332071=332070=332071=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Thu May 10 18:00:38 2018
@@ -112,7 +112,9 @@ void netbsd::Linker::ConstructJob(Compil
   const InputInfoList ,
   const ArgList ,
   const char *LinkingOutput) const {
-  const Driver  = getToolChain().getDriver();
+  const toolchains::NetBSD  =
+static_cast(getToolChain());
+  const Driver  = ToolChain.getDriver();
   ArgStringList CmdArgs;
 
   if (!D.SysRoot.empty())
@@ -135,7 +137,7 @@ void netbsd::Linker::ConstructJob(Compil
 
   // Many NetBSD architectures support more than one ABI.
   // Determine the correct emulation for ld.
-  switch (getToolChain().getArch()) {
+  switch (ToolChain.getArch()) {
   case llvm::Triple::x86:
 CmdArgs.push_back("-m");
 CmdArgs.push_back("elf_i386");
@@ -143,7 +145,7 @@ void netbsd::Linker::ConstructJob(Compil
   case llvm::Triple::arm:
   case llvm::Triple::thumb:
 CmdArgs.push_back("-m");
-switch (getToolChain().getTriple().getEnvironment()) {
+switch (ToolChain.getTriple().getEnvironment()) {
 case llvm::Triple::EABI:
 case llvm::Triple::GNUEABI:
   CmdArgs.push_back("armelf_nbsd_eabi");
@@ -159,9 +161,9 @@ void netbsd::Linker::ConstructJob(Compil
 break;
   case llvm::Triple::armeb:
   case llvm::Triple::thumbeb:
-arm::appendEBLinkFlags(Args, CmdArgs, getToolChain().getEffectiveTriple());
+arm::appendEBLinkFlags(Args, CmdArgs, ToolChain.getEffectiveTriple());
 CmdArgs.push_back("-m");
-switch (getToolChain().getTriple().getEnvironment()) {
+switch (ToolChain.getTriple().getEnvironment()) {
 case llvm::Triple::EABI:
 case llvm::Triple::GNUEABI:
   CmdArgs.push_back("armelfb_nbsd_eabi");
@@ -179,13 +181,13 @@ void netbsd::Linker::ConstructJob(Compil
   case llvm::Triple::mips64el:
 if (mips::hasMipsAbiArg(Args, "32")) {
   CmdArgs.push_back("-m");
-  if (getToolChain().getArch() == llvm::Triple::mips64)
+  if (ToolChain.getArch() == llvm::Triple::mips64)
 CmdArgs.push_back("elf32btsmip");
   else
 CmdArgs.push_back("elf32ltsmip");
 } else if (mips::hasMipsAbiArg(Args, "64")) {
   CmdArgs.push_back("-m");
-  if (getToolChain().getArch() == llvm::Triple::mips64)
+  if (ToolChain.getArch() == llvm::Triple::mips64)
 CmdArgs.push_back("elf64btsmip");
   else
 CmdArgs.push_back("elf64ltsmip");
@@ -226,16 +228,16 @@ void netbsd::Linker::ConstructJob(Compil
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
 if (!Args.hasArg(options::OPT_shared)) {
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));
+  Args.MakeArgString(ToolChain.GetFilePath("crt0.o")));
 }
 CmdArgs.push_back(
-Args.MakeArgString(getToolChain().GetFilePath("crti.o")));
+Args.MakeArgString(ToolChain.GetFilePath("crti.o")));
 if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie)) {
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtbeginS.o")));
+  Args.MakeArgString(ToolChain.GetFilePath("crtbeginS.o")));
 } else {
   CmdArgs.push_back(
-  Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));
+  Args.MakeArgString(ToolChain.GetFilePath("crtbegin.o")));
 }
   }
 
@@ -248,13 +250,14 @@ void netbsd::Linker::ConstructJob(Compil
   Args.AddAllArgs(CmdArgs, options::OPT_r);
 
   bool NeedsSanitizerDeps = addSanitizerRuntimes(getToolChain(), Args, 
CmdArgs);
+  bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
   AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
 
   unsigned Major, Minor, Micro;
-  getToolChain().getTriple().getOSVersion(Major, Minor, Micro);
+  ToolChain.getTriple().getOSVersion(Major, Minor, Micro);
   bool useLibgcc = true;
   if (Major >= 7 || Major == 0) {
-switch (getToolChain().getArch()) {
+switch (ToolChain.getArch()) {
 case llvm::Triple::aarch64:
 case llvm::Triple::aarch64_be:
 case llvm::Triple::arm:
@@ -278,12 +281,14 @@ void netbsd::Linker::ConstructJob(Compil
   

r332070 - Permit -fxray-instrument for NetBSD/amd64

2018-05-10 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Thu May 10 17:58:55 2018
New Revision: 332070

URL: http://llvm.org/viewvc/llvm-project?rev=332070=rev
Log:
Permit -fxray-instrument for NetBSD/amd64

Summary:
Use the same branch as FreeBSD and OpenBSD.

Sponsored by 

Reviewers: joerg, dberris, vitalybuka

Reviewed By: vitalybuka

Subscribers: emaste, llvm-commits

Differential Revision: https://reviews.llvm.org/D46737

Modified:
cfe/trunk/lib/Driver/XRayArgs.cpp

Modified: cfe/trunk/lib/Driver/XRayArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/XRayArgs.cpp?rev=332070=332069=332070=diff
==
--- cfe/trunk/lib/Driver/XRayArgs.cpp (original)
+++ cfe/trunk/lib/Driver/XRayArgs.cpp Thu May 10 17:58:55 2018
@@ -51,7 +51,8 @@ XRayArgs::XRayArgs(const ToolChain ,
 << (std::string(XRayInstrumentOption) + " on " + Triple.str());
   }
 } else if (Triple.getOS() == llvm::Triple::FreeBSD ||
-   Triple.getOS() == llvm::Triple::OpenBSD) {
+   Triple.getOS() == llvm::Triple::OpenBSD ||
+   Triple.getOS() == llvm::Triple::NetBSD) {
   if (Triple.getArch() != llvm::Triple::x86_64) {
 D.Diag(diag::err_drv_clang_unsupported)
 << (std::string(XRayInstrumentOption) + " on " + Triple.str());


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r326652 - Disable tests of -fsanitize on OpenBSD

2018-03-03 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sat Mar  3 04:28:54 2018
New Revision: 326652

URL: http://llvm.org/viewvc/llvm-project?rev=326652=rev
Log:
Disable tests of -fsanitize on OpenBSD

This causes failures on buildbots:
/export/users/atombot/llvm/clang-atom-d525-fedora-rel/llvm/tools/clang/test/Driver/fsanitize.c:18:29:
 error: expected string not found in input
// CHECK-UNDEFINED-OPENBSD: 
"-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute),?){18}"}}
^
:1:1: note: scanning from here
clang version 7.0.0 (trunk 326648)
^

This will be investigated.

Modified:
cfe/trunk/test/Driver/fsanitize.c

Modified: cfe/trunk/test/Driver/fsanitize.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=326652=326651=326652=diff
==
--- cfe/trunk/test/Driver/fsanitize.c (original)
+++ cfe/trunk/test/Driver/fsanitize.c Sat Mar  3 04:28:54 2018
@@ -14,9 +14,6 @@
 // RUN: %clang -target x86_64-apple-darwin10 -fsanitize=undefined %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-UNDEFINED-DARWIN
 // CHECK-UNDEFINED-DARWIN: 
"-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|function|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute),?){19}"}}
 
-// RUN: %clang -target i386-unknown-openbsd -fsanitize=undefined %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-UNDEFINED-OPENBSD
-// CHECK-UNDEFINED-OPENBSD: 
"-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute),?){18}"}}
-
 // RUN: %clang -target i386-pc-win32 -fsanitize=undefined %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN 
--check-prefix=CHECK-UNDEFINED-WIN32
 // RUN: %clang -target i386-pc-win32 -fsanitize=undefined -x c++ %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN 
--check-prefix=CHECK-UNDEFINED-WIN32 --check-prefix=CHECK-UNDEFINED-WIN-CXX
 // RUN: %clang -target x86_64-pc-win32 -fsanitize=undefined %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN 
--check-prefix=CHECK-UNDEFINED-WIN64
@@ -391,9 +388,6 @@
 // RUN: %clang -target armv7-apple-ios7 -miphoneos-version-min=7.0 
-fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-IOS
 // CHECK-ASAN-IOS: -fsanitize=address
 
-// RUN: %clang -target i386-pc-openbsd -fsanitize=address %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ASAN-OPENBSD
-// CHECK-ASAN-OPENBSD: unsupported option '-fsanitize=address' for target 
'i386-pc-openbsd'
-
 // RUN: %clang -target x86_64-apple-darwin -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-LSAN-X86-64-DARWIN
 // CHECK-LSAN-X86-64-DARWIN-NOT: unsupported option
 


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r326648 - OpenBSD Driver basic sanitiser support

2018-03-03 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sat Mar  3 03:52:52 2018
New Revision: 326648

URL: http://llvm.org/viewvc/llvm-project?rev=326648=rev
Log:
OpenBSD Driver basic sanitiser support

Summary:
Basic support of Sanitiser to follow-up ubsan support in compiler-rt.
Needs to use lld instead of base ld to be fully workable.

Patch by: David CARLIER

Reviewers: krytarowski, vitalybuka, kettenis

Reviewed By: vitalybuka

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D43961

Modified:
cfe/trunk/lib/Driver/ToolChains/OpenBSD.cpp
cfe/trunk/lib/Driver/ToolChains/OpenBSD.h

Modified: cfe/trunk/lib/Driver/ToolChains/OpenBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/OpenBSD.cpp?rev=326648=326647=326648=diff
==
--- cfe/trunk/lib/Driver/ToolChains/OpenBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/OpenBSD.cpp Sat Mar  3 03:52:52 2018
@@ -13,6 +13,7 @@
 #include "CommonArgs.h"
 #include "clang/Driver/Compilation.h"
 #include "clang/Driver/Options.h"
+#include "clang/Driver/SanitizerArgs.h"
 #include "llvm/Option/ArgList.h"
 
 using namespace clang::driver;
@@ -97,6 +98,8 @@ void openbsd::Linker::ConstructJob(Compi
const InputInfoList ,
const ArgList ,
const char *LinkingOutput) const {
+  const toolchains::OpenBSD  =
+  static_cast(getToolChain());
   const Driver  = getToolChain().getDriver();
   ArgStringList CmdArgs;
 
@@ -170,11 +173,13 @@ void openbsd::Linker::ConstructJob(Compi
 Triple.replace(0, 6, "amd64");
   CmdArgs.push_back(
   Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple + "/4.2.1"));
+  CmdArgs.push_back(Args.MakeArgString("-L/usr/lib"));
 
   Args.AddAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
 options::OPT_e, options::OPT_s, options::OPT_t,
 options::OPT_Z_Flag, options::OPT_r});
 
+  bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
   AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
 
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
@@ -186,7 +191,10 @@ void openbsd::Linker::ConstructJob(Compi
   else
 CmdArgs.push_back("-lm");
 }
-
+if (NeedsSanitizerDeps) {
+  CmdArgs.push_back(ToolChain.getCompilerRTArgString(Args, "builtins", 
false));
+  linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
+}
 // FIXME: For some reason GCC passes -lgcc before adding
 // the default system libraries. Just mimic this for now.
 CmdArgs.push_back("-lgcc");
@@ -221,6 +229,19 @@ void openbsd::Linker::ConstructJob(Compi
   C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs, Inputs));
 }
 
+SanitizerMask OpenBSD::getSupportedSanitizers() const {
+  const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
+  const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
+
+  // For future use, only UBsan at the moment
+  SanitizerMask Res = ToolChain::getSupportedSanitizers();
+
+  if (IsX86 || IsX86_64)
+Res |= SanitizerKind::Vptr;
+
+  return Res;
+}
+
 /// OpenBSD - OpenBSD tool chain which can call as(1) and ld(1) directly.
 
 OpenBSD::OpenBSD(const Driver , const llvm::Triple ,

Modified: cfe/trunk/lib/Driver/ToolChains/OpenBSD.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/OpenBSD.h?rev=326648=326647=326648=diff
==
--- cfe/trunk/lib/Driver/ToolChains/OpenBSD.h (original)
+++ cfe/trunk/lib/Driver/ToolChains/OpenBSD.h Sat Mar  3 03:52:52 2018
@@ -64,6 +64,8 @@ public:
   }
   unsigned GetDefaultDwarfVersion() const override { return 2; }
 
+  SanitizerMask getSupportedSanitizers() const override;
+
 protected:
   Tool *buildAssembler() const override;
   Tool *buildLinker() const override;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r326645 - Better OpenBSD frontend support

2018-03-03 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sat Mar  3 03:47:27 2018
New Revision: 326645

URL: http://llvm.org/viewvc/llvm-project?rev=326645=rev
Log:
Better OpenBSD frontend support

Summary:
- Like other *BSD, conditioning certain flags to pass
- To prepare future OpenBSD sanitisers.

Patch by: David CARLIER

Reviewers: dlj, krytarowski, vitalybuka

Reviewed By: vitalybuka

Subscribers: krytarowski, cfe-commits

Differential Revision: https://reviews.llvm.org/D43818

Modified:
cfe/trunk/lib/Driver/ToolChain.cpp
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
cfe/trunk/lib/Driver/ToolChains/Gnu.cpp

Modified: cfe/trunk/lib/Driver/ToolChain.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChain.cpp?rev=326645=326644=326645=diff
==
--- cfe/trunk/lib/Driver/ToolChain.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChain.cpp Sat Mar  3 03:47:27 2018
@@ -329,6 +329,8 @@ StringRef ToolChain::getOSLibName() cons
 return "freebsd";
   case llvm::Triple::NetBSD:
 return "netbsd";
+  case llvm::Triple::OpenBSD:
+return "openbsd";
   case llvm::Triple::Solaris:
 return "sunos";
   default:

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=326645=326644=326645=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Sat Mar  3 03:47:27 2018
@@ -542,12 +542,14 @@ void tools::linkSanitizerRuntimeDeps(con
   // There's no libpthread or librt on RTEMS.
   if (TC.getTriple().getOS() != llvm::Triple::RTEMS) {
 CmdArgs.push_back("-lpthread");
-CmdArgs.push_back("-lrt");
+if (TC.getTriple().getOS() != llvm::Triple::OpenBSD)
+  CmdArgs.push_back("-lrt");
   }
   CmdArgs.push_back("-lm");
   // There's no libdl on all OSes.
   if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
   TC.getTriple().getOS() != llvm::Triple::NetBSD &&
+  TC.getTriple().getOS() != llvm::Triple::OpenBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)
 CmdArgs.push_back("-ldl");
   // Required for backtrace on some OSes

Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=326645=326644=326645=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Sat Mar  3 03:47:27 2018
@@ -242,11 +242,13 @@ static void linkXRayRuntimeDeps(const To
 ArgStringList ) {
   CmdArgs.push_back("--no-as-needed");
   CmdArgs.push_back("-lpthread");
-  CmdArgs.push_back("-lrt");
+  if (TC.getTriple().getOS() != llvm::Triple::OpenBSD)
+CmdArgs.push_back("-lrt");
   CmdArgs.push_back("-lm");
 
   if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
-  TC.getTriple().getOS() != llvm::Triple::NetBSD)
+  TC.getTriple().getOS() != llvm::Triple::NetBSD &&
+  TC.getTriple().getOS() != llvm::Triple::OpenBSD)
 CmdArgs.push_back("-ldl");
 }
 


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r326219 - Handle the NetBSD case in ToolChain::getOSLibName()

2018-02-27 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Tue Feb 27 10:16:47 2018
New Revision: 326219

URL: http://llvm.org/viewvc/llvm-project?rev=326219=rev
Log:
Handle the NetBSD case in ToolChain::getOSLibName()

Return a new CompilerRT Path on NetBSD: "netbsd", instead of
getOS(), which returns a string like "netbsd8.9.12".

Sponsored by 

Modified:
cfe/trunk/lib/Driver/ToolChain.cpp

Modified: cfe/trunk/lib/Driver/ToolChain.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChain.cpp?rev=326219=326218=326219=diff
==
--- cfe/trunk/lib/Driver/ToolChain.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChain.cpp Tue Feb 27 10:16:47 2018
@@ -327,6 +327,8 @@ StringRef ToolChain::getOSLibName() cons
   switch (Triple.getOS()) {
   case llvm::Triple::FreeBSD:
 return "freebsd";
+  case llvm::Triple::NetBSD:
+return "netbsd";
   case llvm::Triple::Solaris:
 return "sunos";
   default:


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r325749 - Revert part of D43378 in this file

2018-02-21 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Wed Feb 21 23:00:29 2018
New Revision: 325749

URL: http://llvm.org/viewvc/llvm-project?rev=325749=rev
Log:
Revert part of D43378 in this file

It causes failure on clang-x86_64-debian-fast.

Modified:
cfe/trunk/test/Driver/XRay/xray-instrument-os.c

Modified: cfe/trunk/test/Driver/XRay/xray-instrument-os.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/XRay/xray-instrument-os.c?rev=325749=325748=325749=diff
==
--- cfe/trunk/test/Driver/XRay/xray-instrument-os.c (original)
+++ cfe/trunk/test/Driver/XRay/xray-instrument-os.c Wed Feb 21 23:00:29 2018
@@ -1,4 +1,4 @@
 // RUN: not %clang -o /dev/null -v -fxray-instrument -c %s
-// REQUIRES: linux
+// XFAIL: -linux-
 // REQUIRES-ANY: amd64, x86_64, x86_64h, arm, aarch64, arm64
 typedef int a;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r325748 - Revert part of r. 325746 D43378

2018-02-21 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Wed Feb 21 22:48:34 2018
New Revision: 325748

URL: http://llvm.org/viewvc/llvm-project?rev=325748=rev
Log:
Revert part of r. 325746 D43378

test/Driver/XRay/xray-shared-noxray.cpp fails on !Linux hosts.

Modified:
cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp

Modified: cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp?rev=325748=325747=325748=diff
==
--- cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp (original)
+++ cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp Wed Feb 21 22:48:34 2018
@@ -8,7 +8,7 @@
 // SHARED-NOT: {{clang_rt\.xray-}}
 // STATIC: {{clang_rt\.xray-}}
 //
-// REQUIRES: enable_shared
+// REQUIRES: linux, enable_shared
 int foo() { return 42; }
 
 #ifdef MAIN


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r325746 - FreeBSD driver / Xray flags moving pthread to compile flags.

2018-02-21 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Wed Feb 21 22:31:40 2018
New Revision: 325746

URL: http://llvm.org/viewvc/llvm-project?rev=325746=rev
Log:
FreeBSD driver / Xray flags moving pthread to compile flags.

Summary:
- Using -lpthread instead, with -pthread the linkage does not work.
-Warning about the -fxray-instrument usage outside of the working cases.

Patch by: David CARLIER

Reviewers: krytarowski, vitalybuka, dberris, emaste

Reviewed By: krytarowski, emaste

Subscribers: srhines, emaste, cfe-commits

Differential Revision: https://reviews.llvm.org/D43378

Modified:
cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp
cfe/trunk/lib/Driver/XRayArgs.cpp
cfe/trunk/test/Driver/XRay/lit.local.cfg
cfe/trunk/test/Driver/XRay/xray-instrument-os.c
cfe/trunk/test/Driver/XRay/xray-shared-noxray.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp?rev=325746=325745=325746=diff
==
--- cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp Wed Feb 21 22:31:40 2018
@@ -136,9 +136,9 @@ static bool addXRayRuntime(const ToolCha
 static void linkXRayRuntimeDeps(const ToolChain , const ArgList ,
 ArgStringList ) {
   CmdArgs.push_back("--no-as-needed");
-  CmdArgs.push_back("-pthread");
   CmdArgs.push_back("-lrt");
   CmdArgs.push_back("-lm");
+  CmdArgs.push_back("-lpthread");
 } 
 
 void freebsd::Linker::ConstructJob(Compilation , const JobAction ,

Modified: cfe/trunk/lib/Driver/XRayArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/XRayArgs.cpp?rev=325746=325745=325746=diff
==
--- cfe/trunk/lib/Driver/XRayArgs.cpp (original)
+++ cfe/trunk/lib/Driver/XRayArgs.cpp Wed Feb 21 22:31:40 2018
@@ -34,7 +34,7 @@ XRayArgs::XRayArgs(const ToolChain ,
   const llvm::Triple  = TC.getTriple();
   if (Args.hasFlag(options::OPT_fxray_instrument,
options::OPT_fnoxray_instrument, false)) {
-if (Triple.getOS() == llvm::Triple::Linux)
+if (Triple.getOS() == llvm::Triple::Linux) {
   switch (Triple.getArch()) {
   case llvm::Triple::x86_64:
   case llvm::Triple::arm:
@@ -49,9 +49,15 @@ XRayArgs::XRayArgs(const ToolChain ,
 D.Diag(diag::err_drv_clang_unsupported)
 << (std::string(XRayInstrumentOption) + " on " + Triple.str());
   }
-else
+} else if (Triple.getOS() == llvm::Triple::FreeBSD) {
+if (Triple.getArch() != llvm::Triple::x86_64) {
+  D.Diag(diag::err_drv_clang_unsupported)
+  << (std::string(XRayInstrumentOption) + " on " + Triple.str());
+}
+} else {
   D.Diag(diag::err_drv_clang_unsupported)
-  << (std::string(XRayInstrumentOption) + " on non-Linux target OS");
+  << (std::string(XRayInstrumentOption) + " on non-supported target 
OS");
+}
 XRayInstrument = true;
 if (const Arg *A =
 Args.getLastArg(options::OPT_fxray_instruction_threshold_,

Modified: cfe/trunk/test/Driver/XRay/lit.local.cfg
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/XRay/lit.local.cfg?rev=325746=325745=325746=diff
==
--- cfe/trunk/test/Driver/XRay/lit.local.cfg (original)
+++ cfe/trunk/test/Driver/XRay/lit.local.cfg Wed Feb 21 22:31:40 2018
@@ -1,15 +1,16 @@
+import platform
 target_triple_components = config.target_triple.split('-')
 config.available_features.update(target_triple_components)
 
 # Only run the tests in platforms where XRay instrumentation is supported.
 supported_targets = [
-'x86_64', 'x86_64h', 'arm', 'aarch64', 'arm64', 'powerpc64le', 'mips',
+'amd64', 'x86_64', 'x86_64h', 'arm', 'aarch64', 'arm64', 'powerpc64le', 
'mips',
 'mipsel', 'mips64', 'mips64el'
 ]
 
 # Only on platforms we support.
 supported_oses = [
-'linux'
+'Linux', 'FreeBSD'
 ]
 
 triple_set = set(target_triple_components)
@@ -17,7 +18,7 @@ if len(triple_set.intersection(supported
   config.unsupported = True
 
 # Do not run for 'android' despite being linux.
-if len(triple_set.intersection(supported_oses)) == 0 or 'android' in 
triple_set:
+if platform.system() not in supported_oses or 'android' in triple_set:
   config.unsupported = True
 
 if config.enable_shared:

Modified: cfe/trunk/test/Driver/XRay/xray-instrument-os.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/XRay/xray-instrument-os.c?rev=325746=325745=325746=diff
==
--- cfe/trunk/test/Driver/XRay/xray-instrument-os.c (original)
+++ cfe/trunk/test/Driver/XRay/xray-instrument-os.c Wed Feb 21 22:31:40 2018
@@ -1,4 +1,4 @@
 // RUN: not %clang -o /dev/null -v -fxray-instrument -c %s
-// XFAIL: -linux-
+// REQUIRES: linux
 

r325593 - Stop linking sanitized applications with -lutil and -lkvm on NetBSD

2018-02-20 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Tue Feb 20 08:27:28 2018
New Revision: 325593

URL: http://llvm.org/viewvc/llvm-project?rev=325593=rev
Log:
Stop linking sanitized applications with -lutil and -lkvm on NetBSD

The proper approach is to rebuild libutil and libkvm with a desired sanitizer.
An alternative approach to reimplement these functions (and other ones like
curses(3), editline(3) etc) does not scale and enforces linkage every single
binary with these libraries.

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=325593=325592=325593=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Tue Feb 20 08:27:28 2018
@@ -550,16 +550,10 @@ void tools::linkSanitizerRuntimeDeps(con
   TC.getTriple().getOS() != llvm::Triple::NetBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)
 CmdArgs.push_back("-ldl");
-  // Required for functions like forkpty on some OSes
-  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
-CmdArgs.push_back("-lutil");
   // Required for backtrace on some OSes
   if (TC.getTriple().getOS() == llvm::Triple::NetBSD ||
   TC.getTriple().getOS() == llvm::Triple::FreeBSD)
 CmdArgs.push_back("-lexecinfo");
-  // Required for kvm (kernel memory interface) on some OSes
-  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
-CmdArgs.push_back("-lkvm");
 }
 
 static void


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r325241 - Adding msan support for FreeBSD

2018-02-15 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Thu Feb 15 06:19:23 2018
New Revision: 325241

URL: http://llvm.org/viewvc/llvm-project?rev=325241=rev
Log:
Adding msan support for FreeBSD

Summary: Enabling memory sanitiser for X86_64 arch only. To match the sanitiser 
counterpart.

Patch by: David CARLIER

Reviewers: krytarowski

Reviewed By: krytarowski

Subscribers: dim, emaste, cfe-commits

Differential Revision: https://reviews.llvm.org/D43148

Modified:
cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp?rev=325241=325240=325241=diff
==
--- cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp Thu Feb 15 06:19:23 2018
@@ -424,5 +424,7 @@ SanitizerMask FreeBSD::getSupportedSanit
 Res |= SanitizerKind::Fuzzer;
 Res |= SanitizerKind::FuzzerNoLink;
   }
+  if (IsX86_64)
+Res |= SanitizerKind::Memory;
   return Res;
 }


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r325238 - Add Xray instrumentation compile-time/link-time support to FreeBSD

2018-02-15 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Thu Feb 15 06:12:21 2018
New Revision: 325238

URL: http://llvm.org/viewvc/llvm-project?rev=325238=rev
Log:
Add Xray instrumentation compile-time/link-time support to FreeBSD

Summary: Similarly to the GNU driver version, adding proper compile and linker 
flags.

Patch by: David CARLIER

Reviewers: vitalybuka, krytarowski, dberris

Reviewed By: krytarowski, dberris

Subscribers: emaste, dberris, cfe-commits

Differential Revision: https://reviews.llvm.org/D43279

Modified:
cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp?rev=325238=325237=325238=diff
==
--- cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp Thu Feb 15 06:12:21 2018
@@ -117,6 +117,30 @@ void freebsd::Assembler::ConstructJob(Co
   C.addCommand(llvm::make_unique(JA, *this, Exec, CmdArgs, Inputs));
 }
 
+static bool addXRayRuntime(const ToolChain , const ArgList ,
+   ArgStringList ) {
+  if (Args.hasArg(options::OPT_shared))
+return false;
+
+  if (Args.hasFlag(options::OPT_fxray_instrument,
+   options::OPT_fnoxray_instrument, false)) {
+CmdArgs.push_back("-whole-archive");
+CmdArgs.push_back(TC.getCompilerRTArgString(Args, "xray", false));
+CmdArgs.push_back("-no-whole-archive");
+return true;
+  }
+  
+  return false;
+}
+
+static void linkXRayRuntimeDeps(const ToolChain , const ArgList ,
+ArgStringList ) {
+  CmdArgs.push_back("--no-as-needed");
+  CmdArgs.push_back("-pthread");
+  CmdArgs.push_back("-lrt");
+  CmdArgs.push_back("-lm");
+} 
+
 void freebsd::Linker::ConstructJob(Compilation , const JobAction ,
const InputInfo ,
const InputInfoList ,
@@ -235,6 +259,7 @@ void freebsd::Linker::ConstructJob(Compi
 AddGoldPlugin(ToolChain, Args, CmdArgs, D.getLTOMode() == LTOK_Thin, D);
 
   bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
+  bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
   AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
 
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
@@ -249,6 +274,8 @@ void freebsd::Linker::ConstructJob(Compi
 }
 if (NeedsSanitizerDeps)
   linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
+if (NeedsXRayDeps)
+  linkXRayRuntimeDeps(ToolChain, Args, CmdArgs);
 // FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding
 // the default system libraries. Just mimic this for now.
 if (Args.hasArg(options::OPT_pg))


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r323387 - FreeBSD needs also execinfo (in sanitizers)

2018-01-24 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Wed Jan 24 15:08:49 2018
New Revision: 323387

URL: http://llvm.org/viewvc/llvm-project?rev=323387=rev
Log:
FreeBSD needs also execinfo (in sanitizers)

Summary: As NetBSD, FreeBSD needs execinfo for backtrace's matters.

Patch by: David CARLIER.

Reviewers: joerg, vitalybuka

Reviewed By: vitalybuka

Subscribers: emaste, krytarowski, cfe-commits

Differential Revision: https://reviews.llvm.org/D42467

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=323387=323386=323387=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Wed Jan 24 15:08:49 2018
@@ -549,11 +549,12 @@ void tools::linkSanitizerRuntimeDeps(con
   TC.getTriple().getOS() != llvm::Triple::NetBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)
 CmdArgs.push_back("-ldl");
-  // Required for forkpty on some OSes
+  // Required for functions like forkpty on some OSes
   if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
 CmdArgs.push_back("-lutil");
   // Required for backtrace on some OSes
-  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD ||
+  TC.getTriple().getOS() == llvm::Triple::FreeBSD)
 CmdArgs.push_back("-lexecinfo");
   // Required for kvm (kernel memory interface) on some OSes
   if (TC.getTriple().getOS() == llvm::Triple::NetBSD)


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r323022 - Link sanitized programs on NetBSD with -lkvm

2018-01-19 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Fri Jan 19 17:03:45 2018
New Revision: 323022

URL: http://llvm.org/viewvc/llvm-project?rev=323022=rev
Log:
Link sanitized programs on NetBSD with -lkvm

Summary:
kvm - kernel memory interface

The kvm(3) functions like kvm_open(), kvm_getargv() or kvm_getenvv()
are used in programs that can request information about a kernel and
its processes. The LLVM sanitizers will make use of them on NetBSD.

Sponsored by 

Reviewers: joerg, vitalybuka, dvyukov

Reviewed By: vitalybuka

Subscribers: llvm-commits, cfe-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D42017

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=323022=323021=323022=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Fri Jan 19 17:03:45 2018
@@ -555,6 +555,9 @@ void tools::linkSanitizerRuntimeDeps(con
   // Required for backtrace on some OSes
   if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
 CmdArgs.push_back("-lexecinfo");
+  // Required for kvm (kernel memory interface) on some OSes
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+CmdArgs.push_back("-lkvm");
 }
 
 static void


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r322469 - Clang counterpart change for fuzzer FreeBSD support

2018-01-14 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sun Jan 14 21:56:44 2018
New Revision: 322469

URL: http://llvm.org/viewvc/llvm-project?rev=322469=rev
Log:
Clang counterpart change for fuzzer FreeBSD support

Summary: Providing fuzzer sanitizer support for FreeBSD (but only for X86/64 
architectures).

Reviewers: kimgr, EricWF, martell

Reviewed By: martell

Patch by David CARLIER.

Subscribers: krytarowski, kimgr, emaste, cfe-commits

Differential Revision: https://reviews.llvm.org/D41809

Modified:
cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp?rev=322469=322468=322469=diff
==
--- cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/FreeBSD.cpp Sun Jan 14 21:56:44 2018
@@ -392,6 +392,8 @@ SanitizerMask FreeBSD::getSupportedSanit
   }
   if (IsX86 || IsX86_64) {
 Res |= SanitizerKind::SafeStack;
+Res |= SanitizerKind::Fuzzer;
+Res |= SanitizerKind::FuzzerNoLink;
   }
   return Res;
 }


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r321060 - Teach clang/NetBSD about additional dependencies for sanitizers

2017-12-18 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Mon Dec 18 23:10:33 2017
New Revision: 321060

URL: http://llvm.org/viewvc/llvm-project?rev=321060=rev
Log:
Teach clang/NetBSD about additional dependencies for sanitizers

Summary:
Sanitizers on NetBSD require additional linkage:

 - libutil for forkpty(3)
 - libexecinfo for backtrace(3)

Sponsored by 

Reviewers: joerg, eugenis, vitalybuka, kcc

Reviewed By: eugenis

Subscribers: #sanitizers, cfe-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D41054

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=321060=321059=321060=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Mon Dec 18 23:10:33 2017
@@ -549,6 +549,12 @@ void tools::linkSanitizerRuntimeDeps(con
   TC.getTriple().getOS() != llvm::Triple::NetBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)
 CmdArgs.push_back("-ldl");
+  // Required for forkpty on some OSes
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+CmdArgs.push_back("-lutil");
+  // Required for backtrace on some OSes
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+CmdArgs.push_back("-lexecinfo");
 }
 
 static void


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r320220 - Don't link NetBSD programs with -ldl in linkXRayRuntimeDeps

2017-12-08 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Fri Dec  8 16:34:01 2017
New Revision: 320220

URL: http://llvm.org/viewvc/llvm-project?rev=320220=rev
Log:
Don't link NetBSD programs with -ldl in linkXRayRuntimeDeps

Summary:
There is no such library on NetBSD, the corresponding functions like dlopen(3) 
are in libc.

Sponsored by 

Reviewers: joerg, vitalybuka, eugenis

Reviewed By: vitalybuka

Subscribers: dberris, llvm-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D41021

Modified:
cfe/trunk/lib/Driver/ToolChains/Gnu.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Gnu.cpp?rev=320220=320219=320220=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Fri Dec  8 16:34:01 2017
@@ -244,7 +244,8 @@ static void linkXRayRuntimeDeps(const To
   CmdArgs.push_back("-lrt");
   CmdArgs.push_back("-lm");
 
-  if (TC.getTriple().getOS() != llvm::Triple::FreeBSD)
+  if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
+  TC.getTriple().getOS() != llvm::Triple::NetBSD)
 CmdArgs.push_back("-ldl");
 }
 


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r320165 - Fix a comment in the code

2017-12-08 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Fri Dec  8 09:38:25 2017
New Revision: 320165

URL: http://llvm.org/viewvc/llvm-project?rev=320165=rev
Log:
Fix a comment in the code

The -ldl library is missing on NetBSD too, make the comment more generic.

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=320165=320164=320165=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Fri Dec  8 09:38:25 2017
@@ -544,7 +544,7 @@ void tools::linkSanitizerRuntimeDeps(con
 CmdArgs.push_back("-lrt");
   }
   CmdArgs.push_back("-lm");
-  // There's no libdl on FreeBSD or RTEMS.
+  // There's no libdl on all OSes.
   if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
   TC.getTriple().getOS() != llvm::Triple::NetBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r319007 - Enable additonal features in NetBSD

2017-11-26 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sun Nov 26 14:24:22 2017
New Revision: 319007

URL: http://llvm.org/viewvc/llvm-project?rev=319007=rev
Log:
Enable additonal features in NetBSD

Summary:
Enable for x86_64:

 - ESan,
 - KASan,
 - MSan.

Enable for x86_64 and i386:

 - Scudo.

These features are under active development and in various level of 
completeness.

Sponsored by 

Reviewers: dvyukov, joerg, vitalybuka, eugenis

Reviewed By: eugenis

Subscribers: llvm-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D40456

Modified:
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=319007=319006=319007=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Sun Nov 26 14:24:22 2017
@@ -425,11 +425,15 @@ SanitizerMask NetBSD::getSupportedSaniti
 Res |= SanitizerKind::Function;
 Res |= SanitizerKind::Leak;
 Res |= SanitizerKind::SafeStack;
+Res |= SanitizerKind::Scudo;
 Res |= SanitizerKind::Vptr;
   }
   if (IsX86_64) {
+Res |= SanitizerKind::Efficiency;
 Res |= SanitizerKind::Fuzzer;
 Res |= SanitizerKind::FuzzerNoLink;
+Res |= SanitizerKind::KernelAddress;
+Res |= SanitizerKind::Memory;
 Res |= SanitizerKind::Thread;
   }
   return Res;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r311365 - Enable libfuzzer on NetBSD/amd64

2017-08-21 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Mon Aug 21 12:12:14 2017
New Revision: 311365

URL: http://llvm.org/viewvc/llvm-project?rev=311365=rev
Log:
Enable libfuzzer on NetBSD/amd64

Summary:
Enable SanitizerKind::Fuzzer and SanitizerKind::FuzzerNoLink on x86_64.

Sponsored by 

Reviewers: joerg, kcc, vitalybuka, george.karpenkov

Reviewed By: vitalybuka

Subscribers: cfe-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D36935

Modified:
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=311365=311364=311365=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Mon Aug 21 12:12:14 2017
@@ -428,6 +428,8 @@ SanitizerMask NetBSD::getSupportedSaniti
 Res |= SanitizerKind::Vptr;
   }
   if (IsX86_64) {
+Res |= SanitizerKind::Fuzzer;
+Res |= SanitizerKind::FuzzerNoLink;
 Res |= SanitizerKind::Thread;
   }
   return Res;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r310649 - Enable bunch of sanitizers on NetBSD/X86 and X86_64

2017-08-10 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Thu Aug 10 11:53:52 2017
New Revision: 310649

URL: http://llvm.org/viewvc/llvm-project?rev=310649=rev
Log:
Enable bunch of sanitizers on NetBSD/X86 and X86_64

Summary:
Enable more sanitizers:
 - i386 and amd64:
 * SanitizerKind::Vptr;
 * SanitizerKind::Leak;
 * SanitizerKind::SafeStack;
 * SanitizerKind::Function;

 - amd64 only:
 * SanitizerKind::Thread;

These sanitizers are in the process of upstreaming to LLVM projects.

Sponsored by 

Reviewers: joerg, dim, vitalybuka, kcc, filcab, fjricci

Reviewed By: vitalybuka

Subscribers: #sanitizers, cfe-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D36482

Modified:
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
cfe/trunk/test/Driver/fsanitize.c

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=310649=310648=310649=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Thu Aug 10 11:53:52 2017
@@ -422,6 +422,13 @@ SanitizerMask NetBSD::getSupportedSaniti
   SanitizerMask Res = ToolChain::getSupportedSanitizers();
   if (IsX86 || IsX86_64) {
 Res |= SanitizerKind::Address;
+Res |= SanitizerKind::Function;
+Res |= SanitizerKind::Leak;
+Res |= SanitizerKind::SafeStack;
+Res |= SanitizerKind::Vptr;
+  }
+  if (IsX86_64) {
+Res |= SanitizerKind::Thread;
   }
   return Res;
 }

Modified: cfe/trunk/test/Driver/fsanitize.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=310649=310648=310649=diff
==
--- cfe/trunk/test/Driver/fsanitize.c (original)
+++ cfe/trunk/test/Driver/fsanitize.c Thu Aug 10 11:53:52 2017
@@ -516,6 +516,29 @@
 // RUN: %clang -target x86_64-unknown-cloudabi -fsanitize=safe-stack %s -### 
2>&1 | FileCheck %s -check-prefix=SAFESTACK-CLOUDABI
 // SAFESTACK-CLOUDABI: "-fsanitize=safe-stack"
 
+// RUN: %clang -target i386--netbsd -fsanitize=address %s -### 2>&1 | 
FileCheck %s -check-prefix=ADDRESS-NETBSD
+// RUN: %clang -target x86_64--netbsd -fsanitize=address %s -### 2>&1 | 
FileCheck %s -check-prefix=ADDRESS-NETBSD
+// ADDRESS-NETBSD: "-fsanitize=address"
+
+// RUN: %clang -target i386--netbsd -fsanitize=vptr %s -### 2>&1 | FileCheck 
%s -check-prefix=VPTR-NETBSD
+// RUN: %clang -target x86_64--netbsd -fsanitize=vptr %s -### 2>&1 | FileCheck 
%s -check-prefix=VPTR-NETBSD
+// VPTR-NETBSD: "-fsanitize=vptr"
+
+// RUN: %clang -target i386--netbsd -fsanitize=safe-stack %s -### 2>&1 | 
FileCheck %s -check-prefix=SAFESTACK-NETBSD
+// RUN: %clang -target x86_64--netbsd -fsanitize=safe-stack %s -### 2>&1 | 
FileCheck %s -check-prefix=SAFESTACK-NETBSD
+// SAFESTACK-NETBSD: "-fsanitize=safe-stack"
+
+// RUN: %clang -target i386--netbsd -fsanitize=function %s -### 2>&1 | 
FileCheck %s -check-prefix=FUNCTION-NETBSD
+// RUN: %clang -target x86_64--netbsd -fsanitize=function %s -### 2>&1 | 
FileCheck %s -check-prefix=FUNCTION-NETBSD
+// FUNCTION-NETBSD: "-fsanitize=function"
+
+// RUN: %clang -target i386--netbsd -fsanitize=leak %s -### 2>&1 | FileCheck 
%s -check-prefix=LEAK-NETBSD
+// RUN: %clang -target x86_64--netbsd -fsanitize=leak %s -### 2>&1 | FileCheck 
%s -check-prefix=LEAK-NETBSD
+// LEAK-NETBSD: "-fsanitize=leak"
+
+// RUN: %clang -target x86_64--netbsd -fsanitize=thread %s -### 2>&1 | 
FileCheck %s -check-prefix=THREAD-NETBSD
+// THREAD-NETBSD: "-fsanitize=thread"
+
 // RUN: %clang -target x86_64-scei-ps4 -fsanitize=function 
-fsanitize=undefined %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-FSAN-UBSAN-PS4
 // CHECK-FSAN-UBSAN-PS4: unsupported option '-fsanitize=function' for target 
'x86_64-scei-ps4'
 // RUN: %clang -target x86_64-scei-ps4 -fsanitize=function %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-FSAN-PS4


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r310245 - Enable LLVM asan support for NetBSD/i386

2017-08-07 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Mon Aug  7 03:57:03 2017
New Revision: 310245

URL: http://llvm.org/viewvc/llvm-project?rev=310245=rev
Log:
Enable LLVM asan support for NetBSD/i386

Summary:
Verified to work and useful to run check-asan, as this target tests 32-bit and 
64-bit execution.

Sponsored by 

Reviewers: joerg, filcab, dim, vitalybuka

Reviewed By: vitalybuka

Subscribers: #sanitizers, cfe-commits

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D36378

Modified:
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=310245=310244=310245=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Mon Aug  7 03:57:03 2017
@@ -417,9 +417,10 @@ void NetBSD::addLibStdCxxIncludePaths(co
 }
 
 SanitizerMask NetBSD::getSupportedSanitizers() const {
+  const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
   const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
   SanitizerMask Res = ToolChain::getSupportedSanitizers();
-  if (IsX86_64) {
+  if (IsX86 || IsX86_64) {
 Res |= SanitizerKind::Address;
   }
   return Res;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r307104 - Enable LLVM asan support for NetBSD/amd64

2017-07-06 Thread Kamil Rytarowski via cfe-commits
On 06.07.2017 14:57, Joerg Sonnenberger wrote:
> On Tue, Jul 04, 2017 at 07:55:56PM -0000, Kamil Rytarowski via cfe-commits 
> wrote:
>> Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=307104=307103=307104=diff
>> ==
>> --- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
>> +++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Tue Jul  4 12:55:56 2017
>> @@ -524,6 +524,7 @@ void tools::linkSanitizerRuntimeDeps(con
>>CmdArgs.push_back("-lm");
>>// There's no libdl on FreeBSD or RTEMS.
>>if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
>> +  TC.getTriple().getOS() != llvm::Triple::NetBSD &&
>>TC.getTriple().getOS() != llvm::Triple::RTEMS)
>>  CmdArgs.push_back("-ldl");
>>  }
> 
> I'd really prefer if we switched to a positive list here, i.e. only link
> libdl on platforms that actually need it. I'm not sure who does, beside
> Linux.
> 
> Joerg
> 

I have no preference.

SunOS (at least SmartOS) ships with ldl. Most GNU systems (HURD, Linux,
KFREEBSD/GNU) use it too. I think the same applies for HPUX, AIX, IRIX
and Darwin?

There are more switches for the same purpose in the code, but for other
kind of instrumentation. At the moment NetBSD isn't used there.



signature.asc
Description: OpenPGP digital signature
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r307104 - Enable LLVM asan support for NetBSD/amd64

2017-07-05 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Tue Jul  4 12:55:56 2017
New Revision: 307104

URL: http://llvm.org/viewvc/llvm-project?rev=307104=rev
Log:
Enable LLVM asan support for NetBSD/amd64

Summary:
Enable LLVM asan sanitizer for NetBSD/amd64.

Don't generate -ldl for dlopen(3)-like functions on NetBSD.
These features are available in libc on NetBSD.

Sponsored by 

Reviewers: joerg, eugenis, kcc, dim

Reviewed By: dim

Subscribers: #clang, #sanitizers

Tags: #clang, #sanitizers

Differential Revision: https://reviews.llvm.org/D34960

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
cfe/trunk/lib/Driver/ToolChains/NetBSD.h

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=307104=307103=307104=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Tue Jul  4 12:55:56 2017
@@ -524,6 +524,7 @@ void tools::linkSanitizerRuntimeDeps(con
   CmdArgs.push_back("-lm");
   // There's no libdl on FreeBSD or RTEMS.
   if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
+  TC.getTriple().getOS() != llvm::Triple::NetBSD &&
   TC.getTriple().getOS() != llvm::Triple::RTEMS)
 CmdArgs.push_back("-ldl");
 }

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp?rev=307104=307103=307104=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.cpp Tue Jul  4 12:55:56 2017
@@ -15,6 +15,7 @@
 #include "clang/Driver/Compilation.h"
 #include "clang/Driver/Driver.h"
 #include "clang/Driver/Options.h"
+#include "clang/Driver/SanitizerArgs.h"
 #include "llvm/Option/ArgList.h"
 
 using namespace clang::driver;
@@ -246,6 +247,7 @@ void netbsd::Linker::ConstructJob(Compil
   Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag);
   Args.AddAllArgs(CmdArgs, options::OPT_r);
 
+  bool NeedsSanitizerDeps = addSanitizerRuntimes(getToolChain(), Args, 
CmdArgs);
   AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
 
   unsigned Major, Minor, Micro;
@@ -279,6 +281,8 @@ void netbsd::Linker::ConstructJob(Compil
   getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
   CmdArgs.push_back("-lm");
 }
+if (NeedsSanitizerDeps)
+  linkSanitizerRuntimeDeps(getToolChain(), CmdArgs);
 if (Args.hasArg(options::OPT_pthread))
   CmdArgs.push_back("-lpthread");
 CmdArgs.push_back("-lc");
@@ -410,3 +414,12 @@ void NetBSD::addLibStdCxxIncludePaths(co
   addLibStdCXXIncludePaths(getDriver().SysRoot, "/usr/include/g++", "", "", "",
"", DriverArgs, CC1Args);
 }
+
+SanitizerMask NetBSD::getSupportedSanitizers() const {
+  const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
+  SanitizerMask Res = ToolChain::getSupportedSanitizers();
+  if (IsX86_64) {
+Res |= SanitizerKind::Address;
+  }
+  return Res;
+}

Modified: cfe/trunk/lib/Driver/ToolChains/NetBSD.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/NetBSD.h?rev=307104=307103=307104=diff
==
--- cfe/trunk/lib/Driver/ToolChains/NetBSD.h (original)
+++ cfe/trunk/lib/Driver/ToolChains/NetBSD.h Tue Jul  4 12:55:56 2017
@@ -66,6 +66,7 @@ public:
   llvm::opt::ArgStringList ) const override;
 
   bool IsUnwindTablesDefault() const override { return true; }
+  SanitizerMask getSupportedSanitizers() const override;
 
 protected:
   Tool *buildAssembler() const override;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D33726: [driver][netbsd] Build and pass `-L` arguments to the linker

2017-06-08 Thread Kamil Rytarowski via cfe-commits
I managed to link a hello world application, however the NetBSD-specific
nits stand for production programs. RPATH is the first difference that
matters.

Unfortunately I'm swamped by other LLVM projects to join LLD.. research
other differences and prepare patches myself.

On 09.06.2017 00:11, Rui Ueyama wrote:
> I don't remember the details, but I believe LLD-generated executables
> are fine with either Linux or on NetBSD
> 
> On Thu, Jun 8, 2017 at 3:08 PM, Kamil Rytarowski  > wrote:
> 
> On 08.06.2017 22:39, Rui Ueyama wrote:
> > On Wed, Jun 7, 2017 at 6:55 AM, Joerg Sonnenberger via Phabricator
> > 
> >>
> wrote:
> >
> > joerg added a comment.
> >
> > In https://reviews.llvm.org/D33726#774105
> 
> >  >, @ruiu wrote:
> >
> > > I'm totally against adding per-OS path knowledge to our linker. 
> Compilers already know include paths and I don't want to maintain another 
> list of paths in the linker. Also this can be more confusing than useful when 
> you are doing cross-linking.
> >
> >
> > The only reason for compilers to maintain that list is for finding
> > crt*.o. They otherwise don't care about the library paths at all.
> > There is no confusion for cross-linking as long as proper sysroot
> > support is used. Which we have been doing on NetBSD for ages.
> >
> >
> > That's not what clang is trying to do for all Unix-like systems (except
> > NetBSD due to the bug), right? The compiler driver actually passes
> > library paths to the linker. If you think that is wrong, you should make
> > a change to stop doing that on all systems. I don't see a reason to not
> > do this only on NetBSD.
> >
> 
> I'm convinced that Joerg is right, that there is need some knowledge on
> the LLD side. I'm more relaxed about -L paths as long as they work for
> regular use-cases, but DT_RPATH vs DT_RUNPATH behaves differently on
> Linux and NetBSD.
> 
> > > For all OSes other than NetBSD, LLD works fine with the clang 
> driver as the driver passes include paths to the linker. I don't see any 
> reason not to do the same thing for NetBSD. That stands even if the linker 
> has to have a list of include paths.
> >
> > Sorry, but this is again ignorant and wrong. The very same problem
> > of build systems calling ld directly apply on most other systems.
> > Even then, the list of linker paths is not the only OS-specific
> > knowledge. Things like the DT_RPATH vs DT_RUNPATH mess, init vs
> > init_array all belong into this category. The list goes on.
> >
> >
> > Repository:
> >   rL LLVM
> >
> > https://reviews.llvm.org/D33726
>   >
> >
> >
> >
> >
> 
> 
> 




signature.asc
Description: OpenPGP digital signature
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D33726: [driver][netbsd] Build and pass `-L` arguments to the linker

2017-06-08 Thread Kamil Rytarowski via cfe-commits
On 08.06.2017 22:39, Rui Ueyama wrote:
> On Wed, Jun 7, 2017 at 6:55 AM, Joerg Sonnenberger via Phabricator
> > wrote:
> 
> joerg added a comment.
> 
> In https://reviews.llvm.org/D33726#774105
> , @ruiu wrote:
> 
> > I'm totally against adding per-OS path knowledge to our linker. 
> Compilers already know include paths and I don't want to maintain another 
> list of paths in the linker. Also this can be more confusing than useful when 
> you are doing cross-linking.
> 
> 
> The only reason for compilers to maintain that list is for finding
> crt*.o. They otherwise don't care about the library paths at all.
> There is no confusion for cross-linking as long as proper sysroot
> support is used. Which we have been doing on NetBSD for ages.
> 
> 
> That's not what clang is trying to do for all Unix-like systems (except
> NetBSD due to the bug), right? The compiler driver actually passes
> library paths to the linker. If you think that is wrong, you should make
> a change to stop doing that on all systems. I don't see a reason to not
> do this only on NetBSD.
> 

I'm convinced that Joerg is right, that there is need some knowledge on
the LLD side. I'm more relaxed about -L paths as long as they work for
regular use-cases, but DT_RPATH vs DT_RUNPATH behaves differently on
Linux and NetBSD.

> > For all OSes other than NetBSD, LLD works fine with the clang driver as 
> the driver passes include paths to the linker. I don't see any reason not to 
> do the same thing for NetBSD. That stands even if the linker has to have a 
> list of include paths.
> 
> Sorry, but this is again ignorant and wrong. The very same problem
> of build systems calling ld directly apply on most other systems.
> Even then, the list of linker paths is not the only OS-specific
> knowledge. Things like the DT_RPATH vs DT_RUNPATH mess, init vs
> init_array all belong into this category. The list goes on.
> 
> 
> Repository:
>   rL LLVM
> 
> https://reviews.llvm.org/D33726 
> 
> 
> 
> 




signature.asc
Description: OpenPGP digital signature
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libunwind] r260001 - Introduce NetBSD support

2016-02-06 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sat Feb  6 12:19:29 2016
New Revision: 260001

URL: http://llvm.org/viewvc/llvm-project?rev=260001=rev
Log:
Introduce NetBSD support

Current FreeBSD and NetBSD code is compatible.

Modified:
libunwind/trunk/src/AddressSpace.hpp

Modified: libunwind/trunk/src/AddressSpace.hpp
URL: 
http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/AddressSpace.hpp?rev=260001=26=260001=diff
==
--- libunwind/trunk/src/AddressSpace.hpp (original)
+++ libunwind/trunk/src/AddressSpace.hpp Sat Feb  6 12:19:29 2016
@@ -35,7 +35,7 @@ namespace libunwind {
 #include "Registers.hpp"
 
 #if _LIBUNWIND_ARM_EHABI
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 
 typedef void *_Unwind_Ptr;
 
@@ -61,7 +61,8 @@ extern EHTEntry __exidx_end;
 #endif // !defined(_LIBUNWIND_IS_BAREMETAL)
 #endif // _LIBUNWIND_ARM_EHABI
 
-#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__)
+#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) || 
\
+defined(__NetBSD__)
 #if _LIBUNWIND_SUPPORT_DWARF_UNWIND && _LIBUNWIND_SUPPORT_DWARF_INDEX
 #include 
 // Macro for machine-independent access to the ELF program headers. This


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libunwind] r259994 - Adapt LLVM_CMAKE_PATH for recent cmake path changes

2016-02-06 Thread Kamil Rytarowski via cfe-commits
Author: kamil
Date: Sat Feb  6 10:23:18 2016
New Revision: 259994

URL: http://llvm.org/viewvc/llvm-project?rev=259994=rev
Log:
Adapt LLVM_CMAKE_PATH for recent cmake path changes

Current LLVM installs CMake files under lib/cmake/llvm.

Modified:
libunwind/trunk/CMakeLists.txt

Modified: libunwind/trunk/CMakeLists.txt
URL: 
http://llvm.org/viewvc/llvm-project/libunwind/trunk/CMakeLists.txt?rev=259994=259993=259994=diff
==
--- libunwind/trunk/CMakeLists.txt (original)
+++ libunwind/trunk/CMakeLists.txt Sat Feb  6 10:23:18 2016
@@ -41,7 +41,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR
 set(LLVM_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include")
 set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
 set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source 
tree")
-set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake")
+set(LLVM_CMAKE_PATH 
"${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
 set(LLVM_LIT_PATH "${LLVM_PATH}/utils/lit/lit.py")
   else ()
 message(FATAL_ERROR "llvm-config not found and LLVM_MAIN_SRC_DIR not 
defined. "
@@ -221,4 +221,3 @@ append_if(LIBUNWIND_COMPILE_FLAGS LIBUNW
 include_directories(include)
 
 add_subdirectory(src)
-


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [Lldb-commits] Buildbot numbers for week of 12/06/2015 - 12/12/2015

2015-12-16 Thread Kamil Rytarowski via cfe-commits
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 15.12.2015 20:23, Galina Kistanova via lldb-commits wrote:
> Hello everyone,
> 
> Below are some buildbot numbers for the last week of 12/06/2015 - 
> 12/12/2015.
> 
> Thanks
> 
> Galina
> 
> 
> 
> Top 10 fastest builders(not docs):
> 
> lldb-amd64-ninja-freebsd11 clang-bpf-build 
> llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast 
> libomp-gcc-x86_64-linux-debian sanitizer-windows llvm-hexagon-elf 
> libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11 
> libcxx-libcxxabi-singlethreaded-x86_64-linux-debian 
> libcxx-libcxxabi-x86_64-linux-debian-noexceptions 
> libcxx-libcxxabi-x86_64-linux-debian
> 
> 
> 10 most slow builders:
> 
> clang-native-arm-lnt-perf clang-atom-d525-fedora 
> clang-native-aarch64-full clang-cmake-thumbv7-a15-full-sh 
> clang-cmake-armv7-a15-selfhost-neon perf-x86_64-penryn-O3 
> clang-cmake-mipsel perf-x86_64-penryn-O3-polly llvm-mips-linux 
> clang-cmake-armv7-a15-selfhost
> 
> 


How these lists of 10 quickest and 10 slowest machines are helping out?

Usual !x86 machines will be always slower than Intel architecture
counter parts.

More interesting will be coverage of the code by OS, Architecture,
ABI, Instruction set etc. Personally I don't care if arm, mips, s390x
or powerpc builds Clang in 1h or 12h - I'm happy they are there at all.

> 
> Number of commits by project:
> 
> project   |   commits 
> ---+--- llvm  |
> 258 lldb  |90 cfe   |
> 89 compiler-rt   |45 lld   |
> 21 libcxx| 6 polly |
> 3 openmp| 3 clang-tools-extra |
> 3 libcxxabi | 1 libunwind |
> 1 --- 520
> 
> 
> Number of completed builds, failed builds and average build time
> for successful builds per active builder:
> 
> buildername   |
> completed | failed | time 
> ---+--
- --++
>
> 
clang-aarch64-lnt | 51
> |  4 | 02:31:19 clang-atom-d525-fedora
> | 15 || 08:58:01 clang-atom-d525-fedora-rel
> | 49 |  2 | 02:21:40 clang-bpf-build
> |272 | 12 | 00:03:10 clang-cmake-aarch64-42vma
> |213 | 24 | 00:19:38 clang-cmake-aarch64-full
> | 37 | 13 | 03:28:30 clang-cmake-aarch64-quick
> |168 |  9 | 00:27:25 clang-cmake-armv7-a15
> |150 | 10 | 00:31:57 clang-cmake-armv7-a15-full
> |118 |  1 | 00:50:50 clang-cmake-armv7-a15-selfhost
> | 28 |  2 | 04:37:24 
> clang-cmake-armv7-a15-selfhost-neon   |
> 21 |  2 | 06:17:58 clang-cmake-mips
> | 82 | 12 | 01:32:08 clang-cmake-mipsel
> | 12 |  1 | 06:00:38 clang-cmake-thumbv7-a15
> |161 |  8 | 00:31:53 
> clang-cmake-thumbv7-a15-full-sh   |
> 11 || 06:39:48 clang-hexagon-elf
> |206 | 72 | 00:17:15 clang-native-aarch64-full
> | 18 |  6 | 07:34:46 clang-native-arm-lnt
> | 44 || 01:15:44 clang-native-arm-lnt-perf
> |  7 || 10:33:02 clang-ppc64-elf-linux
> |100 |  7 | 01:04:00 clang-ppc64-elf-linux2
> | 72 |  3 | 01:33:52 clang-sphinx-docs
> | 97 |  1 | 00:00:22 clang-x64-ninja-win7
> |150 | 36 | 00:35:55 clang-x86-win2008-selfhost
> |102 | 17 | 01:03:28 
> clang-x86_64-darwin13-cross-arm   |
> 200 || 00:20:02 clang-x86_64-darwin13-cross-mingw32
> |186 |  1 | 00:23:37 clang-x86_64-debian-fast
> |119 |  7 | 00:12:34 clang-x86_64-linux-abi-test
> |276 |  2 | 00:16:22 
> clang-x86_64-linux-selfhost-modules   |
> 230 | 50 | 00:15:16 clang-x86_64-ubuntu-gdb-75
> |102 |  7 | 00:58:02 libcxx-libcxxabi-arm-linux
> |  5 || 01:07:24 
> libcxx-libcxxabi-singlethreaded-x86_64-linux-debian   |
> 5 || 00:08:22 libcxx-libcxxabi-x86_64-linux-debian
> |  5 || 00:08:45 
> libcxx-libcxxabi-x86_64-linux-debian-noexceptions |
> 4 || 00:08:28 libcxx-libcxxabi-x86_64-linux-ubuntu-asan
> |  5 || 00:14:23 
> libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03|
> 5 || 00:09:01 
> libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11|
> 5 || 00:08:08 
> libcxx-libcxxabi-x86_64-linux-ubuntu-cxx14|
> 6 || 00:09:43 
> libcxx-libcxxabi-x86_64-linux-ubuntu-cxx1z|
> 6 || 00:09:47 

Re: [PATCH] D14760: Resolve build problem on NetBSD

2015-11-18 Thread Kamil Rytarowski via cfe-commits
krytarowski added a comment.

In http://reviews.llvm.org/D14760#291616, @joerg wrote:

> Are you sure your sources are up-to-date? That file is newly generated in 
> LLVM and no changes outside should be necessary. Are you using cmake or gmake?


Yes. This is also the reason to kill randomly buildbot building.

CMake + ninja: http://lab.llvm.org:8011/builders/lldb-amd64-ninja-netbsd7


Repository:
  rL LLVM

http://reviews.llvm.org/D14760



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits