This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Performance issue with GNU/ld and DLL
- From: Pascal Obry <pascal at obry dot net>
- To: binutils at sourceware dot org
- Date: Sat, 28 Jan 2012 14:55:38 +0100
- Subject: Performance issue with GNU/ld and DLL
- Reply-to: pascal at obry dot net
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
#! /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