-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: More failing AArch32 tests #48
Conversation
I'll take a look. I'm pretty sure I know what is going on with the address space issue. The empty block one is really interesting and might actually be possible... |
This range is much larger now that we implemented long jumps by storing pointers in the instruction stream.
For the x86 and PowerPC backends this didn't matter - we constructed the partial blocks and then threw them away since we couldn't rewrite them. This became a problem with the AArch32 backend, which actually inspects block terminators and panics when it can't figure out how to interpret failures. This commit just changes the logic to avoid even trying to translate incomplete blocks, which was useless work anyway.
For some reason, the mac build is using a version of the base package from ghc 8.10...
There's still something going on with the biggest binary in the bunch:
Interestingly, it's failing before it gets to user code:
A diff of the functions shows almost nothing: diff ./files/brittle/tls-*.txt
40c40
< 10968: eb013713 bl 5e5bc <__renovate___udivsi3>
---
> 10968: eb013713 bl 5e5bc <__udivsi3>
65c65
< 109cc: eb006436 bl 29aac <__renovate___sbrk>
---
> 109cc: eb006436 bl 29aac <__sbrk>
82c82
< 10a10: eb005a32 bl 272e0 <__renovate_memcpy>
---
> 10a10: eb005a32 bl 272e0 <memcpy>
113c113
< 10a8c: eb0136ca bl 5e5bc <__renovate___udivsi3>
---
> 10a8c: eb0136ca bl 5e5bc <__udivsi3>
149,161c149,161 Here are the binaries in question: Here's the source for the function in question: https://github.com/lattera/glibc/blob/895ef79e04a953cac1493863bcae29ad85657ee1/csu/libc-tls.c#L106 |
@travitch said:
Here's
and on the rewritten binary:
|
After a bit of digging, it looks like the failure occurs because the code in |
Update: the |
Merged in #55 |
Some very exciting error messages!