RE: [Flame Bait] - Linux as bloatware

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

 



On Tue, 2006-04-11 at 10:24 -0700, Styma, Robert E (Robert) wrote:
> My comment addressed why the multiple dll's become a problem.  You
> have a
> bunch of copies of the same dll in different locations at different
> revisions.
> One really big problem is that the newer dll's are not necessarily
> compatible
> with programs originally linked against one of the older dll's.  These
> incompatibilities
> often result in storage corruption and memory faults resulting from
> storage
> corruption.  When you have to track this down, you often find that in
> the application,
> when the "new" function gets called invoked which calls the
> constructor in the DLL,
> the size of the storage allocated by new does not match the size
> expected by the
> constructor in the DLL.  The constructor overruns the allocated space
> and corrupts
> whatever comes next or corrupts "free" space which later gets used and
> trashes
> the object.
> 
> The statements you made above are all true.  The result of the whole
> mess is that
> the user of the dll may end up (depending upon the order things are
> loaded, (note
> your mention of he dllcache)accessing a dll which is incompatible with
> the calls
> being made.  You actually can get yourself into the same mess with
> shared objects,
> but the UNIX approach helps you avoid getting the a mismatched copy.
> 
> Bob Styma 

The same problem that plagues OO functions may (and will) plague
'normal' non-OO C APIs.
Adding/changing a function's parameter size or packing (even when using
__stdcall)  is just as destructive as changing the class structure.
In general, once someone changes the DLL's interface, no matter how
minute the change is supposed to be, you're in for compatibility
problem.

In most cases OSS is free of these problems. Most applications within a
certain release are complied against each other and no major ABI changes
are allowed within the life span of the said release.
Unless you -really- FUBAR'ed your yum/apt repository, you should be
safe.

Gilboa


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux