This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Cygwin gcc/ld doesn't like some DLL filenames...


This one is almost embarrassing...

If I create a DLL called python2.0.dll and link with its import library
from a different directory, then the resulting executable crashes.  If I
link in the same directory as the import library, then the resulting
executable runs normally.  If I change the name of the DLL to something
else and link with its import library from a different directory, then
the resulting executable runs normally.

Can anyone explain this strange behavior?  Is there some perl conspiracy
going on here? :,)

The following is the steps to reproduce this problem:

    $ gcc -c sub.c
    $ gcc -c main.c
    $ dlltool --export-all --output-def sub.def sub.o
    $ gcc -shared -Wl,--enable-auto-image-base -o python2.0.dll -Wl,--out-implib=libsub.dll.a sub.def sub.o
    $ mkdir dir
    $ cd dir
    $ gcc ../main.o ../libsub.dll.a -o ../main
    $ cd ..
    $ ./main
          0 [main] main 12817 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
       1292 [main] main 12817 stackdump: Dumping stack trace to main.exe.stackdump

But if I link in the same directory as the import library, then main
executes normally:

    $ gcc main.o libsub.dll.a -o main
    $ ./main
    hello

Or if I change the name of the DLL to something else (i.e., python2.1.dll),
then main also executes normally:

    $ gcc -shared -Wl,--enable-auto-image-base -o python2.1.dll -Wl,--out-implib=libsub.dll.a sub.def sub.o
    Creating library file: libsub.dll.a
    $ cd dir
    $ gcc ../main.o ../libsub.dll.a -o ../main
    $ cd ..
    $ ./main
    hello

See attached for sub.c, main.c, and my cygcheck output.

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.Tishler@dothill.com
Hazlet, NJ 07730 USA                 WWW:   http://www.dothill.com
#include <stdio.h>

void
sub()
{
	printf("hello\n");
}
void sub();

int
main()
{
	sub();
	return 0;
}

Cygnus Win95/NT Configuration Diagnostics
Current System Time: Wed Oct 25 16:18:36 2000

WinNT Ver 4.0 build 1381 Service Pack 5

Path:	/home/jt/bin
	/usr/local/bin
	/usr/bin
	/apps/cvs-1.10
	/apps/vim/vim56
	/mnt/c/WINNT/system32
	/mnt/c/WINNT
	/apps/ntreskit
	/apps/perl5.00402/bin
	/mnt/d/Program Files/Python
	/mnt/d/Program Files/Tcl/bin
	/apps/InstallShield/InstallShield 5.5 Professional Edition/Program
	/apps/InstallShield/PackageForTheWeb 2
	.

SysDir: C:\WINNT\System32
WinDir: C:\WINNT

CYGWIN = `binmode notty'
HOME = `/home/jt'
MAKE_MODE = `UNIX'
PWD = `/tmp/dll'

CDPATH = `.:/home/jt:/home/jt/src:/home/jt/lib'
CEPATH = `/home/jt/.environments:/usr/local/environments'
COLORFGBG = `0;default;15'
COLORTERM = `rxvt-xpm'
COMPUTERNAME = `KOSH'
COMSPEC = `C:\WINNT\system32\cmd.exe'
CVSEDITOR = `gvim'
CYGWINDIR = `D:\Cygwin\1.1.4'
DISPLAY = `:0'
EXINIT = `se ai ts=4 sw=4'
FIT_HISTFILE = `H:\.fit_history'
FIT_HISTSIZE = `10240'
HISTCONTROL = `ignoredups'
HISTSIZE = `10240'
HOMEDRIVE = `H:'
HOMEPATH = `\'
HOMESHARE = `\\cancerman\home.jt'
HOSTNAME = `kosh'
HOSTTYPE = `i686'
INPUTRC = `H:\.inputrc'
LOGNAME = `jt'
LOGONSERVER = `\\CANCERMAN'
MACHTYPE = `i686-pc-cygwin'
MSINPUT = `C:\Program Files\Microsoft Hardware'
MUTTIMAP = `/mnt/d/mutt/imap'
NUMBER_OF_PROCESSORS = `1'
OLDPWD = `/tmp/dll/dir'
OLDVIM = `K:\vim'
OS2LIBPATH = `C:\WINNT\system32\os2\dll;'
OS = `Windows_NT'
OSTYPE = `cygwin'
PAGER = `less'
PROCESSOR_ARCHITECTURE = `x86'
PROCESSOR_IDENTIFIER = `x86 Family 6 Model 7 Stepping 3, GenuineIntel'
PROCESSOR_LEVEL = `6'
PROCESSOR_REVISION = `0703'
PS1 = `kosh[\w]\n$ '
PYTHONSTARTUP = `H:\.pythonrc.py'
SHELL = `/bin/bash'
SHLVL = `1'
SPDENV = `C:\Program Files\StorageTek\SVA Path'
SYSTEMDRIVE = `C:'
SYSTEMROOT = `C:\WINNT'
TEMP = `/mnt/c/TEMP'
TERM = `rxvt'
TMP = `/mnt/c/tmp'
USERDOMAIN = `BHMCO'
USERNAME = `jt'
USERPROFILE = `C:\WINNT\Profiles\jt'
VIM = `/usr/local/share/vim'
VISUAL = `vi'
WINDIR = `C:\WINNT'
WINDOWID = `168105064'
_ = `/usr/bin/cygcheck'
command_oriented_history = `1'
TZ = `EST5EDT4,M4.1.0/2,M10.5.0/2'

HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/home/jt
  (default) = `H:'
  flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\00
  (default) = `k:\usr'
  unix = `/usr'
  fbinary = 0x00000001
  fsilent = 0x00000000
  fmixed = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\01
  (default) = `s:'
  unix = `/s'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\02
  (default) = `j:'
  unix = `/j'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\03
  (default) = `h:'
  unix = `/home'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\04
  (default) = `a:'
  unix = `/floppy'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\05
  (default) = `k:\gnu-win32\x86\cygwin-b20\etc'
  unix = `/etc'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\06
  (default) = `d:'
  unix = `/d'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\07
  (default) = `e:'
  unix = `/cdrom'
  fmixed = 0x00000000
  fbinary = 0x00000001
  fsilent = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\08
  (default) = `k:\gnu-win32\x86\cygwin-b20\H-i586-cygwin32\bin'
  unix = `/bin'
  fbinary = 0x00000001
  fsilent = 0x00000000
  fmixed = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\09
  (default) = `k:'
  unix = `/apps'
  fbinary = 0x00000001
  fsilent = 0x00000000
  fmixed = 0x00000000
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0A
  (default) = `c:'
  unix = `/'
  fbinary = 0x00000001
  fsilent = 0x00000000
  fmixed = 0x00000000
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\&Programs\Cygnus Solutions
  (default) = (unsupported type)
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2
  (default) = `/mnt'
  cygdrive flags = 0x0000002a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/
  (default) = `D:\Cygwin\1.1.4'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/apps
  (default) = `K:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/cdrom
  (default) = `E:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/dev/hd0
  (default) = `//./C:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/dev/hd1
  (default) = `//./D:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/dev/hd2
  (default) = `//./K:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/floppy
  (default) = `A:'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/opt/MSFTddk
  (default) = `K:/DDK'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/opt/MSFTvs
  (default) = `D:/Program Files/Microsoft Visual Studio'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
  (default) = `D:\Cygwin\1.1.4\bin'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/java
  (default) = `K:\jdk1.3'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
  (default) = `D:/Cygwin/1.1.4/lib'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/local/ooc
  (default) = `K:\OOC-4.0.2'
  flags = 0x0000000a
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\00
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\01
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\02
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\03
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\04
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\05
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\06
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\07
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\08
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\09
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0A
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0B
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0C
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0D
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0E
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\0F
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\10
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\11
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\12
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\13
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\14
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\15
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\16
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\17
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\18
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\19
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\1A
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\1B
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\1C
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\1D

a:  fd           N/A    N/A                    
c:  hd  NTFS    4094Mb  20% CP CS UN PA FC     System Disk
d:  hd  NTFS   15374Mb  15% CP CS UN PA FC     Application Disk
e:  fd           N/A    N/A                    
f:  cd  CDFS     124Mb 100%    CS UN           000613_1050
g:  net NTFS    4094Mb  84% CP CS UN PA FC     System Disk
h:  net NTFS    8191Mb  78% CP CS UN PA FC     USERS
k:  net NTFS   17365Mb  30% CP CS UN PA FC     APPS
z:  net          N/A    N/A                    

D:\Program Files\Microsoft Visual Studio  /opt/MSFTvs  system  binmode
D:\Cygwin\1.1.4\bin  /usr/bin  system  binmode
D:\Cygwin\1.1.4\lib  /usr/lib  system  binmode
D:\Cygwin\1.1.4  /        system  binmode
K:\OOC-4.0.2  /usr/local/ooc  system  binmode
K:\jdk1.3  /usr/java  system  binmode
K:\DDK  /opt/MSFTddk  system  binmode
\\.\C:  /dev/hd0  system  binmode
\\.\D:  /dev/hd1  system  binmode
\\.\K:  /dev/hd2  system  binmode
A:    /floppy  system  binmode
E:    /cdrom   system  binmode
H:    /home/jt  user    binmode
K:    /apps    system  binmode

Found: D:\Cygwin\1.1.4\bin\bash.exe
Found: D:\Cygwin\1.1.4\bin\cat.exe
Found: K:\ntreskit\cat.exe
Warning: D:\Cygwin\1.1.4\bin\cat.exe hides K:\ntreskit\cat.exe
Found: D:\Cygwin\1.1.4\bin\cpp.exe
Found: D:\Cygwin\1.1.4\bin\find.exe
Found: D:\Cygwin\1.1.4\bin\gcc.exe
Found: D:\Cygwin\1.1.4\bin\gdb.exe
Found: D:\Cygwin\1.1.4\bin\ld.exe
Found: D:\Cygwin\1.1.4\bin\ls.exe
Found: K:\ntreskit\ls.exe
Warning: D:\Cygwin\1.1.4\bin\ls.exe hides K:\ntreskit\ls.exe
Found: D:\Cygwin\1.1.4\bin\make.exe
Found: D:\Cygwin\1.1.4\bin\sh.exe

   83k 2000/06/11 D:\Cygwin\1.1.4\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitcl30.dll" v0.0 ts=2000/6/10 23:34
   35k 2000/06/11 D:\Cygwin\1.1.4\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0
                  "cygitk30.dll" v0.0 ts=2000/6/10 23:34
  402k 2000/06/11 D:\Cygwin\1.1.4\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=2000/6/10 23:30
    5k 2000/06/11 D:\Cygwin\1.1.4\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
   10k 2000/06/11 D:\Cygwin\1.1.4\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=2000/6/10 23:30
  639k 2000/06/11 D:\Cygwin\1.1.4\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=2000/6/10 23:34
 3738k 2000/10/20 D:\Cygwin\1.1.4\bin\cygwin1-2000-10-20.dll - os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=2000/10/20 10:07
  586k 2000/08/04 D:\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
    Cygwin DLL version info:
        dll major: 1001
        dll minor: 4
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        api major: 0
        api minor: 26
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        build date: Thu Aug 3 20:53:46 EDT 2000
        CVS tag: cygwin-1-1-4
        shared id: cygwin1S3

Use -h to see help about each section

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]