- User Since
- Apr 15 2014, 12:19 PM (335 w, 5 d)
Thu, Sep 10
Thu, Sep 3
Wed, Sep 2
Sat, Aug 29
Wed, Aug 26
Mon, Aug 24
Please note, I did a follow-up commit in rG47b0262d3f82, to address compile errors I received from the x86_64-linux-debian build bot:
Sat, Aug 22
After this change, it turns out that some of the errors that this results in can be very confusing. For example, when building ocaml, it uses a .S file (https://github.com/ocaml/ocaml/blob/trunk/runtime/amd64.S#L729) containing:
Aug 21 2020
As @JDevlieghere suggests, only instantiate Error objects when necessary.
Aug 15 2020
Hm, the static FrameHeaderCache ProcessFrameHeaderCache; is biting us here, at least in a multithreaded process like lld, which is the process that is crashing for me all the time now. I added some instrumentation, which shows the problem by adding a thread ID to each log message, and by adding an assert in FrameHeaderCache::add() that MostRecentlyUsed != nullptr:
I turned on _LIBUNWIND_DEBUG_FRAMEHEADER_CACHE, and indeed such segfaults appear immediately after the message libunwind: FrameHeaderCache reset. That means FrameHeaderCache::MostRecentlyUsed has just been set to nullptr ...
It seems that after this change, I'm getting sporadic lld segfaults in libunwind, which look like:
Aug 10 2020
For me, this fixes the assertion for both the original test case (a fully preprocessed ASTReader.cpp) and the minimized test case from https://bugs.llvm.org/show_bug.cgi?id=47041#c1
Aug 9 2020
Aug 3 2020
Aug 2 2020
Hm, this review's still open after two years, and even as of 2020-08-02 clang still crashes on the sample. :)
Aug 1 2020
Note that as of rG1db4318766256f25a03ef80af8dbb3f99743ebe9, applying this change results in the Passed testcases increasing from 49259 to 49666, so more than 400 Failed test cases are fixed by it.
Jul 31 2020
Jul 19 2020
Jul 16 2020
Jul 12 2020
Jul 8 2020
Jun 13 2020
Okay, after a long while of attempting to make a reproduction scenario, I finally managed one that consistently worked. As BSD make puts in different redirections for stderr when running in -j mode, it turned out that I could simply run the compilation twice on a terminal, first normally, then with stderr redirected to /dev/null, e.g. my test script is:
Jun 4 2020
For completeness sake, here are the valgrind outputs of clang rGf7f1abdb889 (llvmorg-11-init-16778) built by gcc 9.3.0-10ubuntu2 (in RelWithDebInfo mode):
Jun 3 2020
May 29 2020
FWIW, this change causes https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246630, see in particular https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246630#c18.
May 15 2020
May 12 2020
Note I already merged this fix (minus the test case) into FreeBSD here: https://svnweb.freebsd.org/changeset/base/360697, since we needed it ASAP for being able to build big-endian ARM kernel code. So in that sense it's already been exercised for a bit. :)
Apr 26 2020
Verified that this fixes both the original test case (which is rather large so I didn't attach it to the PR), and the minimized test case.
Trying this out now, thanks!
Apr 15 2020
Apr 9 2020
Mar 26 2020
FYI FreeBSD is one of the few OSes that enables -Wsystem-headers by default, *and* uses libc++ as its default C++ library. So we've already submitted a bunch of warning fixes for libc++.
Mar 20 2020
Mar 18 2020
As far as I'm concerned, most suggestions make sense, and it is good to have this information clearly stated.
Mar 17 2020
Mar 16 2020
Mar 15 2020
Mar 13 2020
Note: one thing that I am unsure about is the _NOEXCEPT after some of the copy constructors. I only applied those to classes that have other _NOEXCEPT constructors, but copying may involve other things that could throw.
Feb 15 2020
Feb 10 2020
Yeah sorry, I used a whitelist instead, here: rG52f2df1ecdd79cc550b694ab280f3b0396d7cf9a
Feb 9 2020
Ping, can we get this committed then? :)
Feb 7 2020
Remove stray newline.
Add better NetBSD implementation of internal_dlinfo().
Feb 6 2020
- Rebase onto reformatted files.
- Add internal_dlinfo() for FreeBSD and NetBSD, with stubs for other platforms.
- Add GET_LINK_MAP_BY_DLOPEN_HANDLE() macro for NetBSD.
Btw, note that according to the Linux dlinfo() manpage, it also has RTLD_DI_LINKMAP as a documented way to get at the link map. Maybe we should generalize this in a follow-up review?
Feb 4 2020
Cast return value to link_map to avoid call site errors.