On Thu, Oct 22, 2015 at 7:52 AM, Julian Seward <[email protected]> wrote:
>
>> When PIC is in effect, the Global Offset Table (GOT) is utilized.
>> Under the Linux ABI, that means EBX/RBX must be preserved because it
>> holds the pointer to the GOT.
>
> If the GOT pointer register is getting trashed by inline assembly, I'd
> imagine your program would crash very shortly afterwards, in a somewhat
> obvious way (if you're proficient at reading assembly that is).
Yeah, that's what I hoped for. But its showing up as a hang at the
moment. (And I would probably suffer my fair share of reading the
ASM).
No one has provided me with a dump, and no one has provided me with
remote/SSH access to a misbehaving machine. They are not making it
easy :(
I'm trying to go the extra mile because this could be a portent of
things to come at GCC 5.2 or 5.3. I want to get out ahead of this
issue in case it becomes wider spread.
> Also, if the inline asm is wrong, different optimisation levels may well
> have different effects. Is it -O level dependent?
The issue does not appear to be transient based on optimizations. The
folks who are reporting it use -O{1|2|3}.
I know a -DDISABLE_ASM resolves the issue. I don't know what happens
under the configuration {no-PIC, with-ASM}. No one has reported back.
I also know -mno-sse{3|4|4_1|4_2} does not affect the issue.
> You list a bunch of memory-error checking tools (Memcheck, ASan, etc) but
> don't say anything about race-checking (Helgrind, DRD, TSan, etc). Did you
> check for races and other threading problems?
The self tests are single threaded, so I guess I am fortunate that its
not a factor. Thank the {Lord|Allay|<Favorite Deity>} for small
miracles :)
Jeff
------------------------------------------------------------------------------
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users