<div dir="ltr">I ll in the following minutes push a proposed fix if no one did already.</div><div class="gmail_extra"><br><div class="gmail_quote">On 3 March 2018 at 17:58, Krzysztof Parzyszek via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This broke FreeBSD build:<br>
<br>
cd /w/bld/org/projects/compiler-r<wbr>t/lib/sanitizer_common && /usr/bin/CC -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/w/bld/org/projects/compiler<wbr>-rt/lib/sanitizer_common -I/w/src/<a href="http://llvm.org/projects/compiler-rt/lib/sanitizer_common" rel="noreferrer" target="_blank">llvm.org/projects/com<wbr>piler-rt/lib/sanitizer_common</a> -I/w/bld/org/include -I/w/src/<a href="http://llvm.org/include" rel="noreferrer" target="_blank">llvm.org/include</a> -isystem /usr/local/include -I/w/src/<a href="http://llvm.org/projects/compiler-rt/lib/sanitizer_common/" rel="noreferrer" target="_blank">llvm.org/projects/com<wbr>piler-rt/lib/sanitizer_common/</a><wbr>.. -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability<wbr>-new -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment -Wstring-conversion -ffunction-sections -fdata-sections -Wall -std=c++11 -Wno-unused-parameter -O3    -UNDEBUG   -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability<wbr>-new -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment -Wstring-conversion -ffunction-sections -fdata-sections -Wall -std=c++11 -Wno-unused-parameter -m32 -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -Wframe-larger-than=570 -Wglobal-constructors -o CMakeFiles/RTSanitizerCommonLi<wbr>bc.i386.dir/sanitizer_common_<wbr>libcdep.cc.o -c /w/src/<a href="http://llvm.org/projects/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc" rel="noreferrer" target="_blank">llvm.org/projects/compi<wbr>ler-rt/lib/sanitizer_common/<wbr>sanitizer_common_libcdep.cc</a><br>
In file included from /w/src/<a href="http://llvm.org/projects/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc:14" rel="noreferrer" target="_blank">llvm.org/projects/compi<wbr>ler-rt/lib/sanitizer_common/<wbr>sanitizer_common_libcdep.cc:14</a><wbr>:<br>
/w/src/<a href="http://llvm.org/projects/compiler-rt/lib/sanitizer_common/sanitizer_common.h:948:14" rel="noreferrer" target="_blank">llvm.org/projects/compi<wbr>ler-rt/lib/sanitizer_common/<wbr>sanitizer_common.h:948:14</a>: error: 'operator new' takes type size_t ('unsigned int') as first parameter<br>
inline void *operator new(__sanitizer::operator_new_<wbr>size_type size,<br>
             ^<br>
1 error generated.<br>
*** [projects/compiler-rt/lib/sani<wbr>tizer_common/CMakeFiles/RTSani<wbr>tizerCommonLibc.i386.dir/<wbr>sanitizer_common_libcdep.cc.o] Error code 1<br>
<br>
<br>
-Krzysztof<div><div class="h5"><br>
<br>
<br>
On 3/3/2018 6:12 AM, Kamil Rytarowski via llvm-commits wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Author: kamil<br>
Date: Sat Mar  3 04:12:03 2018<br>
New Revision: 326651<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=326651&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=326651&view=rev</a><br>
Log:<br>
OpenBSD UBsan support enabling SANITIZER_OPENBSD widely<br>
<br>
Summary: Adding OpenBSD platform<br>
<br>
Patch by: David CARLIER<br>
<br>
Reviewers: krytarowski, vitalybuka<br>
<br>
Reviewed By: vitalybuka<br>
<br>
Subscribers: srhines, kubamracek, fedor.sergeev, llvm-commits, #sanitizers<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D44049" rel="noreferrer" target="_blank">https://reviews.llvm.org/D4404<wbr>9</a><br>
<br>
<br>
Modified:<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_errno.h<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_internal_<wbr>defs.h<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_libignore.<wbr>cc<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_platform.h<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_posix.h<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_posix_<wbr>libcdep.cc<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_stacktrace<wbr>.h<br>
     compiler-rt/trunk/lib/sanitiz<wbr>er_common/sanitizer_syscall_<wbr>generic.inc<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_errno.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_errno.h?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_errno<wbr>.h?rev=326651&r1=326650&r2=<wbr>326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_errno.h (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_errno.h Sat Mar  3 04:12:03 2018<br>
@@ -24,7 +24,7 @@<br>
    #if SANITIZER_FREEBSD || SANITIZER_MAC<br>
  #  define __errno_location __error<br>
-#elif SANITIZER_ANDROID || SANITIZER_NETBSD<br>
+#elif SANITIZER_ANDROID || SANITIZER_NETBSD || SANITIZER_OPENBSD<br>
  #  define __errno_location __errno<br>
  #elif SANITIZER_SOLARIS<br>
  #  define __errno_location ___errno<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_internal_<wbr>defs.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_inter<wbr>nal_defs.h?rev=326651&r1=32665<wbr>0&r2=326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_internal_<wbr>defs.h (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_internal_<wbr>defs.h Sat Mar  3 04:12:03 2018<br>
@@ -39,7 +39,8 @@<br>
  #endif<br>
    // TLS is handled differently on different platforms<br>
-#if SANITIZER_LINUX || SANITIZER_NETBSD || SANITIZER_FREEBSD<br>
+#if SANITIZER_LINUX || SANITIZER_NETBSD || \<br>
+  SANITIZER_FREEBSD || SANITIZER_OPENBSD<br>
  # define SANITIZER_TLS_INITIAL_EXEC_ATT<wbr>RIBUTE \<br>
      __attribute__((tls_model("init<wbr>ial-exec"))) thread_local<br>
  #else<br>
@@ -100,7 +101,7 @@<br>
  // FIXME: do we have anything like this on Mac?<br>
  #ifndef SANITIZER_CAN_USE_PREINIT_ARRA<wbr>Y<br>
  #if ((SANITIZER_LINUX && !SANITIZER_ANDROID) || \<br>
-  SANITIZER_FREEBSD) && !defined(PIC)<br>
+  SANITIZER_FREEBSD || SANITIZER_OPENBSD) && !defined(PIC)<br>
  # define SANITIZER_CAN_USE_PREINIT_ARRA<wbr>Y 1<br>
  // Before Solaris 11.4, .preinit_array is fully supported only with GNU ld.<br>
  // FIXME: Check for those conditions.<br>
