From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32716 invoked by alias); 16 Dec 2008 16:31:03 -0000 Received: (qmail 32702 invoked by uid 22791); 16 Dec 2008 16:31:00 -0000 X-SWARE-Spam-Status: No, hits=3.6 required=5.0 tests=AWL,BAYES_50,FORGED_MUA_OUTLOOK,J_CHICKENPOX_14,SPF_PASS X-Spam-Check-By: sourceware.org Received: from bay0-omc3-s8.bay0.hotmail.com (HELO bay0-omc3-s8.bay0.hotmail.com) (65.54.246.208) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 16 Dec 2008 16:30:23 +0000 Received: from hotmail.com ([10.6.6.19]) by bay0-omc3-s8.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 16 Dec 2008 08:30:21 -0800 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue, 16 Dec 2008 08:30:21 -0800 Message-ID: Received: from 68.42.219.54 by BLU138-DAV9.phx.gbl with DAV; Tue, 16 Dec 2008 16:30:19 +0000 X-Sender: d2walter@hotmail.com From: "Daniel Walter" To: "Andrew Haley" Cc: References: <49478553.4090906@redhat.com> Subject: Re: creating shared dlls yields undefined reference to `WinMain@16' in mingw 4.3 Date: Tue, 16 Dec 2008 16:31:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg00031.txt.bz2 It appears that libmingw.a is causing the problem, though this library can be linked to form a dll as long as no gcj object files are linked as well. Below are the results of the attempts to link with 'g++ -v' first with gcj objects which failed and the second time with only g++ objects. g++ -shared -v ads\pdflink.o pdflib.a -lgcj -lws2_32 -o pdflib.dll Using built-in specs. Target: mingw32 Configured with: ./gcc-4.3.0/configure --enable-languages=c,ada,c++,fortran,jav a,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enabl e-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enab le-concept-checks --enable-version-specific-runtime-libs --build=mingw32 --with- bugurl=http://www.mingw.org/bugs.shtml --prefix=/mingw --with-gmp=/mingw/src/gcc /gmp-mpfr-root --with-mpfr=/mingw/src/gcc/gmp-mpfr-root --with-libiconv-prefix=/ mingw/src/gcc/libiconv-root Thread model: win32 gcc version 4.3.0 20080305 (alpha-testing) mingw-20080502 (GCC) COMPILER_PATH=c:/documents and settings/dan/my documents/programs/cygwin/home/da n/ming/bin/../libexec/gcc/mingw32/4.3.0/;c:/documents and settings/dan/my docume nts/programs/cygwin/home/dan/ming/bin/../libexec/gcc/;c:/documents and settings/ dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../. /../../mingw32/bin/ LIBRARY_PATH=c:/documents and settings/dan/my documents/programs/cygwin/home/dan /ming/bin/../lib/gcc/mingw32/4.3.0/;c:/documents and settings/dan/my documents/p rograms/cygwin/home/dan/ming/bin/../lib/gcc/;c:/documents and settings/dan/my do cuments/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../../../m ingw32/lib/;c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ ming/bin/../lib/gcc/mingw32/4.3.0/../../../ COLLECT_GCC_OPTIONS='-shared' '-v' '-o' 'pdflib.dll' '-mtune=i386' c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/.. /libexec/gcc/mingw32/4.3.0/collect2.exe --shared -Bdynamic -e _DllMainCRTStartup @12 --enable-auto-image-base -o pdflib.dll c:/documents and settings/dan/my docu ments/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../../dllcrt 2.o c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin /../lib/gcc/mingw32/4.3.0/crtbegin.o -Lc:/documents and settings/dan/my document s/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0 -Lc:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/gcc -Lc:/docu ments and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/gcc /mingw32/4.3.0/../../../../mingw32/lib -Lc:/documents and settings/dan/my docume nts/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../.. ads\pdfl ink.o pdflib.a -lgcj -lws2_32 -lstdc++ -lmingw32 -lgcc -lmoldname -lmingwex -lms vcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmingw ex -lmsvcrt c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ ming/bin/../lib/gcc/mingw32/4.3.0/crtend.o c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/../ lib/gcc/mingw32/4.3.0/../../../libmingw32.a(main.o):main.c:(.text+0xbd): undefin ed reference to `WinMain@16' collect2: ld returned 1 exit status ========================================================================== g++ -shared -v dlltest.o -lgcj -lws2_32 -o outputdll.dll Using built-in specs. Target: mingw32 Configured with: ./gcc-4.3.0/configure --enable-languages=c,ada,c++,fortran,jav a,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enabl e-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enab le-concept-checks --enable-version-specific-runtime-libs --build=mingw32 --with- bugurl=http://www.mingw.org/bugs.shtml --prefix=/mingw --with-gmp=/mingw/src/gcc /gmp-mpfr-root --with-mpfr=/mingw/src/gcc/gmp-mpfr-root --with-libiconv-prefix=/ mingw/src/gcc/libiconv-root Thread model: win32 gcc version 4.3.0 20080305 (alpha-testing) mingw-20080502 (GCC) COMPILER_PATH=c:/documents and settings/dan/my documents/programs/cygwin/home/da n/ming/bin/../libexec/gcc/mingw32/4.3.0/;c:/documents and settings/dan/my docume nts/programs/cygwin/home/dan/ming/bin/../libexec/gcc/;c:/documents and settings/ dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../. /../../mingw32/bin/ LIBRARY_PATH=c:/documents and settings/dan/my documents/programs/cygwin/home/dan /ming/bin/../lib/gcc/mingw32/4.3.0/;c:/documents and settings/dan/my documents/p rograms/cygwin/home/dan/ming/bin/../lib/gcc/;c:/documents and settings/dan/my do cuments/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../../../m ingw32/lib/;c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ ming/bin/../lib/gcc/mingw32/4.3.0/../../../ COLLECT_GCC_OPTIONS='-shared' '-v' '-o' 'outputdll.dll' '-mtune=i386' c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/.. /libexec/gcc/mingw32/4.3.0/collect2.exe --shared -Bdynamic -e _DllMainCRTStartup @12 --enable-auto-image-base -o outputdll.dll c:/documents and settings/dan/my d ocuments/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../../dll crt2.o c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/ bin/../lib/gcc/mingw32/4.3.0/crtbegin.o -Lc:/documents and settings/dan/my docum ents/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0 -Lc:/documents a nd settings/dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/gcc -Lc:/d ocuments and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/../lib/ gcc/mingw32/4.3.0/../../../../mingw32/lib -Lc:/documents and settings/dan/my doc uments/programs/cygwin/home/dan/ming/bin/../lib/gcc/mingw32/4.3.0/../../.. dllte st.o -lgcj -lws2_32 -lstdc++ -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -luse r32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcr t c:/documents and settings/dan/my documents/programs/cygwin/home/dan/ming/bin/. /lib/gcc/mingw32/4.3.0/crtend.o ----- Original Message ----- From: "Andrew Haley" To: "Daniel Walter" Cc: Sent: Tuesday, December 16, 2008 5:39 AM Subject: Re: creating shared dlls yields undefined reference to `WinMain@16' in mingw 4.3 > Daniel Walter wrote: >> Whenever I add an object file that was generated with gcj to a g++ link >> command for a shared dll, I get an undefined reference to `WinMain@16'. >> This seems to indicate that for some reason gcc wants to build an >> executable instead of a shared library. This was working in gcc 3.4 - >> though I was using cygwin with gcj -mno-cygwin which is no longer >> supported. >> >> Is building dlls with g++ and gcj supported in newer versions of gcc? >> Is there a different link command that will not try to build an >> executable? >> >> >> works> g++ -shared cpptest.o -o pdflib.dll >> >> works - event with lgcj> g++ -shared cpptest.o -lgcj -lws2_32 -o >> pdflib.dll >> >> fails - it tries to build an executable> g++ -shared javatest.o >> cpptest.o -lgcj -lws2_32 -o pdflib.dll > > More information needed. 'g++ -v' will show you what is being linked. > There is presumably a way to ask what symbols are needed by the various > libraries that you're linking, so have a look which one needs > `WinMain@16'. > > Andrew. >