2010/4/23 ольга крыжановская <olga.kryzhanov...@gmail.com>: > Nicolas, Roland can state the exact reason for the design choice but > as far as I know it was an explicit choice *not* to use interposers. > There are a couple of warnings in his notes to verify for each update > that no interposing *must* happen.
AFAIK I can bring some light into the story. Interposition has some serious side effects: 1. Interposition only works reliable for executables but *NOT* for shared libraries. It can't be used if we want to use AST stdio or sfio in libperl, libfreetype2 or X11. The implementation in ON allows that a single application or shared library can mix different types of stdio and other function packages without trouble. 2. Interposition is very slow. I helped Roland looking at the time needed to load the libraries and reducing the overhead of loading them. Using interposition destroys this advantage and affects the start up time of every application which uses libast. 3. Interposition requires that the ABI of shared libraries must match 100% the API it replaces. This would be a disaster in many cases like stdio because the change in ABI is actually what fixed so many problems, i.e. stdio, regex, fnmatch, ... are all great examples where the Solaris API is broken beyond repair. Unfortunately Sun was never willing to fix those problems and added kludges on top of the existing problems instead. The actual *bold* step of replacing the implementation (and keep the old available via ELF version) was sadly never done. Irek _______________________________________________ ksh93-integration-discuss mailing list ksh93-integration-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss