Subject: RE: Apologies
From: [email-masked] (Pascal OBRY)

24 Feb 1998 02:42:38 -0800
Message-ID: <0735634F16C8B011*/c=fr/admd=atlas/prmd=edfgdf/o=der/ou=der-ccmail/s=Obry/g=Pascal/.cygnus.gnu-win32@MHS>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
To: "[email-masked]" <[email-masked]> (Return requested) (Receipt notification requested),
        "[email-masked]" <[email-masked]> (Return requested) (Receipt notification requested)
Cc: "[email-masked]" <[email-masked]> (Return requested),
        "[email-masked]" <[email-masked]> (Return requested)

> -----Message d'origine-----
> De:   [email-masked] 
> Date: samedi 21 février 1998 05:35
> À:    [email-masked]
> Cc:   [email-masked]; [email-masked]
> Objet:        Re: Apologies
> 
> >   Every week there is somebody that points that the example in the cygnus
> >   page copied verbatim will not work. What makes me mad, is that either the
> >   example DOES work, and then you put it in the FAQ (or better in the page
> >   itself) HOW TO MAKE IT WORK, or either it DOESN'T, then you take that
> >   page away! But I am getting mad again.
> 
> This is what I do to create a DLL with correct relocation
> information.  This example is taken from the Tcl Makefile which will
> be included with the b19 release.
> 
> Geoff, perhaps you could include something like this in the FAQ.
> 
> IMPORTANT NOTE: I have not tested this with b18.  I don't even have
> b18 loaded.  I have only tested it with the upcoming b19 release.
> 
> You must execute the following sequence of five commands, in this
> order:
> 
>  $(LD) -s --base-file BASEFILE --dll -o DLLNAME OBJS LIBS -e ENTRY
> 
>  $(DLLTOOL) --as=$(AS) --dllname DLLNAME --def DEFFILE --base-file BASEFILE
> --output-exp EXPFILE
> 
>  $(LD) -s --base-file BASEFILE EXPFILE -dll -o DLLNAME OBJS LIBS -e ENTRY
> 
>  $(DLLTOOL) --as=$(AS) --dllname DLLNAME --def DEFFILE --base-file BASEFILE
> --output-exp EXPFILE
> 
>  $(LD) EXPFILE --dll -o DLLNAME OBJS LIBS -e ENTRY
> 
> $(LD) is the linker, ld.
> 
> $(DLLTOOL) is dlltool.
> 
> $(AS) is the assembler, as.
> 

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.

For a non relocatable DLL you'll need (just from memory) :

  $(DLLTOOL) --dllname DLLNAME --def DEFFILE
        --output-exp EXPFILE --output-lib LIBFILE
 
  $(LD) EXPFILE -dll -o DLLNAME OBJS LIBS -e ENTRY

Pascal.

--|------------------------------------------------------------
--| Pascal Obry                               Team-Ada Member |
--|                                                           |
--| EDF-DER-IPN-SID- G A L A X I E                            |
--|                       Intranet: http://cln49ae            |
--| Bureau N-023            e-mail: [email-masked] |
--| 1 Av Général de Gaulle  voice : +33-1-47.65.50.91         |
--| 92141 Clamart CEDEX     fax   : +33-1-47.65.50.07         |
--| FRANCE                                                    |
--|------------------------------------------------------------
--|
--|   http://ourworld.compuserve.com/homepages/pascal_obry
--|
--|   "The best way to travel is by means of imagination"
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".