Fundamental defect of the concept of shared libraries

Masataka Ohta mohta at necom830.cc.titech.ac.jp
Thu May 30 22:55:47 AEST 1991


In article <8054 at auspex.auspex.com>
	guy at auspex.auspex.com (Guy Harris) writes:

>>STRCMP() is source code level inlining of strcmp(), *NOT* strcmp()
>>in a shared library.

>Yes, that's exactly what I said!  It's source-code-level inlining, which
>works JUST FINE with "strcmp()" in a shared library.

No. You said:

>"In-lining of functions in shared libraries" is, of course, *NOT*
>"impossible", as demonstrated by that.

while I said:

:In-lining of functions in shared libraries is, of course, impossible.

As you agree now, strcmp() in a shared library is not in-lined.

In article <8057 at auspex.auspex.com>
	guy at auspex.auspex.com (Guy Harris) writes:

>I've indicated *several times* how that not only *can* be done, but how
>t *is* done on Suns, in the case of virtual address caches:
>
>	ensure that all the virtual addresses get mapped to the same
>	cache line by aligning the mappings properly

See <244 at titccy.cc.titech.ac.jp>:

:The problem is that, to support shared libraries, strict PIC is not required.
:
:Instead, it is required that the same code runs if the relocation is
:multiple of some constant.

In this case, cache size can be the constant.

>	have the virtual addresses in the inverted page table be
>	addresses in the *global* virtual address space, because a given
>	page has only one virtual address in *that* space;

In this case, segment size of the global virtual address space can be the
constant.

							Masataka Ohta



More information about the Comp.unix.internals mailing list