Page MenuHomePhabricator

bsdjhb (John Baldwin)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 6 2017, 10:55 AM (127 w, 4 d)

Recent Activity

Mon, Oct 21

bsdjhb added a comment to D66725: [DAGCombiner][TargetLowering] Target hook for FCOPYSIGN arg cast folding.

FYI, this change allowed me to compile and run a hard-float FreeBSD RISC-V userland. (With stock LLVM the build trips over this assertion)

Mon, Oct 21, 1:36 PM · Restricted Project
bsdjhb added a comment to D69212: [RISCV] Sign-extend 32-bit integer inline assembly operands on RV64I.

I was not aware of that aside in the spec, which does indeed suggest this specific case should sign-extend, and I guess gives us a reason why this isn't a slippery slope. However, even if this is the case, I still feel code shouldn't be relying on this, simply because it's unclear (and perhaps surprising to those who don't know this particular note from the spec). One might perfectly reasonably assume that both signed and unsigned i32 types (in the original source) are zero-extended, or (probably the default position of people) that the signed type is sign-extended and the unsigned type is zero-extended (which would require passing the extension information through via the asm call instruction's operands).

Mon, Oct 21, 11:05 AM · Restricted Project
bsdjhb added a comment to D69212: [RISCV] Sign-extend 32-bit integer inline assembly operands on RV64I.

My only thought is that the RISC-V spec seems to require sign-extending unsigned 32-bit ints when stored in 64-bit registers, so folks may very well assume this behavior in the future when writing inline assembly. The spec doesn't say anything about types other than 32-bits that I found, and the section from the 2.2 user spec (quoted below) is in italics (meaning it's commentary to explain that spec that technically isn't part of the spec itself IIRC which perhaps puts it in a grey area). For FreeBSD it seems a simple cast in the constraint is sufficient to resolve our immediate issue FWIW.

Mon, Oct 21, 9:49 AM · Restricted Project

Fri, Oct 18

bsdjhb added inline comments to D69174: Refine check for `_LIBCPP_C_HAS_NO_GETS` on FreeBSD.
Fri, Oct 18, 12:40 PM · Restricted Project

Nov 29 2018

bsdjhb added a comment to D49942: [ASAN] Port asan to FreeBSD/mips64..

Sorry for the delay. This does still need review from folks familiar with sanitizers. I haven't yet rebased it to a more recent tree due to lack of review feedback. If there is interest in reviewing it I can update it to a newer tree and retest (or if there is feedback on the current patches I'm happy to update them).

Nov 29 2018, 3:06 PM · Restricted Project, Restricted Project

Aug 2 2018

bsdjhb added inline comments to D49942: [ASAN] Port asan to FreeBSD/mips64..
Aug 2 2018, 1:25 PM · Restricted Project, Restricted Project

Aug 1 2018

bsdjhb added a reviewer for D49942: [ASAN] Port asan to FreeBSD/mips64.: kcc.
Aug 1 2018, 3:59 PM · Restricted Project, Restricted Project
bsdjhb added a reviewer for D49940: Include the unittest link flags in the sanizier test link flags.: samsonov.
Aug 1 2018, 3:58 PM

Jul 27 2018

bsdjhb added a comment to D49942: [ASAN] Port asan to FreeBSD/mips64..

The LLVM changes to use the correct shadow offset on FreeBSD/mips64 are in D49939.

Jul 27 2018, 3:08 PM · Restricted Project, Restricted Project
bsdjhb created D49942: [ASAN] Port asan to FreeBSD/mips64..
Jul 27 2018, 3:04 PM · Restricted Project, Restricted Project
bsdjhb added inline comments to D32172: Port asan to FreeBSD AArch64.
Jul 27 2018, 3:02 PM
bsdjhb created D49940: Include the unittest link flags in the sanizier test link flags..
Jul 27 2018, 2:59 PM
bsdjhb created D49939: [ASAN] Use the correct shadow offset for ASAN on FreeBSD/mips64..
Jul 27 2018, 2:54 PM

Jul 10 2018

bsdjhb updated the diff for D49143: Fix a typo/regression in r335495..

Add tests.

Jul 10 2018, 10:36 AM
bsdjhb added a comment to D49143: Fix a typo/regression in r335495..

AFAICT, I don't see a way to ask clang "which sanitizers are supported by this target". Hmm, the CHECK-SANL-MIPS test in tests/Driver/fsanitize.c seems like the closest match.

Jul 10 2018, 9:40 AM
bsdjhb created D49143: Fix a typo/regression in r335495..
Jul 10 2018, 9:10 AM

Jun 27 2018

bsdjhb added a comment to D47814: Teach libc++ to use native NetBSD's max_align_t.

FWIW, for FreeBSD I defined __CLANG_MAX_ALIGN_T and _GCC_MAX_ALIGN_T in FreeBSD's <stddef.h> when defining the typedef to handle this.

Jun 27 2018, 5:00 PM
bsdjhb added a comment to D24867: Request init/fini array on FreeBSD 12 and later.

Ping. I'd like this to go in and get merged into FreeBSD's clang so we can test this for a few months before 12.0 branches.

Jun 27 2018, 4:23 PM

Jun 26 2018

bsdjhb updated the diff for D48507: [mips] Explicitly specify the linker emulation for MIPS on FreeBSD..
  • Add N32EL.
Jun 26 2018, 1:58 PM
bsdjhb added inline comments to D48507: [mips] Explicitly specify the linker emulation for MIPS on FreeBSD..
Jun 26 2018, 9:12 AM

Jun 22 2018

bsdjhb created D48507: [mips] Explicitly specify the linker emulation for MIPS on FreeBSD..
Jun 22 2018, 2:57 PM
bsdjhb created D48499: [mips] Use more conservative default CPUs for MIPS on FreeBSD..
Jun 22 2018, 11:12 AM

Jun 20 2018

bsdjhb added a comment to D31557: [mips][ias] Enable IAS by default for OpenBSD / FreeBSD mips64/mips64el..

To be clear, even though FreeBSD does support n32, I think we want this patch for FreeBSD certainly as the forward path for N32 on FreeBSD is to get IAS N32 working rather than other solutions. Also, N64 on FreeBSD needs IAS today, so I'd rather this go in sooner rather than waiting for the N32 IAS issues to be fully resolved.

Jun 20 2018, 12:01 PM

Apr 18 2018

bsdjhb added a comment to D44604: Make stdarg.h compatible with FreeBSD.

FWIW, I ended up fixing FreeBSD to only use <machine/stdarg.h> in freestanding environments and always use <stdarg.h> in userland which makes this patch no longer necessary. (Only one place needed to be fixed.)

Apr 18 2018, 10:39 AM

Apr 6 2018

bsdjhb added a comment to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..

Ping @sdardis @compnerd

Apr 6 2018, 11:38 AM

Mar 20 2018

bsdjhb updated the summary of D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
Mar 20 2018, 8:39 AM

Mar 14 2018

bsdjhb added a comment to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..

@sdardis ping. I think the approach I've used for O32 is probably the right one in that it matches what DWARF expects (DWARF doesn't treat the 32-bit floating point registers as pairs but as individual registers). I think the question is if I O32 with 32-bit FP registers should use an array of float[]s instead of an array of double[]s though (which adds an extra #ifdef for context size) vs keeping the current layout.

Mar 14 2018, 10:14 AM

Mar 5 2018

bsdjhb added a comment to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..

This version follows the suggestion I made earlier of treating 32-bit floating point registers as a "plain" register for O32 rather than a floating-point register. It seems to work for me though for O32 I've only tested with 32-bit floating point registers. If we stick with this approach for 32-bit floating point it might be simpler and/or more readable to make _floats[] an array of uint32_t for that case and just use different context sizes for the O32 with 32-bit fp vs O32 with 64-bit fp. This version works in my testing on FreeBSD for O32 with 32-bit FPR, N32, and N64.

Mar 5 2018, 2:52 PM
bsdjhb updated the diff for D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
  • Add a comment about using a single FP layout for O32.
  • Treat 32-bit floating point registers on O32 as plain registers.
Mar 5 2018, 2:45 PM

Feb 27 2018

bsdjhb updated the diff for D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
  • Rebase after N32 commit.
  • Use ldc1/sdc1 rather than l.d and s.d.
Feb 27 2018, 2:45 PM
bsdjhb added a comment to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..

Hmmm, so I was somewhat mistaken as DwarfInstructions.hpp::stepWithDwarf() does use the Register class's setFloatRegister(), however, it assumes that the floating point register is always a double (DwarfInstructions.hpp::getSavedFloatRegister() uses AddressSpace::getDouble() to read a double from memory). So I think that means that the NEWABI cases work as-is. O32 with 64-bit FP registers should also work as-is. However, O32 with 32-bit FP registers will not quite work. The DWARF info for O32 with 32-bit registers does save/restore individual 32-bit registers:

Feb 27 2018, 2:43 PM
bsdjhb added a comment to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..

After thinking about this some more, I need to rework this a bit. The choice of how to expose the floating point registers via getFloatingPointRegister / setFloatingPointRegister only affects consumers of the libunwind unw_get_fpreg/unw_set_fpreg. I think a bigger factor is that we need to honor unwind rules in frames that describe the saved location of FP registers on the stack (which this patchset doesn't do). I think that's fairly trivial for the case where an FP register is the same size as a GP register, and it probably argues for storing 32-bit FP registers as individual 'float' if that is how the unwind information is encoded. I haven't yet looked to see what the implications would be for O32 MIPS with 64-bit FP registers. It may be that I punt on that configuration for now.

Feb 27 2018, 1:43 PM
bsdjhb retitled D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests. from [libunwind] Permit additional compiler flags to be passed to tests. to [libunwind] Permit additional compiler and linker flags to be passed to tests..
Feb 27 2018, 10:39 AM
bsdjhb updated the diff for D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..
  • Match names used in libcxx and add LINKER_FLAGS.
Feb 27 2018, 10:22 AM

Feb 23 2018

bsdjhb updated the diff for D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..
  • Use STRING instead of PATH.
  • Update for committed libcxx change.
Feb 23 2018, 3:10 PM
bsdjhb added a comment to D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..

My only question is if this should be named LIBUNWIND_TEST_COMPILER_FLAGS to match the name used in libc++?

Feb 23 2018, 3:10 PM
bsdjhb abandoned D43584: [test] Permit additional CFLAGS for tests to be set via config.test_cflags..

Obsoleted by rCXX325914.

Feb 23 2018, 3:07 PM

Feb 21 2018

bsdjhb added a comment to D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..

@sdardis requested this functionality in the review of D39074. Simon, can you confirm that this works for you in your testing?

Feb 21 2018, 10:20 AM
bsdjhb added a parent revision for D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests.: D43584: [test] Permit additional CFLAGS for tests to be set via config.test_cflags..
Feb 21 2018, 10:17 AM
bsdjhb added a child revision for D43584: [test] Permit additional CFLAGS for tests to be set via config.test_cflags.: D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..
Feb 21 2018, 10:17 AM
bsdjhb updated the diff for D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..
  • Unexpand tabs.
Feb 21 2018, 10:16 AM
bsdjhb created D43585: [libunwind] Permit additional compiler and linker flags to be passed to tests..
Feb 21 2018, 10:15 AM
bsdjhb created D43584: [test] Permit additional CFLAGS for tests to be set via config.test_cflags..
Feb 21 2018, 10:15 AM

Feb 12 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Hmmm, I'm a bit lost on the CFLAGS bit. I couldn't find a reference to LIBOMP_TEST_CFLAGS anywhere in the openmp tree. There is a LIBOMP_CFLAGS that doesn't appear to be test specific.

Feb 12 2018, 3:51 PM

Feb 9 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Nice sleuthing!

Feb 9 2018, 11:14 AM
bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Rebase.
  • Rework ABI macro checks.
Feb 9 2018, 11:14 AM

Feb 7 2018

bsdjhb updated the diff for D42972: Look for 32-bit libraries in /usr/lib32 for MIPS O32 on FreeBSD..
  • Add a test case.
Feb 7 2018, 4:16 PM

Feb 6 2018

bsdjhb created D42972: Look for 32-bit libraries in /usr/lib32 for MIPS O32 on FreeBSD..
Feb 6 2018, 8:48 AM

Feb 2 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

@sdardis Can you confirm if the existing N64 bits work fine for you or if the tests crash similarly?

Feb 2 2018, 3:07 PM

Jan 31 2018

bsdjhb added a comment to D42310: Formalize FreeBSD support of compiler rt .

My only question is if we want an OS version check as the FreeBSD driver does now for libc++ vs libstdc++? FreeBSD started using libcompiler_rt for libgcc.a in 9.0.

Jan 31 2018, 9:18 AM

Jan 16 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

After fighting with cmake for a bit, I just broke down and cross-compiled the tests by hand and then ran them under a qemu system (rather than using qemu user mode). All of the tests ran fine for me without crashing using GCC 6.3.0 for FreeBSD 12 with N32. Given the save/restore code is identical for N32 and N64 I would have expected N64 to fail previously if it was restoring the wrong register?

Jan 16 2018, 3:09 PM

Jan 12 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

This was libunwind's test suite:

Compiled test failed unexpectedly!
********************
Testing Time: 0.53s
********************
Failing Tests (1):
    libunwind :: libunwind_02.pass.cpp

  Expected Passes    : 3
  Unexpected Failures: 1

The hacky patch I used to test n32:

--- a/test/libunwind/test/config.py
+++ b/test/libunwind/test/config.py
@@ -48,6 +48,8 @@ class Configuration(LibcxxConfiguration):
         # Stack unwinding tests need unwinding tables and these are not
         # generated by default on all Targets.
         self.cxx.compile_flags += ['-funwind-tables']
+        self.cxx.compile_flags += ['-mabi=n33']
+        self.cxx.link_flags += ['-mabi=n32']
         if not self.get_lit_bool('enable_threads', True):
             self.cxx.compile_flags += ['-D_LIBUNWIND_HAS_NO_THREADS']
             self.config.available_features.add('libunwind-no-threads')
Jan 12 2018, 12:48 PM
bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

To be clear, are you getting the failure running libunwind's test suite or your own test? I've managed to get libunwind to cross-compile for me using GCC 6.3.0 on FreeBSD for O32, N32, and N64, but only to build the library, not the tests. I've been running a simple C++ test program (which is using a patched libunwind along with libc++ as it's C++ runtime) for testing. The program uses _Unwind_Backtrace() as well as throws a couple of C++ exceptions with catch handlers that print out the values thrown. If you are able to cross-build the libunwind tests and then run them under qemu I'd appreciate a pointer to get that working as I'd be happier running libunwind's tests than my own.

Jan 12 2018, 10:37 AM

Jan 11 2018

bsdjhb added inline comments to D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
Jan 11 2018, 3:20 PM
bsdjhb added a child revision for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes.: D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
Jan 11 2018, 3:18 PM
bsdjhb added a parent revision for D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs.: D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Jan 11 2018, 3:18 PM
bsdjhb created D41968: [libunwind][MIPS] Support MIPS floating-point registers for hard-float ABIs..
Jan 11 2018, 3:17 PM

Jan 9 2018

bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Rebase after N64 -> newabi commit.
Jan 9 2018, 9:20 AM

Jan 8 2018

bsdjhb added a parent revision for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes.: D41842: [libunwind][MIPS]: Rename Registers_mips_n64 to Registers_mips_newabi..
Jan 8 2018, 4:14 PM
bsdjhb added a child revision for D41842: [libunwind][MIPS]: Rename Registers_mips_n64 to Registers_mips_newabi.: D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Jan 8 2018, 4:14 PM
bsdjhb created D41842: [libunwind][MIPS]: Rename Registers_mips_n64 to Registers_mips_newabi..
Jan 8 2018, 4:11 PM

Jan 5 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

Ok, I'm definitely fine with splitting the rename out into a separate patch. Will wait for @sdardis to be sure.

Jan 5 2018, 11:09 AM

Jan 4 2018

bsdjhb added a comment to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..

ping @sdardis, @compnerd

Jan 4 2018, 12:35 PM

Dec 13 2017

bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Use SIZEOF_POINTER instead of LP64.
  • Adjust comment for newabi register class.
Dec 13 2017, 2:15 PM
bsdjhb added inline comments to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Dec 13 2017, 2:13 PM
bsdjhb added a comment to D31557: [mips][ias] Enable IAS by default for OpenBSD / FreeBSD mips64/mips64el..

Simon, FreeBSD does support n32 as others have noted. Do you have any thoughts on what is needed to allow N32 to work with IAS? It seems like there is some support in MipsAsmParser for N32 IIRC, though it seems like the integrated assembler thinks it is compiling as N64 when -mabi=n32 is passed to clang (my attempt to compile FreeBSD N32 with clang currently dies due to encountering 'la' and erroring since it thinks it is using N64 where 'dla' should be used instead.

Dec 13 2017, 9:37 AM

Dec 12 2017

bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Rebase after O32/N64 commit.
Dec 12 2017, 1:49 PM

Nov 28 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

Ping @compnerd, @sdardis

Nov 28 2017, 11:07 AM

Nov 16 2017

bsdjhb added inline comments to D39681: Implement core dump debugging for PPC64le.
Nov 16 2017, 9:47 AM

Nov 8 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

Ping

Nov 8 2017, 9:53 AM

Nov 2 2017

bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Rebase.
  • Update O32 cursor size after unw_word_t change.
Nov 2 2017, 3:20 PM

Oct 30 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

Just a heads up WRT this patch; we're discussing changing the size of unw_word_t to match uintptr_t in D39365. Does that break anything for your case? It shouldn't affect what's stored in the Register class, only pointers in the unw_proc_info_t struct. Not sure which patch will get completed/merged first though.

Oct 30 2017, 5:06 AM
bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Rebase on more MAX_REGISTER changes.
  • Use macro for lastDwarfRegisterNumber.
  • Move MIPS ABI constants under a single #ifdef mips.
Oct 30 2017, 4:31 AM

Oct 27 2017

bsdjhb updated the summary of D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
Oct 27 2017, 8:59 AM
bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Rebase after MAX_REGISTER change.
Oct 27 2017, 8:57 AM
bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Rebase for recent change to MAX_REGISTER meaning.
Oct 27 2017, 8:54 AM
bsdjhb added inline comments to D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Oct 27 2017, 6:05 AM
bsdjhb updated the diff for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
  • Use correct #ifdef for N32.
  • Rename N64 to newabi.
Oct 27 2017, 5:59 AM

Oct 26 2017

bsdjhb added a comment to D39281: [libunwind] Express Registers_*::lastDwarfReg using _LIBUNWIND_HIGHEST_DWARF_REGISTER.

I think one source of truth is better than two. I do find the constant's value a bit off in general though. That is, the name 'HIGHEST' implies to me that it is the highest value used, not N + 1 as we currently define it.

Oct 26 2017, 7:10 AM

Oct 24 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

Ping?

Oct 24 2017, 2:27 AM

Oct 18 2017

bsdjhb created D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Oct 18 2017, 3:04 PM
bsdjhb added a child revision for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes.: D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes..
Oct 18 2017, 3:04 PM
bsdjhb added a parent revision for D39074: [libunwind][MIPS]: Add support for unwinding in N32 processes.: D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
Oct 18 2017, 3:04 PM

Oct 16 2017

bsdjhb added inline comments to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
Oct 16 2017, 9:55 PM
bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Save all of the general purpose registers.
Oct 16 2017, 9:29 PM

Oct 13 2017

bsdjhb added a comment to D38900: libunwind: document tested FreeBSD configs and sort OS list.

FreeBSD/i386 also uses llvm libunwind by default.

Oct 13 2017, 2:41 PM
bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Check _ABI* rather than _MIPS_SIM.
  • Save and restore lo/hi.
  • Expand FIXME comment for more missing registers.
  • Return UNW_SUCCESS from unw_getcontext().
  • Use correct DWARF numbers for hi and lo and put hi first.
  • Bump highest DWARF number for hi and lo.
Oct 13 2017, 12:44 PM

Oct 11 2017

bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Add more soft-float checks.
Oct 11 2017, 10:42 AM
bsdjhb created D38807: Don't try to use non-existent header on FreeBSD/mips..
Oct 11 2017, 9:59 AM

Oct 10 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

I keep running into issues trying to cross-build LLVM (it keeps wanting to use /usr/bin/cc or host libraries even though cross-compiling is enabled). I wonder if the failures you saw Simon might be due to https://bugs.llvm.org/show_bug.cgi?id=33858? Could you try applying the patch from D37484 along with this patchset to see if it fixes the test failures for you?

Oct 10 2017, 9:34 AM

Oct 5 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

FYI, I was able to do simple testing (C++ programs throwing exceptions) using GCC 6.3 to compile a FreeBSD userland for both O32 and N64. Still working on cross-compiling LLVM so I can run the tests under qemu.

Oct 5 2017, 9:55 AM

Oct 2 2017

bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

I have only tested this (test programs as mentioned earlier) with clang 5.0.0 (with a few patches) on o32 and n64. I am in the process of performing the same tests with GCC 6.3.0. I will also spend some time figuring out how to cross-build libunwind tests and run them inside of a qemu instance.

Oct 2 2017, 3:48 PM
bsdjhb updated the diff for D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
  • Fixes from review feedback.
Oct 2 2017, 3:45 PM

Sep 21 2017

bsdjhb retitled D38108: [libunwind] Partially revert r297174 to fix build on at least FreeBSD. from Partially revert r297174 to fix build on at least FreeBSD. to [libunwind] Partially revert r297174 to fix build on at least FreeBSD..
Sep 21 2017, 2:24 PM
bsdjhb updated the diff for D38108: [libunwind] Partially revert r297174 to fix build on at least FreeBSD..
  • Move the Apple-specific _dyld_find_unwind_sections up above the namespace
Sep 21 2017, 11:54 AM
bsdjhb added inline comments to D38108: [libunwind] Partially revert r297174 to fix build on at least FreeBSD..
Sep 21 2017, 10:56 AM

Sep 20 2017

bsdjhb added inline comments to D38108: [libunwind] Partially revert r297174 to fix build on at least FreeBSD..
Sep 20 2017, 4:42 PM
bsdjhb added a comment to D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..

I have not managed to get the libunwind tests to run, but I was able to run test C++ programs on FreeBSD for both O32 and N64 that caught exceptions. The first test program just uses _Unwind_Backtrace() with a callback to print out the PC values, throws an integer whose value is output in a catch clause, and finally throws a structure whose members are output in a catch clause. I have also built and run a larger real-world C++ program which makes extensive use of exceptions (gdb) on both O32 and N64.

Sep 20 2017, 4:34 PM
bsdjhb created D38110: [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes..
Sep 20 2017, 4:30 PM
bsdjhb added a comment to D38108: [libunwind] Partially revert r297174 to fix build on at least FreeBSD..

I posted a sample compile failure on FreeBSD/amd64 in the review for the earlier change: D30696

Sep 20 2017, 4:15 PM