This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with ruby and cygssl-0.9.8.dll


Geoffrey T. Cheshire wrote:
The issue is well stated here:
http://cygwin.com/ml/cygwin/2005-10/msg00873.html

Though some of the points made there aren't necessarily as stated.


Brian - you said:

  You can get around this by setting up some kind of registry
  of assigned base addresses, or treating the problem like a heap,
  but that get extraordinarily more complex because you have to
  maintain state.

The registry of assigned base addresses isn't that difficult of a problem - SGI had such a rebasing mechanism (with a permanent text-format base address database) even back in 1994.

Every time rebaseall (or its equivalent on Irix - forgotten what it was called) was run, it would start with the DB contents, validate them (quick), and mark any DLLs that were not in the DB, or were invalid (didn't match the DB base and size).

So it only had to do a relatively small number of DLLs on subsequent passes, and so the system installer would run a default "rebaseall" after installing or removing *any* package. (When removing a package, the corresponding entries were removed from the DB to make room for other DLLs).

The only problem with this was that over the long term, it would end up fragmenting the address space somewhat (the old malloc problem), so there was a force option to rebase everything ignoring the DB (which was also the cleanup option if something got badly corrupted).


-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]