I'll try to explain:
suupose you have library rootine foo(), which updates global variable
errno, with the code like this:
errno = 5;
it will be compiled to simething like:
mov errno(a5), d1
Now, when you link this library to the aplllication A, errno offset from the
beginnig of data segment will be let's say 0x100
and when you link the library to application B the offset could be 0x200...
In any case the actual contents of the libaray .text
segment is different, hence you can't do code sharing.....
----- Original Message -----
From: Erwin Authried <email@example.com>
To: Vadim Lebedev <firstname.lastname@example.org>; <email@example.com>
Sent: Thursday, January 06, 2000 12:50 AM
Subject: Re: [UCLINUX] Fw: 32-bit PIC patches for the uCsimm !
> Hello Vadim,
> maybe I'm missing something obvious, but I don't see any problem right
> Maybe it's simply to late for thinking ;-)
> Currently, the text segment of the library of the library is linked with
> application. If the complete library is put into a free space with a
> adress, and the link script is modified to take care of that, the library
> can be executed there because all applications share the same adress
> and all the call offsets may be 32 bit with the patch. Of course, all
> have to be linked with the same, complete library.
> The data + bss segment is handled like before. That shouldn't have to do
> anything with the kernel, there no such stuff like usage-count or
> similar to handle. Please let me know if I'm missing something important.
> Vadim Lebedev wrote:
> > This shared library stuff is more complicated than you think,
> > fo example what you're going to do with shared library static data?
> > Another point: the kernel should be modified to handle correctly
> > libraries....
> > Best regards
> > Vadim
> > ----- Original Message -----
> > From: Erwin Authried <firstname.lastname@example.org>
> > To: <email@example.com>
> > Cc: <firstname.lastname@example.org>
> > Sent: Wednesday, January 05, 2000 10:49 PM
> > Subject: [UCLINUX] Fw: 32-bit PIC patches for the uCsimm !
> > > I have just recognized that it is not necessary to recompile
> > > the whole library, sorry. There are just a few library-internal calls
> > > cannot be relocated because the call is made between the start
> > > of the text segment to the end of the text segment where the libraries
> > > are located. When those few calls are fixed, the rest of the library
> > use the
> > > faster 16-bit relocation.
> > >
> > > Another idea: When all the libraries are linked to some fixed
> > > location, they could now be shared between all applications, without
> > > the overhead of having the same library attached to each
> > > application.
> > >
> > > -Erwin
> > >
This message resent by the email@example.com list server http://www.uClinux.com/
This archive was generated by hypermail 2b30 : Sun Apr 07 2002 - 00:01:33 EST