From: ian AT cygnus DOT com (Ian Lance Taylor) Subject: Re: Apologies 23 Feb 1998 19:21:55 -0800 Message-ID: <199802231710.MAA09092.cygnus.gnu-win32@subrogation.cygnus.com> References: <0735634F16C8B011*/c=fr/admd=atlas/prmd=edfgdf/o=der/ou=der-ccmail/s=Obry/g=Pascal/@MHS> To: Pascal DOT Obry AT der DOT edfgdf DOT fr Cc: root AT jacob DOT remcomp DOT fr, gnu-win32 AT cygnus DOT com, noer AT cygnus DOT com Date: 23 Feb 1998 13:33:15 +0100 From: Pascal OBRY It seem to me that there is some steps not needed ! $(LD) --base-file BASEFILE --dll -o DLLNAME OBJS LIBS -e ENTRY $(DLLTOOL) --dllname DLLNAME --def DEFFILE --base-file BASEFILE --output-exp EXPFILE --output-lib LIBFILE $(LD) EXPFILE -dll -o DLLNAME OBJS LIBS -e ENTRY This make a relocatable DLL and the import library file (LIBFILE .a). This has worked fine everytime for me. It's true that you can combine the --output-lib with an earlier invocation of dlltool. However, skipping the second round of dlltool and ld can lead to trouble in certain cases, depending upon how your linker script is set up, what you have in DEFFILE, and what exactly goes into EXPFILE. For example, if you use the DESCRIPTION keyword in your DLL file, EXPFILE will put stuff into the .rdata section, which can change the addresses of other sections, and invalidate the BASEFILE and hence the EXPFILE. If you know what you are doing, you can use a shorter procedure. I was describing a procedure which I hope will always work in every case for everyone. Ian - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".