-
Notifications
You must be signed in to change notification settings - Fork 17
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
Some shared object constructors are not called #139
Comments
I think that AmigaLabs/clib4#57 could be related to this |
New beta elf.library should fix this problem |
Hopefully this cures the random crashes i get with ScummVM on start. otoh the timeframe for releasing the updated lib isn't encouraging |
That's the main problem.. However I don't know. What you have in the crashlog? Because with actual elf.library the problem happens always and not sometimes |
As I said, it's random. Lately not so much, but every fix to the shared objects handling helps:-) Great work |
If the address to interface structure is not set, you get DSI error, when
its try’s read from bad address, and you read some random value located
there, you press ignore, and it try jump to bad address. This when you get
illegal instruction because there is no code there. so you get ISI error.
Run Snoopy to see if any libraries failed to open. Of course, this should
show that Odyssey has poor startup code, because it let program run, when
it should not have.
man. 6. mar. 2023 kl. 10:06 skrev Hubert Maier ***@***.***>:
… As I said, it's random.
Sometimes ISI, sometimes DSI, coming from everywhere in the code, all of
the time on first start, most of the time after some other big programs ran
beforehand, e.g. odyssey
Lately not so much, but every fix to the shared objects handling helps:-)
Great work
—
Reply to this email directly, view it on GitHub
<#139 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAIDFDPVVE33QGX4JXLKVP3W2WSJPANCNFSM6AAAAAATPBAGFE>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
If the interface is not initialized, it can be because some libraries has
replaced by 680x0 library, this library’s do not have interfaces. make sure
the correct libraries are installed.
man. 6. mar. 2023 kl. 10:21 skrev Kjetil Hvalstrand <
***@***.***>:
… If the address to interface structure is not set, you get DSI error, when
its try’s read from bad address, and you read some random value located
there, you press ignore, and it try jump to bad address. This when you get
illegal instruction because there is no code there. so you get ISI error.
Run Snoopy to see if any libraries failed to open. Of course, this should
show that Odyssey has poor startup code, because it let program run, when
it should not have.
man. 6. mar. 2023 kl. 10:06 skrev Hubert Maier ***@***.***>:
> As I said, it's random.
> Sometimes ISI, sometimes DSI, coming from everywhere in the code, all of
> the time on first start, most of the time after some other big programs ran
> beforehand, e.g. odyssey
>
> Lately not so much, but every fix to the shared objects handling helps:-)
>
> Great work
>
> —
> Reply to this email directly, view it on GitHub
> <#139 (comment)>, or
> unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAIDFDPVVE33QGX4JXLKVP3W2WSJPANCNFSM6AAAAAATPBAGFE>
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>
|
Problem: only 1 of 2 constructors in shared object are called. Both constructors are called when library is linked statically. (Both destructors are called in all cases). Not sure if this problem is related to GCC or elf.library or something else.
Using GCC 11.2. Here is a small example:
-- lib.c
-- main.c
-- makefile
-- output
ctor2 call is missing here:
The text was updated successfully, but these errors were encountered: