Fragile ABI

Paulo Pinto pjmlp at progtools.org
Fri Aug 17 13:49:21 PDT 2012


On Friday, 17 August 2012 at 17:42:24 UTC, Michel Fortin wrote:
> On 2012-08-17 14:00:42 +0000, "Paulo Pinto" 
> <pjmlp at progtools.org> said:
>
>> On Friday, 17 August 2012 at 13:42:27 UTC, Michel Fortin wrote:
>>> On 2012-08-17 12:36:56 +0000, "R Grocott" [..] (Windows does 
>>> not really have a dynamic linker).
>> 
>> Why? What is it lacking?
>> 
>> From my experience, I don't have much to complain about it.
>> 
>> Just wanting to know, not trolling.
>
> Quote from <http://xenophilia.org/winvunix.html>:
>
>> In Unix, a shared object (.so) file contains code to be used 
>> by the program, and also the names of functions and data that 
>> it expects to find in the program. When the file is joined to 
>> the program, all references to those functions and data in the 
>> file's code are changed to point to the actual locations in 
>> the program where the functions and data are placed in memory. 
>> This is basically a link operation.
>> In Windows, a dynamic-link library (.dll) file has no dangling 
>> references. Instead, an access to functions or data goes 
>> through a lookup table. So the DLL code does not have to be 
>> fixed up at runtime to refer to the program's memory; instead, 
>> the code already uses the DLL's lookup table, and the lookup 
>> table is modified at runtime to point to the functions and 
>> data.

For this just looks at two different ways to implement dynamic 
loading.

Having Windows experience since the Windows 3.1 days, alongside 
with
many other OS besides the typical Linux fan, I always find sad 
this vision
of Linux == UNIX, right, Windows wrong.

The author also recognises that Aix, which is UNIX, also has 
strange
dynamic loading rules, according to his understanding what 
dynamic loading
is.

--
Paulo



More information about the Digitalmars-d mailing list