@@ -159,7 +160,8 @@ typedef long pid_t;<br>
  typedef int pid_t;<br>
  #endif<br>
  -#if SANITIZER_FREEBSD || SANITIZER_NETBSD || SANITIZER_MAC || \<br>
+#if SANITIZER_FREEBSD || SANITIZER_NETBSD || \<br>
+    SANITIZER_OPENBSD || SANITIZER_MAC || \<br>
      (SANITIZER_LINUX && defined(__x86_64__))<br>
  typedef u64 OFF_T;<br>
  #else<br>
@@ -170,7 +172,7 @@ typedef u64  OFF64_T;<br>
  #if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC<br>
  typedef uptr operator_new_size_type;<br>
  #else<br>
-# if defined(__s390__) && !defined(__s390x__)<br>
+# if defined(SANITIZER_OPENBSD) || defined(__s390__) && !defined(__s390x__)<br>
  // Special case: 31-bit s390 has unsigned long as size_t.<br>
  typedef unsigned long operator_new_size_type;<br>
  # else<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_libignore.<wbr>cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_libignore.cc?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_libig<wbr>nore.cc?rev=326651&r1=326650&<wbr>r2=326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_libignore.<wbr>cc (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_libignore.<wbr>cc Sat Mar  3 04:12:03 2018<br>
@@ -9,7 +9,8 @@<br>
    #include "sanitizer_platform.h"<br>
  -#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_NETBSD<br>
+#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || \<br>
+    SANITIZER_NETBSD || SANITIZER_OPENBSD<br>
    #include "sanitizer_libignore.h"<br>
  #include "sanitizer_flags.h"<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_platform.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform.h?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_platf<wbr>orm.h?rev=326651&r1=326650&r2=<wbr>326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_platform.h (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_platform.h Sat Mar  3 04:12:03 2018<br>
@@ -14,8 +14,8 @@<br>
  #define SANITIZER_PLATFORM_H<br>
    #if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \<br>
-  !defined(__APPLE__) && !defined(_WIN32) && !defined(__Fuchsia__) && \<br>
-  !(defined(__sun__) && defined(__svr4__))<br>
+  !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(_WIN32) && \<br>
+  !defined(__Fuchsia__) && !(defined(__sun__) && defined(__srv4__))<br>
  # error "This operating system is not supported"<br>
  #endif<br>
  @@ -37,6 +37,12 @@<br>
  # define SANITIZER_NETBSD 0<br>
  #endif<br>
  +#if defined(__OpenBSD__)<br>
+# define SANITIZER_OPENBSD 1<br>
+#else<br>
+# define SANITIZER_OPENBSD 0<br>
+#endif<br>
+<br>
  #if defined(__sun__) && defined(__svr4__)<br>
  # define SANITIZER_SOLARIS 1<br>
  #else<br>
@@ -100,7 +106,7 @@<br>
    #define SANITIZER_POSIX \<br>
    (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || \<br>
-    SANITIZER_NETBSD || SANITIZER_SOLARIS)<br>
+    SANITIZER_NETBSD || SANITIZER_OPENBSD || SANITIZER_SOLARIS)<br>
    #if __LP64__ || defined(_WIN64)<br>
  #  define SANITIZER_WORDSIZE 64<br>
@@ -296,7 +302,8 @@<br>
  # define SANITIZER_SUPPRESS_LEAK_ON_PTH<wbr>READ_EXIT 0<br>
  #endif<br>
  -#if SANITIZER_FREEBSD || SANITIZER_MAC || SANITIZER_NETBSD || SANITIZER_SOLARIS<br>
+#if SANITIZER_FREEBSD || SANITIZER_MAC || SANITIZER_NETBSD || \<br>
+  SANITIZER_OPENBSD || SANITIZER_SOLARIS<br>
  # define SANITIZER_MADVISE_DONTNEED MADV_FREE<br>
  #else<br>
  # define SANITIZER_MADVISE_DONTNEED MADV_DONTNEED<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.h?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_posix<wbr>.h?rev=326651&r1=326650&r2=<wbr>326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix.h (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix.h Sat Mar  3 04:12:03 2018<br>
@@ -17,6 +17,7 @@<br>
  // This header should NOT include any other headers from sanitizer runtime.<br>
  #include "sanitizer_internal_defs.h"<br>
  #include "sanitizer_platform_limits_net<wbr>bsd.h"<br>
+#include "sanitizer_platform_limits_ope<wbr>nbsd.h"<br>
  #include "sanitizer_platform_limits_pos<wbr>ix.h"<br>
  #include "sanitizer_platform_limits_sol<wbr>aris.h"<br>
  <br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix_<wbr>libcdep.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_posix<wbr>_libcdep.cc?rev=326651&r1=<wbr>326650&r2=326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix_<wbr>libcdep.cc (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_posix_<wbr>libcdep.cc Sat Mar  3 04:12:03 2018<br>
@@ -19,6 +19,7 @@<br>
  #include "sanitizer_common.h"<br>
  #include "sanitizer_flags.h"<br>
  #include "sanitizer_platform_limits_net<wbr>bsd.h"<br>
+#include "sanitizer_platform_limits_ope<wbr>nbsd.h"<br>
  #include "sanitizer_platform_limits_pos<wbr>ix.h"<br>
  #include "sanitizer_platform_limits_sol<wbr>aris.h"<br>
  #include "sanitizer_posix.h"<br>
@@ -42,7 +43,7 @@<br>
  #if SANITIZER_FREEBSD<br>
  // The MAP_NORESERVE define has been removed in FreeBSD 11.x, and even before<br>
  // that, it was never implemented.  So just define it to zero.<br>
-#undef  MAP_NORESERVE<br>
+#undef MAP_NORESERVE<br>
  #define MAP_NORESERVE 0<br>
  #endif<br>
  <br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stacktrace.<wbr>h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_stack<wbr>trace.h?rev=326651&r1=326650&<wbr>r2=326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stacktrace.<wbr>h (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_stacktrace.<wbr>h Sat Mar  3 04:12:03 2018<br>
@@ -23,6 +23,8 @@ static const u32 kStackTraceMax = 256;<br>
  # define SANITIZER_CAN_FAST_UNWIND 0<br>
  #elif SANITIZER_WINDOWS<br>
  # define SANITIZER_CAN_FAST_UNWIND 0<br>
+#elif SANITIZER_OPENBSD<br>
+# define SANITIZER_CAN_FAST_UNWIND 0<br>
  #else<br>
  # define SANITIZER_CAN_FAST_UNWIND 1<br>
  #endif<br>
@@ -30,7 +32,7 @@ static const u32 kStackTraceMax = 256;<br>
  // Fast unwind is the only option on Mac for now; we will need to<br>
  // revisit this macro when slow unwind works on Mac, see<br>
  // <a href="https://github.com/google/sanitizers/issues/137" rel="noreferrer" target="_blank">https://github.com/google/sani<wbr>tizers/issues/137</a><br>
-#if SANITIZER_MAC<br>
+#if SANITIZER_MAC || SANITIZER_OPENBSD<br>
  # define SANITIZER_CAN_SLOW_UNWIND 0<br>
  #else<br>
  # define SANITIZER_CAN_SLOW_UNWIND 1<br>
<br>
Modified: compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_syscall_<wbr>generic.inc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_syscall_generic.inc?rev=326651&r1=326650&r2=326651&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/sa<wbr>nitizer_common/sanitizer_sysca<wbr>ll_generic.inc?rev=326651&r1=<wbr>326650&r2=326651&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_syscall_<wbr>generic.inc (original)<br>
+++ compiler-rt/trunk/lib/sanitize<wbr>r_common/sanitizer_syscall_<wbr>generic.inc Sat Mar  3 04:12:03 2018<br>
@@ -11,7 +11,8 @@<br>
  //<br>
  //===-------------------------<wbr>------------------------------<wbr>---------------===//<br>
  -#if SANITIZER_FREEBSD || SANITIZER_MAC || SANITIZER_NETBSD || SANITIZER_SOLARIS<br>
+#if SANITIZER_FREEBSD || SANITIZER_MAC || SANITIZER_NETBSD || \<br>
+  SANITIZER_OPENBSD || SANITIZER_SOLARIS<br>
  # define SYSCALL(name) SYS_ ## name<br>
  #else<br>
  # define SYSCALL(name) __NR_ ## name<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br>
<br></div></div>
---<br>
This email has been checked for viruses by AVG.<br>
<a href="http://www.avg.com" rel="noreferrer" target="_blank">http://www.avg.com</a><br>
<br>
</blockquote><div class="HOEnZb"><div class="h5">
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>