On 06/19/2013 11:52 AM, Paolo Bonzini wrote:
>> > Do we really need it for modules? I'm not sure. Actually, in a modern
>> > world, I'm not really sure libtool is needed if you only count "major"
>> > operating systems.
> Do you also count one major proprietary operating system? Unfortunately
> mingw still requires magic to create shared libraries.
Does it? It sure doesn't seem like it to me:
----
$ cat z.c
int __attribute__((dllexport)) foo(int x)
{
return x + 1;
}
$ x86_64-w64-mingw32-gcc -shared -o z.dll z.c
$ file z.dll
z.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows
$ x86_64-w64-mingw32-objdump.exe -p z.dll
...
There is an export table in .edata at 0x6788c000
The Export Tables (interpreted .edata section contents)
Export Flags 0
Time/Date stamp 51c20613
Major/Minor 0/0
Name 000000000000c032 z.dll
Ordinal Base 1
Number in:
Export Address Table 00000001
[Name Pointer/Ordinal] Table 00000001
Table Addresses
Export Address Table 000000000000c028
Name Pointer Table 000000000000c02c
Ordinal Table 000000000000c030
Export Address Table -- Ordinal Base 1
[ 0] +base[ 1] 1470 Export RVA
[Ordinal/Name Pointer] Table
[ 0] foo
----
I didn't happen to happen to have the 32-bit mingw installed in this VM, but I
don't imagine it's much different from the 64-bit version.
r~