diff --git a/Makefile.inc1 b/Makefile.inc1 index c1e320890d50..ec1ff5f06093 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -982,6 +982,7 @@ distributeworld installworld stageworld: _installcheck_world cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale .if defined(NO_ROOT) + -mkdir -p ${METALOG:H} echo "#${MTREE_MAGIC}" > ${METALOG} .endif .if make(distributeworld) @@ -1644,6 +1645,11 @@ ${_bt}-usr.sbin/nmtree: ${_bt}-lib/libnetbsd _cat= bin/cat .endif +# r264059 support for status= +.if ${BOOTSTRAPPING} < 1100017 +_dd= bin/dd +.endif + # r277259 crunchide: Correct 64-bit section header offset # r281674 crunchide: always include both 32- and 64-bit ELF support # r285986 crunchen: use STRIPBIN rather than STRIP @@ -1670,11 +1676,11 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptree _clang_tblgen= \ lib/clang/libllvmsupport \ lib/clang/libllvmtablegen \ - usr.bin/clang/tblgen \ + usr.bin/clang/llvm-tblgen \ usr.bin/clang/clang-tblgen ${_bt}-usr.bin/clang/clang-tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport -${_bt}-usr.bin/clang/tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport +${_bt}-usr.bin/clang/llvm-tblgen: ${_bt}-lib/clang/libllvmtablegen ${_bt}-lib/clang/libllvmsupport .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly @@ -1696,13 +1702,12 @@ _kerberos5_bootstrap_tools= \ .ORDER: ${_kerberos5_bootstrap_tools:C/^/${_bt}-/g} .endif -.if ${MK_MANDOCDB} != "no" +# r283777 makewhatis(1) replaced with mandoc version which builds a database. +.if ${MK_MANDOCDB} != "no" && ${BOOTSTRAPPING} < 1100075 _libopenbsd?= lib/libopenbsd _makewhatis= lib/libsqlite3 \ usr.bin/mandoc ${_bt}-usr.bin/mandoc: ${_bt}-lib/libopenbsd ${_bt}-lib/libsqlite3 -.else -_makewhatis=usr.bin/makewhatis .endif bootstrap-tools: .PHONY @@ -1719,6 +1724,7 @@ bootstrap-tools: .PHONY ${_dtc} \ ${_awk} \ ${_cat} \ + ${_dd} \ usr.bin/lorder \ ${_libopenbsd} \ ${_makewhatis} \ @@ -1881,7 +1887,7 @@ NXBENV= MAKEOBJDIRPREFIX=${OBJTREE}/nxb \ INSTALL="sh ${.CURDIR}/tools/install.sh" \ PATH=${PATH}:${OBJTREE}/gperf_for_gcc/usr/bin NXBMAKE= ${NXBENV} ${MAKE} \ - TBLGEN=${NXBDESTDIR}/usr/bin/tblgen \ + LLVM_TBLGEN=${NXBDESTDIR}/usr/bin/llvm-tblgen \ CLANG_TBLGEN=${NXBDESTDIR}/usr/bin/clang-tblgen \ MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ MK_GDB=no MK_TESTS=no \ @@ -2079,7 +2085,16 @@ _lib_libradius= lib/libradius .endif .if ${MK_OFED} != "no" -_ofed_lib= contrib/ofed/usr.lib/ +_ofed_lib= contrib/ofed/usr.lib +_prebuild_libs+= contrib/ofed/usr.lib/libosmcomp +_prebuild_libs+= contrib/ofed/usr.lib/libopensm +_prebuild_libs+= contrib/ofed/usr.lib/libibcommon +_prebuild_libs+= contrib/ofed/usr.lib/libibverbs +_prebuild_libs+= contrib/ofed/usr.lib/libibumad + +contrib/ofed/usr.lib/libopensm__L: lib/libthr__L +contrib/ofed/usr.lib/libosmcomp__L: lib/libthr__L +contrib/ofed/usr.lib/libibumad__L: contrib/ofed/usr.lib/libibcommon__L .endif .if ${MK_CASPER} != "no" @@ -2092,7 +2107,7 @@ lib/liblzma__L: lib/libthr__L _generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ${_ofed_lib} .for _DIR in ${LOCAL_LIB_DIRS} -.if exists(${.CURDIR}/${_DIR}/Makefile) +.if exists(${.CURDIR}/${_DIR}/Makefile) && empty(_generic_libs:M${_DIR}) _generic_libs+= ${_DIR} .endif .endfor diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 37ca6e9b8086..21c62008edd6 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -38,6 +38,89 @@ # xargs -n1 | sort | uniq -d; # done +# 20160305: new clang import which bumps version from 3.7.1 to 3.8.0. +OLD_FILES+=usr/bin/macho-dump +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/3.7.1/include/sanitizer +OLD_FILES+=usr/lib/clang/3.7.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/3.7.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/altivec.h +OLD_FILES+=usr/lib/clang/3.7.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/3.7.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/3.7.1/include/cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/3.7.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/3.7.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/3.7.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/3.7.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/3.7.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/3.7.1/include +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/3.7.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/3.7.1/lib +OLD_DIRS+=usr/lib/clang/3.7.1 # 20160301: Remove taskqueue_enqueue_fast OLD_FILES+=usr/share/man/man9/taskqueue_enqueue_fast.9.gz # 20160225: Remove casperd and libcapsicum. @@ -59,6 +142,15 @@ OLD_FILES+=libexec/casper/grp OLD_FILES+=libexec/casper/pwd OLD_FILES+=libexec/casper/random OLD_FILES+=libexec/casper/sysctl +OLD_DIRS+=libexec/casper +OLD_FILES+=usr/lib/libcapsicum.a +OLD_FILES+=usr/lib/libcapsicum.so +OLD_LIBS+=lib/libcapsicum.so.0 +OLD_FILES+=usr/lib/libcapsicum_p.a +OLD_FILES+=usr/lib32/libcapsicum.a +OLD_FILES+=usr/lib32/libcapsicum.so +OLD_LIBS+=usr/lib32/libcapsicum.so.0 +OLD_FILES+=usr/lib32/libcapsicum_p.a # 20160223: functionality from mkulzma(1) merged into mkuzip(1) OLD_FILES+=usr/bin/mkulzma # 20160211: Remove obsolete unbound-control-setup diff --git a/UPDATING b/UPDATING index 2916e9270132..ff4c1845f91d 100644 --- a/UPDATING +++ b/UPDATING @@ -31,6 +31,19 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20160305: + Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please + see the 20141231 entry below for information about prerequisites and + upgrading, if you are not already using clang 3.5.0 or higher. + +20160301: + The AIO subsystem is now a standard part of the kernel. The + VFS_AIO kernel option and aio.ko kernel module have been removed. + Due to stability concerns, asynchronous I/O requests are only + permitted on sockets and raw disks by default. To enable + asynchronous I/O requests on all file types, set the + vfs.aio.enable_unsafe sysctl to a non-zero value. + 20160226: The ELF object manipulation tool objcopy is now provided by the ELF Tool Chain project rather than by GNU binutils. It should be a diff --git a/bin/csh/config_p.h b/bin/csh/config_p.h index 0006fe0e1574..f2d7ebc3c738 100644 --- a/bin/csh/config_p.h +++ b/bin/csh/config_p.h @@ -80,6 +80,7 @@ /****************** local defines *********************/ #if defined(__FreeBSD__) +#define SAVESIGVEC #define NLS_BUGS #define BSD_STYLE_COLORLS /* Use LC_MESSAGES locale category to open the message catalog */ diff --git a/cddl/lib/libdtrace/tcp.d b/cddl/lib/libdtrace/tcp.d index da55c1daf787..ec7350336d5a 100644 --- a/cddl/lib/libdtrace/tcp.d +++ b/cddl/lib/libdtrace/tcp.d @@ -102,6 +102,7 @@ typedef struct tcpsinfo { string tcps_raddr; /* remote address, as a string */ int32_t tcps_state; /* TCP state */ uint32_t tcps_iss; /* Initial sequence # sent */ + uint32_t tcps_irs; /* Initial sequence # received */ uint32_t tcps_suna; /* sequence # sent but unacked */ uint32_t tcps_smax; /* highest sequence number sent */ uint32_t tcps_snxt; /* next sequence # to send */ @@ -112,10 +113,12 @@ typedef struct tcpsinfo { uint32_t tcps_swl1; /* window update seg seq number */ uint32_t tcps_swl2; /* window update seg ack number */ uint32_t tcps_rup; /* receive urgent pointer */ + uint32_t tcps_radv; /* advertised window */ uint32_t tcps_rwnd; /* receive window size */ int32_t tcps_rcv_ws; /* receive window scaling */ uint32_t tcps_cwnd; /* congestion window */ uint32_t tcps_cwnd_ssthresh; /* threshold for congestion avoidance */ + uint32_t tcps_srecover; /* for use in NewReno Fast Recovery */ uint32_t tcps_sack_fack; /* SACK sequence # we have acked */ uint32_t tcps_sack_snxt; /* next SACK seq # for retransmission */ uint32_t tcps_rto; /* round-trip timeout, msec */ @@ -123,6 +126,10 @@ typedef struct tcpsinfo { int tcps_retransmit; /* retransmit send event, boolean */ int tcps_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ int tcps_debug; /* socket has SO_DEBUG set */ + int32_t tcps_dupacks; /* consecutive dup acks received */ + uint32_t tcps_rtttime; /* RTT measurement start time */ + uint32_t tcps_rtseq; /* sequence # being timed */ + uint32_t tcps_ts_recent; /* timestamp echo data */ } tcpsinfo_t; /* @@ -192,6 +199,7 @@ translator tcpsinfo_t < struct tcpcb *p > { inet_ntoa6(&p->t_inpcb->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign); tcps_state = p == NULL ? -1 : p->t_state; tcps_iss = p == NULL ? 0 : p->iss; + tcps_irs = p == NULL ? 0 : p->irs; tcps_suna = p == NULL ? 0 : p->snd_una; tcps_smax = p == NULL ? 0 : p->snd_max; tcps_snxt = p == NULL ? 0 : p->snd_nxt; @@ -201,11 +209,13 @@ translator tcpsinfo_t < struct tcpcb *p > { tcps_snd_ws = p == NULL ? -1 : p->snd_scale; tcps_swl1 = p == NULL ? -1 : p->snd_wl1; tcps_swl2 = p == NULL ? -1 : p->snd_wl2; + tcps_radv = p == NULL ? -1 : p->rcv_adv; tcps_rwnd = p == NULL ? -1 : p->rcv_wnd; tcps_rup = p == NULL ? -1 : p->rcv_up; tcps_rcv_ws = p == NULL ? -1 : p->rcv_scale; tcps_cwnd = p == NULL ? -1 : p->snd_cwnd; tcps_cwnd_ssthresh = p == NULL ? -1 : p->snd_ssthresh; + tcps_srecover = p == NULL ? -1 : p->snd_recover; tcps_sack_fack = p == NULL ? 0 : p->snd_fack; tcps_sack_snxt = p == NULL ? 0 : p->sack_newdata; tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / `hz; @@ -214,6 +224,10 @@ translator tcpsinfo_t < struct tcpcb *p > { tcps_srtt = p == NULL ? -1 : p->t_srtt; /* smoothed RTT in units of (TCP_RTT_SCALE*hz) */ tcps_debug = p == NULL ? 0 : p->t_inpcb->inp_socket->so_options & 1; + tcps_dupacks = p == NULL ? -1 : p->t_dupacks; + tcps_rtttime = p == NULL ? -1 : p->t_rtttime; + tcps_rtseq = p == NULL ? -1 : p->t_rtseq; + tcps_ts_recent = p == NULL ? -1 : p->ts_recent; }; #pragma D binding "1.6.3" translator diff --git a/contrib/compiler-rt/include/sanitizer/asan_interface.h b/contrib/compiler-rt/include/sanitizer/asan_interface.h index 7763389ab257..97ba0ceb0b23 100644 --- a/contrib/compiler-rt/include/sanitizer/asan_interface.h +++ b/contrib/compiler-rt/include/sanitizer/asan_interface.h @@ -110,10 +110,6 @@ extern "C" { void __asan_report_error(void *pc, void *bp, void *sp, void *addr, int is_write, size_t access_size); - // Sets the exit code to use when reporting an error. - // Returns the old value. - int __asan_set_error_exit_code(int exit_code); - // Deprecated. Call __sanitizer_set_death_callback instead. void __asan_set_death_callback(void (*callback)(void)); diff --git a/contrib/compiler-rt/include/sanitizer/common_interface_defs.h b/contrib/compiler-rt/include/sanitizer/common_interface_defs.h index ef645e527119..b2a4bb7b89ee 100644 --- a/contrib/compiler-rt/include/sanitizer/common_interface_defs.h +++ b/contrib/compiler-rt/include/sanitizer/common_interface_defs.h @@ -105,12 +105,31 @@ extern "C" { int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, const void *end); + // Similar to __sanitizer_verify_contiguous_container but returns the address + // of the first improperly poisoned byte otherwise. Returns null if the area + // is poisoned properly. + const void *__sanitizer_contiguous_container_find_bad_address( + const void *beg, const void *mid, const void *end); + // Print the stack trace leading to this call. Useful for debugging user code. void __sanitizer_print_stack_trace(); // Sets the callback to be called right before death on error. // Passing 0 will unset the callback. void __sanitizer_set_death_callback(void (*callback)(void)); + + // Interceptor hooks. + // Whenever a libc function interceptor is called it checks if the + // corresponding weak hook is defined, and it so -- calls it. + // The primary use case is data-flow-guided fuzzing, where the fuzzer needs + // to know what is being passed to libc functions, e.g. memcmp. + // FIXME: implement more hooks. + void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1, + const void *s2, size_t n, int result); + void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1, + const char *s2, size_t n, int result); + void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1, + const char *s2, int result); #ifdef __cplusplus } // extern "C" #endif diff --git a/contrib/compiler-rt/include/sanitizer/coverage_interface.h b/contrib/compiler-rt/include/sanitizer/coverage_interface.h index 404b71e3086f..2dcc09fc8499 100644 --- a/contrib/compiler-rt/include/sanitizer/coverage_interface.h +++ b/contrib/compiler-rt/include/sanitizer/coverage_interface.h @@ -27,9 +27,11 @@ extern "C" { // descriptor. Returns -1 on failure, or if coverage dumping is disabled. // This is intended for use by sandboxing code. intptr_t __sanitizer_maybe_open_cov_file(const char *name); - // Get the number of total unique covered entities (blocks, edges, calls). + // Get the number of unique covered blocks (or edges). // This can be useful for coverage-directed in-process fuzzers. uintptr_t __sanitizer_get_total_unique_coverage(); + // Get the number of unique indirect caller-callee pairs. + uintptr_t __sanitizer_get_total_unique_caller_callee_pairs(); // Reset the basic-block (edge) coverage to the initial state. // Useful for in-process fuzzing to start collecting coverage from scratch. @@ -39,6 +41,13 @@ extern "C" { // Some of the entries in *data will be zero. uintptr_t __sanitizer_get_coverage_guards(uintptr_t **data); + // Set *data to the growing buffer with covered PCs and return the size + // of the buffer. The entries are never zero. + // When only unique pcs are collected, the size is equal to + // __sanitizer_get_total_unique_coverage. + // WARNING: EXPERIMENTAL API. + uintptr_t __sanitizer_get_coverage_pc_buffer(uintptr_t **data); + // The coverage instrumentation may optionally provide imprecise counters. // Rather than exposing the counter values to the user we instead map // the counters to a bitset. diff --git a/contrib/compiler-rt/include/sanitizer/dfsan_interface.h b/contrib/compiler-rt/include/sanitizer/dfsan_interface.h index 84ffd49f8afe..05666f736718 100644 --- a/contrib/compiler-rt/include/sanitizer/dfsan_interface.h +++ b/contrib/compiler-rt/include/sanitizer/dfsan_interface.h @@ -91,16 +91,18 @@ void dfsan_set_write_callback(dfsan_write_callback_t labeled_write_callback); ///