Bug 9729 – interface thunk doesn't set EBX to GOT

Status
RESOLVED
Resolution
FIXED
Severity
critical
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Linux
Creation time
2013-03-15T09:56:00Z
Last change time
2015-06-09T05:11:47Z
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2013-03-15T09:56:09Z
cat > bug.d << CODE interface ILock { void lock(); } class Lock : ILock { void lock() { } } CODE -------------------- dmd -c -m32 -fPIC bug -------------------- _TMP3 LABEL NEAR sub eax, 8 ; 0048 _ 83. E8, 08 jmp _D3bug4Lock4lockMFZv ; 004B _ E9, FFFFFFFC(PLT r) It seems to me that the thunk needs to load the GOT because the class must not be in the same shared library as the caller of the interface.
Comment #1 by bugzilla — 2013-03-15T13:13:17Z
Comment #2 by github-bugzilla — 2013-03-15T14:01:30Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/ea45f630e18f85b420530bd038e32ab3a3afaee4 fix Issue 9729 - interface thunk doesn't set EBX to GOT https://github.com/D-Programming-Language/dmd/commit/b53de75a3e2f6855ec4c90a692c80b8ada0bb78b Merge pull request #1750 from WalterBright/fix9729 fix Issue 9729 - interface thunk doesn't set EBX to GOT
Comment #3 by github-bugzilla — 2013-03-15T14:40:22Z
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/c1de95340ab06b2f4573c22cbf36c5f1d2611d1e Merge pull request #1750 from WalterBright/fix9729 fix Issue 9729 - interface thunk doesn't set EBX to GOT
Comment #4 by bugzilla — 2013-06-29T14:26:53Z