[prev in list] [next in list] [prev in thread] [next in thread] 

List:       binutils
Subject:    Performance issue with GNU/ld and DLL
From:       Pascal Obry <pascal () obry ! net>
Date:       2012-01-28 13:55:38
Message-ID: 4F23FE5A.7040108 () obry ! net
[Download RAW message or body]

Hello,

This is a performance issue report when building DLL on Windows. To
reproduce I have attached a python script (to generate C files).

The steps to reproduce are:

Run gen.py on an empty directory.

$ gcc -c *.c

$ time gcc -o main.exe *.o

takes 0.4 seconds.

$ time gcc -shared -o dll.dll *.o

takes 12 seconds.

It seems that the times goes exponentially. I had generated 1000 files
instead of 200 (N=1000 in gen.py) and I had to kill the linker command
after 10 minutes.

Is that a known problem?

Is there a workaround?

Thanks in advance.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B


["gen.py" (text/x-python)]

#! /usr/bin/python

m = open ("main.c", "w")
m.write ("void main ()\n");
m.write ("{\n")

N=200

for k in range(1,N):
    f = open ("file" + str(k) + ".c", "w")
    for n in range(1,N):
        f.write ("void call" + str(k) + "_" + str(n) + "() {}");
    f.close
    m.write ("   call" + str(k) + "_" + str(k) + " ();\n");

m.write ("}\n")
m.close


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic