[llvm] r238915 - Re-commit r238838, r238844 with fix for host/target endian mismatch and windows buildbot.

Tim Northover t.p.northover at gmail.com
Wed Jun 3 10:27:45 PDT 2015


Hi Daniel,

On 3 June 2015 at 03:27, Daniel Sanders <daniel.sanders at imgtec.com> wrote:
> The host/target endian mismatch issue is that it's invalid to read/write target
> values using a host pointer without taking care of endian differences between
> the target and host. Most (if not all) instances of
> reinterpret_cast<uint32_t*>() in the RuntimeDyld are examples of this bug.
> This has been fixed for Mips using the endian aware read/write functions.

I think this aspect may be breaking the OS X buildbot (e.g.
http://lab.llvm.org:8080/green/view/Clang/job/clang-stage1-cmake-RA-incremental_check/9432/)

It looks like the linked object has a .eh_frame section containing
big-endian values (in particular the very first CIE's length field),
which it then tries to register on the host. This goes about as well
as you'd expect on a little-endian machine.

I do wonder why we're even attempting to register non-native
.eh_frames, because I think the object file is probably fine.

Could you take a look?

Cheers.

Tim.



More information about the llvm-commits mailing list