[LLVMbugs] [Bug 6680] New: A dynamic link library (DLL) initialization routine failed.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Mar 22 20:17:25 PDT 2010


           Summary: A dynamic link library (DLL) initialization routine
           Product: tools
           Version: 2.6
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Keywords: miscompilation
          Severity: release blocker
          Priority: P
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: ga55gees6m at sneakemail.com
                CC: llvmbugs at cs.uiuc.edu

--- tdll.c ---
#define UNICODE

#include <windows.h>

int f(void)
    return 0;

__stdcall BOOL DllMain(HINSTANCE hInst, DWORD reason, void *reserved)
    OutputDebugString(L"dll: 123");
    return TRUE;

void g(const WCHAR *msg)
>llvm-gcc.exe -c tdll.c -o tdll.o -pipe -Wall

>ld --dll --subsystem windows -Bdynamic -nostdlib -
o tdll.dll tdll.o -L\pr\llvm\lib -lkernel32 -luser32 -s --fatal-warnings

test is a simple testing application which loads library and gets error
--- test.c ---
#define UNICODE
#include <windows.h>

void TraceError(void)
    WCHAR str[300];
    DWORD err=GetLastError();

int main()
    HMODULE m=LoadLibrary(L"tdll.dll");
    if(m)OutputDebugStringW(L"test: ok");
    else { OutputDebugStringW(L"test: fail"); TraceError(); }
    return 0;
Error: A dynamic link library (DLL) initialization routine failed. 
Interestingly, reordering functions in tdll.c yields different results - from
failure to success, optimization makes situation even worse. This is a reduced
testcase from miranda plugin project. I wondered, why miranda doesn't display
my plugin. It turned out dll built with llvm-gcc fails to initialize.
Blocker, can't work it around.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list