From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38932) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UpO6s-00039G-GZ for qemu-devel@nongnu.org; Wed, 19 Jun 2013 15:32:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UpO6m-0005QS-TQ for qemu-devel@nongnu.org; Wed, 19 Jun 2013 15:32:02 -0400 Received: from mail-vc0-f174.google.com ([209.85.220.174]:55522) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UpO6m-0005QE-N8 for qemu-devel@nongnu.org; Wed, 19 Jun 2013 15:31:56 -0400 Received: by mail-vc0-f174.google.com with SMTP id kw10so4062463vcb.5 for ; Wed, 19 Jun 2013 12:31:56 -0700 (PDT) Sender: Richard Henderson Message-ID: <51C20727.7020707@twiddle.net> Date: Wed, 19 Jun 2013 12:31:51 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1371576844-28743-1-git-send-email-mjt@msgid.tls.msk.ru> <51C1E335.9010304@redhat.com> <51C1F602.4040806@msgid.tls.msk.ru> <51C1FDF8.5030104@redhat.com> In-Reply-To: <51C1FDF8.5030104@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH 0/4] per-object libraries List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Michael Tokarev , qemu-devel@nongnu.org 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~