[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] m68000 version of Zorro's LDG codec



Hello Zorro
Le 27/09/12 21:28, OL a écrit :

You can send memory allocated by malloc() to the codec without problem

Yesterday evening, I looked at the code of the LDG library.

Olivier and MiRKO, you are right and I was wrong.
You can send a memory pointer allocated with malloc() to the called LDG because from the OS view, the LDG and the client are the same process.

Yes if the lib is not shared.

I made the mistake of believing that the processes were differents.

So Mirko, you were right to remove men.ldg from the zview code!



Another problem: Can you use the MiNTlib functions inside a LDG?


In the case of a shareable LDG, The MiNtlib functions cannot be used.

http://tinyurl.com/cq6qycz
http://tinyurl.com/bu9hgf3

It's a pity because if a shared library is not... shareable, there is just no interest.

Yes and no, I use ldg as plugin that I can load and unload when I want, I can change it without looking in application (for example for my first bench on coldfire (some years ago!)) I just compil ldg for test so I was able to have native bench
without need compil Kronos itself (this was a little bit more difficult!)



Now, there are 4 solutions to make a shareable LDG:

- Do not use the MiNTlib functions inside the LDG.
Yes
- The Mirko idea: provides callbacks to client's MiNTlib.
This is an idea but work only for GCC, can't be used by other compiler (you perhaps not know but EB Model use LDG
in it and it is in GFA!)
- Rework the MiNTlib( the hard way).
Forget Mintlib there is too much work! It should be better to adapt newlib (http://sourceware.org/newlib/) it is fully reentrant I think

- Code the real shared libraries support directly in the Kernel( the very hard way).
Yes probably the best, but not universal (can't work on Magic or TOS), but in fact it could be simply an real ldg sharable!

MirKo what do you think of this for your problem? with it we could solve the problem of FPU format and parameter transfer, we could in fact create 2 or 3 libc.ldg for each format the choice could be simply done in the client lib. Yes I think this could be an elegant way to solve the problem but we need a reentrant libc.


MirKo, Olivier, do you agree?

Globally yes.




In the case of a non-shareable LDG:

I can't remember why but in the past, I met strange behavior and instabilities when I used MiNTLib functions.

Me too, you are right , because I remember now I compil with PureC without problem but not with GCC at this date I was working on MagicMac! and as describe the problem of Wonck this is his problem and now to fix it we use sharelib patch, but I remember too that Arnaud said me not so far that it was only for share memory, perhaps he forgot as me this story


After reading an old discussion( for the french speaking people: http://tinyurl.com/d9v4dyu ) , it seem that Olivier, Arnaud and me agreed: it's better to avoid using the MiNTlib functions inside a LDG.
This is so old! My memory start to be deffective!

But it was 8 years ago. Maybe now, is it safe to use the MiNTLib inside a non-shareable LDG?
It should and it work under Mint (I use like this jpeg.ldg 68000 without known problem but it doesn't work under Magic (why?) but work with libshare).

Olivier


--
Zorro