delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/10/26/05:21:40

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Date: Thu, 26 Oct 2000 05:23:40 -0400
From: Jason Tishler <Jason DOT Tishler AT dothill DOT com>
To: Bernard Dautrevaux <Dautrevaux AT microprocess DOT com>
Cc: Cygwin <cygwin AT sources DOT redhat DOT com>
Subject: Re: Cygwin gcc/ld doesn't like some DLL filenames...
Message-ID: <20001026052340.B1024@OLMY>
References: <17B78BDF120BD411B70100500422FC6309E13F AT IIS000>
Mime-Version: 1.0
User-Agent: Mutt/1.2.5i
In-Reply-To: <17B78BDF120BD411B70100500422FC6309E13F@IIS000>; from Dautrevaux@microprocess.com on Thu, Oct 26, 2000 at 10:33:48AM +0200
Organization: Dot Hill Systems Corp.

On Thu, Oct 26, 2000 at 10:33:48AM +0200, Bernard Dautrevaux wrote:
> Sure you do not have any other "python2.0.dll" somewhere on your system
> (even if it's not on the PATH)?

Just to be safe, I did a find on my entire computer for "python2.0.dll".
I only found one -- the one that is part of my test case.

> Could you try "cygcheck -v ./main.exe" for both cases?

Bad main.exe:

    $ cygcheck -v ./main.exe
    ./main.exe - os=4.0 img=1.0 sys=4.0
      .\python2.0.dll - os=4.0 img=1.0 sys=4.0
        "python2.0.dll" v0.0 ts=2000/10/26 4:52
        C:\Cygwin\1.1.4\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
          "cygwin1.dll" v0.0 ts=2000/8/3 20:53
          C:\WINNT\System32\KERNEL32.dll - os=4.0 img=4.0 sys=4.0
            "KERNEL32.dll" v0.0 ts=1999/7/20 17:19
            C:\WINNT\System32\ntdll.dll - os=4.0 img=4.0 sys=4.0
              "ntdll.dll" v0.0 ts=1999/7/9 15:26
        C:\WINNT\System32\KERNEL32.dll (already done)
      C:\Cygwin\1.1.4\bin\cygwin1.dll (already done)
      C:\WINNT\System32\KERNEL32.dll (already done)

Good main.exe:

    $ cygcheck -v ./main.exe
    ./main.exe - os=4.0 img=1.0 sys=4.0
      C:\Cygwin\1.1.4\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
        "cygwin1.dll" v0.0 ts=2000/8/3 20:53
        C:\WINNT\System32\KERNEL32.dll - os=4.0 img=4.0 sys=4.0
          "KERNEL32.dll" v0.0 ts=1999/7/20 17:19
          C:\WINNT\System32\ntdll.dll - os=4.0 img=4.0 sys=4.0
            "ntdll.dll" v0.0 ts=1999/7/9 15:26
      C:\WINNT\System32\KERNEL32.dll (already done)
      .\python2.0.dll - os=4.0 img=1.0 sys=4.0
        "python2.0.dll" v0.0 ts=2000/10/26 4:52
        C:\Cygwin\1.1.4\bin\cygwin1.dll (already done)
        C:\WINNT\System32\KERNEL32.dll (already done)

So the above shows a "difference" in the ordering of the DLLs in
main.exe.  I also noticed this difference when fiddling about with
objdump -p:

Bad main.exe:

The Import Tables (interpreted .idata section contents)
 vma:            Hint    Time      Forward  DLL       First
                 Table   Stamp     Chain    Name      Thunk
 00004000       00004054 00000000 00000000 00004150 00004090

        DLL Name: python2.0.dll
        vma:  Hint/Ord Member-Name
        40c8        0  sub
        The Import Address Table is identical

 00004014       00004060 00000000 00000000 0000417c 0000409c

        DLL Name: cygwin1.dll
        vma:  Hint/Ord Member-Name
        40d0       24  __main
        40dc      540  calloc
        40e8      594  cygwin_internal
        40fc      611  dll_crt0__FP11per_process
        4118      676  free
        4120      812  malloc
        412c      893  realloc
        The Import Address Table is identical

 00004028       00004084 00000000 00000000 0000418c 000040c0

        DLL Name: KERNEL32.dll
        vma:  Hint/Ord Member-Name
        4138      290  GetModuleHandleA
        The Import Address Table is identical

Good main.exe:

The Import Tables (interpreted .idata section contents)
 vma:            Hint    Time      Forward  DLL       First
                 Table   Stamp     Chain    Name      Thunk
 00004000       00004054 00000000 00000000 00004168 00004090

        DLL Name: cygwin1.dll
        vma:  Hint/Ord Member-Name
        40c8       24  __main
        40d4      540  calloc
        40e0      594  cygwin_internal
        40f4      611  dll_crt0__FP11per_process
        4110      676  free
        4118      812  malloc
        4124      893  realloc
        The Import Address Table is identical

 00004014       00004078 00000000 00000000 00004178 000040b4

        DLL Name: KERNEL32.dll
        vma:  Hint/Ord Member-Name
        4130      290  GetModuleHandleA
        The Import Address Table is identical

 00004028       00004084 00000000 00000000 0000418c 000040c0

        DLL Name: python2.0.dll
        vma:  Hint/Ord Member-Name
        4144        0  sub
        The Import Address Table is identical

Does any of the above shed more light on the situation?

Note that if I change the name to Python2.0.dll, python2.1.dll,
python20.dll, or anything else that I can think of, main.exe run normally
even though its DLL ordering is the same as python2.0.dll.

Thanks,
Jason

-- 
Jason Tishler
Director, Software Engineering       Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corporation         Fax:   +1 (732) 264-8798
82 Bethany Road, Suite 7             Email: Jason DOT Tishler AT dothill DOT com
Hazlet, NJ 07730 USA                 WWW:   http://www.dothill.com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019