public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* dlltool import library build optimization
@ 1999-12-22 11:27 Mumit Khan
  1999-12-22 16:15 ` Ian Lance Taylor
  0 siblings, 1 reply; 9+ messages in thread
From: Mumit Khan @ 1999-12-22 11:27 UTC (permalink / raw)
  To: binutils

When building large DLLs, especially C++ ones, dlltool can take
inordinately long time to and take the file system to its knees
while it's creating those thousands of small files, one per
symbol. For those who actually have to use a native windows
machine, this can make it almost impossible to use dlltool to
create import libraries with say 10k symbols thanks to all the
files it needs to create first.

I know zilch about bfd backend, so perhaps someone can help me
here. Is there anyway we can bunch up say 100 symbols, create
the archive, and move to the next? The current scheme uses
the following technique:

  
  open a new bfd for writing (output_bfd)
  
  make head bfd
  make tail bfd

  for each exports
    make a new bfd and add it to the chain
  done

  Reorganize the chain of bfd's

  set the output_bfd archive head to the created chain

  close output_bfd


Is there a way for creating the output bfd a few at a time? Would
bfd_openw kill the current contents and start from scratch?

Regards,
Mumit


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  1999-12-22 11:27 dlltool import library build optimization Mumit Khan
@ 1999-12-22 16:15 ` Ian Lance Taylor
  1999-12-23 13:24   ` Mumit Khan
  2000-01-03 12:06   ` Mumit Khan
  0 siblings, 2 replies; 9+ messages in thread
From: Ian Lance Taylor @ 1999-12-22 16:15 UTC (permalink / raw)
  To: khan; +Cc: binutils

   Date: Wed, 22 Dec 1999 13:27:33 -0600 (CST)
   From: Mumit Khan <khan@NanoTech.Wisc.EDU>

   When building large DLLs, especially C++ ones, dlltool can take
   inordinately long time to and take the file system to its knees
   while it's creating those thousands of small files, one per
   symbol. For those who actually have to use a native windows
   machine, this can make it almost impossible to use dlltool to
   create import libraries with say 10k symbols thanks to all the
   files it needs to create first.

dlltool doesn't have to create any files at all.  That's a horrible
hack.  It should just build the BFD's in memory.

Ian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  1999-12-22 16:15 ` Ian Lance Taylor
@ 1999-12-23 13:24   ` Mumit Khan
  2000-01-03 12:06   ` Mumit Khan
  1 sibling, 0 replies; 9+ messages in thread
From: Mumit Khan @ 1999-12-23 13:24 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils

Ian Lance Taylor <ian@zembu.com> writes:
> 
> dlltool doesn't have to create any files at all.  That's a horrible
> hack.  It should just build the BFD's in memory.
> 

I agree. DJ has already done it in pe-dll, and it's a matter of reusing
that in dlltool. I'll give it a shot when I get back in a week or so.

Regards,
Mumit

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  1999-12-22 16:15 ` Ian Lance Taylor
  1999-12-23 13:24   ` Mumit Khan
@ 2000-01-03 12:06   ` Mumit Khan
  2000-04-01  0:00     ` Mumit Khan
  1 sibling, 1 reply; 9+ messages in thread
From: Mumit Khan @ 2000-01-03 12:06 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils, nickc

Ian Lance Taylor <ian@zembu.com> writes:
> 
> dlltool doesn't have to create any files at all.  That's a horrible
> hack.  It should just build the BFD's in memory.
> 

I'm about to submit patches for dlltool that will build the BFD's in
memory. However, I have no clue how to do this for non-i386pe targets,
so I'll just submit what I have and hope that Nick and others can fill
in the rest. My changes are essentially DJ's pe-dll retrofitted into
dlltool, with a few tweaks. Needs testing and cleanup.

Ideas, Nick?

Regards,
Mumit

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  2000-01-03 12:06   ` Mumit Khan
@ 2000-04-01  0:00     ` Mumit Khan
  0 siblings, 0 replies; 9+ messages in thread
From: Mumit Khan @ 2000-04-01  0:00 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils, nickc

Ian Lance Taylor <ian@zembu.com> writes:
> 
> dlltool doesn't have to create any files at all.  That's a horrible
> hack.  It should just build the BFD's in memory.
> 

I'm about to submit patches for dlltool that will build the BFD's in
memory. However, I have no clue how to do this for non-i386pe targets,
so I'll just submit what I have and hope that Nick and others can fill
in the rest. My changes are essentially DJ's pe-dll retrofitted into
dlltool, with a few tweaks. Needs testing and cleanup.

Ideas, Nick?

Regards,
Mumit

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  2000-01-03 12:09 Nick Clifton
  2000-01-03 12:39 ` Mumit Khan
