[GHC] #2022: DLL support broken

GHC trac at galois.com
Mon Jan 7 09:41:01 EST 2008


#2022: DLL support broken
-------------------------+--------------------------------------------------
    Reporter:  mte       |       Owner:         
        Type:  bug       |      Status:  new    
    Priority:  normal    |   Milestone:         
   Component:  Compiler  |     Version:  6.8.2  
    Severity:  normal    |    Keywords:         
  Difficulty:  Unknown   |    Testcase:         
Architecture:  x86       |          Os:  Windows
-------------------------+--------------------------------------------------
 Creating a DLL using the -shared option does not work for me:

 1. ghc tries to create a static library (foobar.dll.a).

 2. The linker complains about missing symbols.

 Building an executable from the same project works fine and the resulting
 executable runs all unit tests without errors.

 With 6.6 and the --mk-dll option, the DLL was built without problems.


 /vol/c/ghc/ghc-6.8.2/bin/ghc.exe \
           -fglasgow-exts  -odir ../targets/i686-CYGWIN_NT-5.1/plain -hidir
 ../targets/i686-CYGWIN_NT-5.1/plain -i../targets/i686-CYGWIN_NT-5.1/plain
 +RTS -M64m -RTS \
           -shared \
           -o ../targets/i686-CYGWIN_NT-5.1/plain/foobar.dll \
           foobar.def \
           ../targets/i686-CYGWIN_NT-5.1/plain/*.o
 Creating library file: ..\targets\i686-CYGWIN_NT-5.1\plain\foobar.dll.a
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1696):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x44c3):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_zdf3_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x7e6d):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0xf392):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0xf3f6):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_insert_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0xf8e3):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0xf933):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_sizze_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0xffae):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x10012):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_insert_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x10076):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x100c7):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x101ef):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_null_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x125e7):fake:
 undefined reference to
 `containerszm0zi1zi0zi1_DataziSet_toAscList_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x133e2):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1c91f):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1ca0f):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_sizze_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1cecb):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_sizze_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1cfb0):fake:
 undefined reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1f3ec):fake:
 undefined reference to
 `containerszm0zi1zi0zi1_DataziSet_singleton_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1fdd5):fake:
 undefined reference to `__stginit_arrayzm0zi1zi0zi0_DataziArray_'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1fdf3):fake:
 undefined reference to `__stginit_containerszm0zi1zi0zi1_DataziSet_'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1fdfd):fake:
 undefined reference to `__stginit_haskell98_List_'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.text+0x1fe07):fake:
 undefined reference to `__stginit_haskell98_Maybe_'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x124):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x3dc):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_zdf3_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x4a8):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xdc0):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xdd8):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_insert_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xe48):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_sizze_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xe4c):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xf58):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xf70):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_insert_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xf88):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_delete_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xfc4):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_null_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0xfc8):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x118c):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x1190):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_toAscList_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x192c):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_empty_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x1930):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_sizze_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x1934):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_elems_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/foobar.o(.data+0x19f4):fake: undefined
 reference to `containerszm0zi1zi0zi1_DataziSet_singleton_closure'
 ../targets/i686-CYGWIN_NT-5.1/plain/Types.o(.text+0xa5b9):fake: undefined
 reference to `__stginit_arrayzm0zi1zi0zi0_DataziArray_'
 collect2: ld returned 1 exit status

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2022>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list