aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Continuing efforts to provide hardening of FFS. This change adds aKirk McKusick2018-12-1114-8/+107
| | | | | | | | | | | | | | | | | | | | | | | | | check hash to the filesystem inodes. Access attempts to files associated with an inode with an invalid check hash will fail with EINVAL (Invalid argument). Access is reestablished after an fsck is run to find and validate the inodes with invalid check-hashes. This check avoids a class of filesystem panics related to corrupted inodes. The hash is done using crc32c. Note this check-hash is for the inode itself and not any of its indirect blocks. Check-hash validation may be extended to also cover indirect block pointers, but that will be a separate (and more costly) feature. Check hashes are added only to UFS2 and not to UFS1 as UFS1 is primarily used in embedded systems with small memories and low-powered processors which need as light-weight a filesystem as possible. Reviewed by: kib Tested by: Peter Holm Sponsored by: Netflix Notes: svn path=/head/; revision=341836
* pf tests: Use the ATF cleanup infrastructure in the ioctl testsKristof Provost2018-12-111-18/+72
| | | | | | | | | | | | Use ATF_TC_CLEANUP(), because that means the cleanup code will get called even if a test fails. Before it would only be executed if every test within the body succeeded. Reported by: Marie Helene Kvello-Aune <marieheleneka@gmail.com> MFC after: 2 weeks Notes: svn path=/head/; revision=341835
* pf tests: ioctl tests require root rightsKristof Provost2018-12-111-18/+108
| | | | | | | | | | | Explicitly mark these tests as requiring root rights. We need to be able to open /dev/pf. Reported by: Marie Helene Kvello-Aune <marieheleneka@gmail.com> MFC after: 2 weeks Notes: svn path=/head/; revision=341834
* pf: Prevent integer overflow in PF when calculating the adaptive timeout.Kristof Provost2018-12-111-3/+5
| | | | | | | | | | | | | | Mainly states of established TCP connections would be affected resulting in immediate state removal once the number of states is bigger than adaptive.start. Disabling adaptive timeouts is a workaround to avoid this bug. Issue found and initial diff by Mathieu Blanc (mathieu.blanc at cea dot fr) Reported by: Andreas Longwitz <longwitz AT incore.de> Obtained from: OpenBSD MFC after: 2 weeks Notes: svn path=/head/; revision=341833
* Remove a dead file. CVS was removed in r251794.Bjoern A. Zeeb2018-12-111-2/+0
| | | | Notes: svn path=/head/; revision=341832
* Allow CTL device specification in bhyve virtio-scsi.Alexander Motin2018-12-112-23/+35
| | | | | | | | | | | | | | | | | | | | | | | There was a large refactoring done in CTL to allow multiple ioctl frontend ports (and respective devices) to be created, particularly for bhyve. Unfortunately, respective part of bhyve functionality got lost somehow from the original virtio-scsi commit. This change allows wanted device path to be specified in either of two ways: -s 6,virtio-scsi,/dev/cam/ctl1.1 -s 6,virtio-scsi,dev=/dev/cam/ctl2.3 If neither is specified, the default /dev/cam/ctl device is used. While there, remove per-queue CTL device opening, which makes no sense at this point. Reported by: wg Reviewed by: araujo MFC after: 3 days Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D18504 Notes: svn path=/head/; revision=341829
* Remove unused argument to priv_check_cred.Mateusz Guzik2018-12-1148-161/+148
| | | | | | | | | | | | | | | | Patch mostly generated with cocinnelle: @@ expression E1,E2; @@ - priv_check_cred(E1,E2,0) + priv_check_cred(E1,E2) Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=341827
* Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ toDimitry Andric2018-12-115648-256895/+471599
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the upstream release_70 branch r348686 (effectively, 7.0.1 rc3). The release will follow very soon, but no more functional changes are expected. Release notes for llvm, clang and lld 7.0.0 are available here: <http://releases.llvm.org/7.0.0/docs/ReleaseNotes.html> <http://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/7.0.0/tools/lld/docs/ReleaseNotes.html> PR: 230240, 230355 Relnotes: yes MFC after: 2 months Notes: svn path=/head/; revision=341825
| * Set tentative merge date, and add UPDATING note.Dimitry Andric2018-12-112-1/+7
| | | | | | | | Notes: svn path=/projects/clang700-import/; revision=341823
| * Merge ^/head r341764 through r341812.Dimitry Andric2018-12-1146-239/+819
| |\ | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=341813
| * | For arm and armv6, only enable LLVM target support for arm by default,Dimitry Andric2018-12-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to shrink libllvm.a. This is a workaround for "relocation truncated to fit" errors with BFD ld 2.17.50 on arm and armv6, when linking executables against it. The required range extensions are not yet supported by this very old version of BFD ld. When arm and armv6 userland can be successfully linked by lld, this workaround can be removed. Notes: svn path=/projects/clang700-import/; revision=341812
| * | Merge ^/head r340918 through r341763.Dimitry Andric2018-12-091087-31810/+108440
| |\ \ | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=341764
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| | \ \
| *---------. \ \ Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branchDimitry Andric2018-12-0957-313/+646
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r348686 (effectively 7.0.1 rc3), resolve conflicts, and bump version numbers. PR: 230240, 230355 Notes: svn path=/projects/clang700-import/; revision=341763
| | | | | | | * | | Vendor import of llvm release_70 branch r348686:vendor/llvm/llvm-release_701-r349250vendor/llvm/llvm-release_70-r348686vendor/llvm-70Dimitry Andric2018-12-0814-153/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/llvm/branches/release_70@348686 Notes: svn path=/vendor/llvm/dist-release_70/; revision=341728 svn path=/vendor/llvm/llvm-release_701-r349250/; revision=342116; tag=vendor/llvm/llvm-release_701-r349250
| | | | | | | * | | Vendor import of llvm release_70 branch r348011:vendor/llvm/llvm-release_70-r348011Dimitry Andric2018-12-0147-281/+2386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/llvm/branches/release_70@348011 Notes: svn path=/vendor/llvm/dist-release_70/; revision=341365 svn path=/vendor/llvm/llvm-release_70-r348011/; revision=341366; tag=vendor/llvm/llvm-release_70-r348011
| | | | | | * | | | Vendor import of lldb release_70 branch r348011:vendor/lldb/lldb-release_701-r349250vendor/lldb/lldb-release_70-r348686vendor/lldb/lldb-release_70-r348011vendor/lldb-70Dimitry Andric2018-12-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/lldb/branches/release_70@348011 Notes: svn path=/vendor/lldb/dist-release_70/; revision=341372 svn path=/vendor/lldb/lldb-release_701-r349250/; revision=342122; tag=vendor/lldb/lldb-release_701-r349250
| | | | * | | | | | Vendor import of libc++ release_70 branch r348686:vendor/libc++/libc++-release_701-r349250vendor/libc++/libc++-release_70-r348686vendor/libc++-70Dimitry Andric2018-12-082-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/libcxx/branches/release_70@348686 Notes: svn path=/vendor/libc++/dist-release_70/; revision=341733 svn path=/vendor/libc++/libc++-release_701-r349250/; revision=342120; tag=vendor/libc++/libc++-release_701-r349250
| | * | | | | | | | Vendor import of clang release_70 branch r348686:vendor/clang/clang-release_70-r348686Dimitry Andric2018-12-0815-116/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/cfe/branches/release_70@348686 Notes: svn path=/vendor/clang/dist-release_70/; revision=341730 svn path=/vendor/clang/clang-release_70-r348686/; revision=341731; tag=vendor/clang/clang-release_70-r348686
| | * | | | | | | | Vendor import of clang release_70 branch r348011:vendor/clang/clang-release_70-r348011Dimitry Andric2018-12-0121-165/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/cfe/branches/release_70@348011 Notes: svn path=/vendor/clang/dist-release_70/; revision=341367 svn path=/vendor/clang/clang-release_70-r348011/; revision=341368; tag=vendor/clang/clang-release_70-r348011
| * | | | | | | | | Merge ^/head r340869 through r340917.Dimitry Andric2018-11-2541-839/+1146
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340918
| * \ \ \ \ \ \ \ \ \ Merge ^/head r340427 through r340868.Dimitry Andric2018-11-24976-51370/+77471
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340869
| * \ \ \ \ \ \ \ \ \ \ Merge ^/head r340368 through r340426.Dimitry Andric2018-11-14105-1687/+2360
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340427
| * \ \ \ \ \ \ \ \ \ \ \ Merge ^/head r340235 through r340367.Dimitry Andric2018-11-12711-8563/+27052
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340368
| * \ \ \ \ \ \ \ \ \ \ \ \ Merge ^/head r340213 through r340234.Dimitry Andric2018-11-0719-94/+142
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340235
| * \ \ \ \ \ \ \ \ \ \ \ \ \ Merge ^/head r340126 through r340212.Dimitry Andric2018-11-07218-4164/+26363
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340234
| * | | | | | | | | | | | | | | Update LLVM_VERSION_PATCH define in llvm-config.h.Dimitry Andric2018-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340131
| * | | | | | | | | | | | | | | Merge ^/head r339813 through r340125.Dimitry Andric2018-11-04477-304727/+318259
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=340126
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| *---------. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branchDimitry Andric2018-11-0435-280/+397
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|_|_|_|_|_|_|/ / / / / / / / | | |/| | | | | | | | | | | | / / / / / / / | | | | |_|_|_|_|_|_|_|_|_|_|/ / / / / / / | | | |/| | | | | | | | | | | / / / / / / | | | | | |_|_|_|_|_|_|_|_|_|/ / / / / / | | | | |/| | | | | | | | | | / / / / / | | | | | | |_|_|_|_|_|_|_|_|/ / / / / | | | | | |/| | | | | | | | | / / / / | | | | | | | |_|_|_|_|_|_|_|/ / / / | | | | | | |/| | | | | | | | / / / | | | | | | | | |_|_|_|_|_|_|/ / / | | | | | | | |/| | | | | | | | | r346007 (effectively 7.0.1 rc2), resolve conflicts, and bump version numbers. PR: 230240, 230355 Notes: svn path=/projects/clang700-import/; revision=340125
| | | | | | | * | | | | | | | | | Vendor import of llvm release_70 branch r346007:vendor/llvm/llvm-release_70-r346007Dimitry Andric2018-11-0418-77/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/llvm/branches/release_70@346007 Notes: svn path=/vendor/llvm/dist-release_70/; revision=340116 svn path=/vendor/llvm/llvm-release_70-r346007/; revision=340117; tag=vendor/llvm/llvm-release_70-r346007
| | | | | * | | | | | | | | | | | Vendor import of lld release_70 branch r346007:vendor/lld/lld-release_701-r349250vendor/lld/lld-release_70-r348686vendor/lld/lld-release_70-r348011vendor/lld/lld-release_70-r346007vendor/lld-70Dimitry Andric2018-11-0410-8/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/lld/branches/release_70@346007 Notes: svn path=/vendor/lld/dist-release_70/; revision=340122 svn path=/vendor/lld/lld-release_701-r349250/; revision=342121; tag=vendor/lld/lld-release_701-r349250
| | * | | | | | | | | | | | | | | Vendor import of clang release_70 branch r346007:vendor/clang/clang-release_70-r346007Dimitry Andric2018-11-0421-47/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/cfe/branches/release_70@346007 Notes: svn path=/vendor/clang/dist-release_70/; revision=340118 svn path=/vendor/clang/clang-release_70-r346007/; revision=340119; tag=vendor/clang/clang-release_70-r346007
| * | | | | | | | | | | | | | | | Merge ^/head r339670 through r339812.Dimitry Andric2018-10-27255-1163/+13920
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=339813
| * | | | | | | | | | | | | | | | | Add interpose flag, introduced in head r342239, to the list of checkedDimitry Andric2018-10-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flag names. Notes: svn path=/projects/clang700-import/; revision=339743
| * | | | | | | | | | | | | | | | | Merge ^/head r339015 through r339669.Dimitry Andric2018-10-235176-486340/+715086
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=339670
| * | | | | | | | | | | | | | | | | | Pull in r345002 from upstream lld trunk:Dimitry Andric2018-10-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't mess up RelIplt symbols during relocatable processing Summary: During upgrading of the FreeBSD source tree with lld 7.0.0, I noticed that it started complaining about crt1.o having an "index past the end of the symbol table". Such a symbol table looks approximately like this, viewed with readelf -s (note the Ndx field being messed up): Symbol table '.symtab' contains 4 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 SECTION LOCAL DEFAULT 1 2: 00000000 0 NOTYPE WEAK HIDDEN RSV[0xffff] __rel_iplt_end 3: 00000000 0 NOTYPE WEAK HIDDEN RSV[0xffff] __rel_iplt_start At first, it seemed that recent ifunc relocation work had caused this: <https://reviews.freebsd.org/rS339351>, but it turned out that it was due to incorrect processing of the object files by lld, when using -r (a.k.a. --relocatable). Bisecting showed that rL324421 ("Convert a use of Config->Static") was the commit where this new behavior began. Simply reverting it solved the issue, and the __rel_iplt symbols had an index of UND again. Looking at Rafael's commit message, I think he simply missed the possibility of --relocatable being in effect, so I have added an additional check for it. I also added a simple regression test case. Reviewers: grimar, ruiu, emaste, espindola Reviewed By: ruiu Subscribers: arichardson, krytarowski, llvm-commits Differential Revision: https://reviews.llvm.org/D53515 This fixes a problem in lld where it places incorrect indexes for ifunc related symbols in crt1.o and friends, making it impossible to link most normal programs with it. Notes: svn path=/projects/clang700-import/; revision=339669
| * | | | | | | | | | | | | | | | | | Fix placement of __bss_start in i386 kernel linker scriptDimitry Andric2018-10-112-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With lld 7.0.0, a rather nasty problem in our kernel linker script came to light. We use quite a lot of so-called "orphan" sections, e.g. sections which are not explicitly named in the linker script. Mainly, these are the linker sets (such as set_sysinit_set). Note that the placement of these orphan sections is not very well defined. Usually, any read-only orphan sections get placed after the last read-only section from the linker script, and similarly for the read/write variants. In our linker scripts, there are also symbol assignments like _etext, _edata, and __bss_start, which are used in various places to refer to the start or end addresses of sections. However, some of these symbol assignments are interspersed with output section descriptions. While the linker will guarantee that a symbol assignment after some section will stay after that section, there is no guarantee that an orphan section cannot be inserted just before it. Take for example the following script: SECTIONS { .data : { *(.data) } __bss_start = .; .bss : { *(.bss) } } If an orphan section (like set_sysinit_set) is now inserted just after the __bss_start assignment, __bss_start will actually point to the start of that orphan section, *not* to the start of the .bss section. Unfortunately, something like this happened with our i386 kernel linker script, and since sys/i386/i386/locore.s tries to zero .bss, it ended up zeroing all the linker sets too, leading to a crash very soon after the <--BOOT--> message. To fix this, move the __bss_start symbol assignment *into* the .bss section description, so there is no way a linker can then insert orphan sections at that point. Also add a corresponding __bss_end symbol. In addition, change sys/i386/i386/locore.s, so it clears from __bss_start to __bss_end, instead of assuming that _edata is just before .bss (which may not be true), and that _end is just after _bss (which also may not be true). This allows an i386 kernel linked with lld 7.0.0 to boot successfully. Notes: svn path=/projects/clang700-import/; revision=339317
| * | | | | | | | | | | | | | | | | | Merge ^/head r338988 through r339014.Dimitry Andric2018-09-2926-310/+420
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=339015
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Add compiler-rt's libFuzzer, not connected to buildworld yet.Dimitry Andric2018-09-2949-0/+8485
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For now, the libraries can be built and installed using: cd /usr/src/lib/libclang_rt/fuzzer && \ make obj && \ make depend && \ make && \ sudo make install cd /usr/src/lib/libclang_rt/fuzzer_no_main && \ make obj && \ make depend && \ make && \ sudo make install See https://llvm.org/docs/LibFuzzer.html for more information. Notes: svn path=/projects/clang700-import/; revision=339014
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge ^/head r338731 through r338987.Dimitry Andric2018-09-27451-3627/+6041
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=338988
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge ^/head r338690 through r338730.Dimitry Andric2018-09-1718-165/+276
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=338731
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| *---------. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge llvm, clang, lld, lldb, compiler-rt and libc++ 7.0.0 releaseDimitry Andric2018-09-175-10/+22
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|_|_|_|_|_|/ / / / / / / / / / / / / / / | | |/| | | | | | | | | | | / / / / / / / / / / / / / / | | | | |_|_|_|_|_|_|_|_|_|/ / / / / / / / / / / / / / | | | |/| | | | | | | | | | / / / / / / / / / / / / / | | | | | |_|_|_|_|_|_|_|_|/ / / / / / / / / / / / / | | | | |/| | | | | | | | | / / / / / / / / / / / / | | | | | | |_|_|_|_|_|_|_|/ / / / / / / / / / / / | | | | | |/| | | | | | | | / / / / / / / / / / / | | | | | | | |_|_|_|_|_|_|/ / / / / / / / / / / | | | | | | |/| | | | | | | / / / / / / / / / / | | | | | | | | |_|_|_|_|_|/ / / / / / / / / / | | | | | | | |/| | | | | | | | | | | | | | | r342383, and bump version numbers. PR: 230240, 230355 Notes: svn path=/projects/clang700-import/; revision=338730
| | | | | * | | | | | | | | | | | | | | | | | Vendor import of lld 7.0.0 release r342383:vendor/lld/lld-release_700-r342383Dimitry Andric2018-09-171-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/lld/tags/RELEASE_700/final@342383 Notes: svn path=/vendor/lld/dist-release_70/; revision=338721 svn path=/vendor/lld/lld-release_700-r342383/; revision=338722; tag=vendor/lld/lld-release_700-r342383
| | * | | | | | | | | | | | | | | | | | | | | Vendor import of clang 7.0.0 release r342383:vendor/clang/clang-release_700-r342383Dimitry Andric2018-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_700/final@342383 Notes: svn path=/vendor/clang/dist-release_70/; revision=338717 svn path=/vendor/clang/clang-release_700-r342383/; revision=338718; tag=vendor/clang/clang-release_700-r342383
| * | | | | | | | | | | | | | | | | | | | | | Merge ^/head r338595 through r338689, and resolve conflicts.Dimitry Andric2018-09-1498-347/+1212
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/clang700-import/; revision=338690
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| *---------. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branchDimitry Andric2018-09-1129-159/+298
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|/ / / / / / / / / / / / / / / / / / / / / | | |/| | | | | | / / / / / / / / / / / / / / / / / / / / | | | | |_|_|_|_|/ / / / / / / / / / / / / / / / / / / / | | | |/| | | | | / / / / / / / / / / / / / / / / / / / | | | | | |_|_|_|/ / / / / / / / / / / / / / / / / / / | | | | |/| | | | / / / / / / / / / / / / / / / / / / | | | | | | |_|_|/ / / / / / / / / / / / / / / / / / | | | | | |/| | | / / / / / / / / / / / / / / / / / | | | | | | | |_|/ / / / / / / / / / / / / / / / / | | | | | | |/| | / / / / / / / / / / / / / / / / | | | | | | | | |/ / / / / / / / / / / / / / / / | | | | | | | |/| | | | | | | | | | | | | | | | r341916, resolve conflicts, and bump version numbers. PR: 230240, 230355 Notes: svn path=/projects/clang700-import/; revision=338597
| | | | | | | * | | | | | | | | | | | | | | | | Vendor import of llvm release_70 branch r341916:vendor/llvm/llvm-release_700-r342383vendor/llvm/llvm-release_70-r341916Dimitry Andric2018-09-1133-159/+648
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/llvm/branches/release_70@341916 Notes: svn path=/vendor/llvm/dist-release_70/; revision=338575 svn path=/vendor/llvm/llvm-release_700-r342383/; revision=338716; tag=vendor/llvm/llvm-release_700-r342383
| | | | | * | | | | | | | | | | | | | | | | | | Vendor import of lld release_70 branch r341916:vendor/lld/lld-release_70-r341916Dimitry Andric2018-09-1114-84/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/lld/branches/release_70@341916 Notes: svn path=/vendor/lld/dist-release_70/; revision=338583 svn path=/vendor/lld/lld-release_70-r341916/; revision=338584; tag=vendor/lld/lld-release_70-r341916
| | | | * | | | | | | | | | | | | | | | | | | | Vendor import of libc++ release_70 branch r341916:vendor/libc++/libc++-release_700-r342383vendor/libc++/libc++-release_70-r348011vendor/libc++/libc++-release_70-r346007vendor/libc++/libc++-release_70-r341916Dimitry Andric2018-09-118-13/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/libcxx/branches/release_70@341916 Notes: svn path=/vendor/libc++/dist-release_70/; revision=338581 svn path=/vendor/libc++/libc++-release_70-r348011/; revision=341370; tag=vendor/libc++/libc++-release_70-r348011
| | | * | | | | | | | | | | | | | | | | | | | | Vendor import of compiler-rt release_70 branch r341916:vendor/compiler-rt/compiler-rt-release_701-r349250vendor/compiler-rt/compiler-rt-release_700-r342383vendor/compiler-rt/compiler-rt-release_70-r348686vendor/compiler-rt/compiler-rt-release_70-r348011vendor/compiler-rt/compiler-rt-release_70-r346007vendor/compiler-rt/compiler-rt-release_70-r341916vendor/compiler-rt-70Dimitry Andric2018-09-111-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/compiler-rt/branches/release_70@341916 Notes: svn path=/vendor/compiler-rt/dist-release_70/; revision=338579 svn path=/vendor/compiler-rt/compiler-rt-release_701-r349250/; revision=342119; tag=vendor/compiler-rt/compiler-rt-release_701-r349250
| | * | | | | | | | | | | | | | | | | | | | | | Vendor import of clang release_70 branch r341916:vendor/clang/clang-release_70-r341916Dimitry Andric2018-09-113-697/+1029
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://llvm.org/svn/llvm-project/cfe/branches/release_70@341916 Notes: svn path=/vendor/clang/dist-release_70/; revision=338577 svn path=/vendor/clang/clang-release_70-r341916/; revision=338578; tag=vendor/clang/clang-release_70-r341916