@ 2000-04-01  0:00 ` Nick Clifton
  1 sibling, 0 replies; 9+ messages in thread
From: Nick Clifton @ 2000-04-01  0:00 UTC (permalink / raw)
  To: khan; +Cc: ian, binutils

Hi Mumit,

: > dlltool doesn't have to create any files at all.  That's a horrible
: > hack.  It should just build the BFD's in memory.
: > 
: 
: I'm about to submit patches for dlltool that will build the BFD's in
: memory. However, I have no clue how to do this for non-i386pe targets,
: so I'll just submit what I have and hope that Nick and others can fill
: in the rest. My changes are essentially DJ's pe-dll retrofitted into
: dlltool, with a few tweaks. Needs testing and cleanup.
: 
: Ideas, Nick?

Non i386-pe DLLs are pretty much the same as i386-pe ones.  I will be
happy to check your patches against eg arm and mcore and fix any
problems that may arise.

Cheers
	Nick

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  2000-01-03 12:39 ` Mumit Khan
@ 2000-04-01  0:00   ` Mumit Khan
  0 siblings, 0 replies; 9+ messages in thread
From: Mumit Khan @ 2000-04-01  0:00 UTC (permalink / raw)
  To: Nick Clifton; +Cc: ian, binutils

Nick Clifton <nickc@cygnus.com> writes:
> 
> Non i386-pe DLLs are pretty much the same as i386-pe ones.  I will be
> happy to check your patches against eg arm and mcore and fix any
> problems that may arise.
> 

Thanks. I'll dig out, clean, test and submit later this week. In my
initial tests, I could build a large implib in < 1/10th the time 
needed normally on Linux; it's almost impossible to build the particular 
implib on a FAT FS since it pretty much chokes the OS with about ~12k
tiny files.

Regards,
Mumit

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
  2000-01-03 12:09 Nick Clifton
@ 2000-01-03 12:39 ` Mumit Khan
  2000-04-01  0:00   ` Mumit Khan
  2000-04-01  0:00 ` Nick Clifton
  1 sibling, 1 reply; 9+ messages in thread
From: Mumit Khan @ 2000-01-03 12:39 UTC (permalink / raw)
  To: Nick Clifton; +Cc: ian, binutils

Nick Clifton <nickc@cygnus.com> writes:
> 
> Non i386-pe DLLs are pretty much the same as i386-pe ones.  I will be
> happy to check your patches against eg arm and mcore and fix any
> problems that may arise.
> 

Thanks. I'll dig out, clean, test and submit later this week. In my
initial tests, I could build a large implib in < 1/10th the time 
needed normally on Linux; it's almost impossible to build the particular 
implib on a FAT FS since it pretty much chokes the OS with about ~12k
tiny files.

Regards,
Mumit

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: dlltool import library build optimization
@ 2000-01-03 12:09 Nick Clifton
  2000-01-03 12:39 ` Mumit Khan
  2000-04-01  0:00 ` Nick Clifton
  0 siblings, 2 replies; 9+ messages in thread
From: Nick Clifton @ 2000-01-03 12:09 UTC (permalink / raw)
  To: khan; +Cc: ian, binutils

Hi Mumit,

: > dlltool doesn't have to create any files at all.  That's a horrible
: > hack.  It should just build the BFD's in memory.
: > 
: 
: I'm about to submit patches for dlltool that will build the BFD's in
: memory. However, I have no clue how to do this for non-i386pe targets,
: so I'll just submit what I have and hope that Nick and others can fill
: in the rest. My changes are essentially DJ's pe-dll retrofitted into
: dlltool, with a few tweaks. Needs testing and cleanup.
: 
: Ideas, Nick?

Non i386-pe DLLs are pretty much the same as i386-pe ones.  I will be
happy to check your patches against eg arm and mcore and fix any
problems that may arise.

Cheers
	Nick

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2000-04-01  0:00 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-12-22 11:27 dlltool import library build optimization Mumit Khan
1999-12-22 16:15 ` Ian Lance Taylor
1999-12-23 13:24   ` Mumit Khan
2000-01-03 12:06   ` Mumit Khan
2000-04-01  0:00     ` Mumit Khan
2000-01-03 12:09 Nick Clifton
2000-01-03 12:39 ` Mumit Khan
2000-04-01  0:00   ` Mumit Khan
2000-04-01  0:00 ` Nick Clifton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).