From: jeffdbREMOVETHIS AT netzone DOT com (Mikey) Subject: SOLVED!! linking against MS .lib files in B18 (and possibly egcs/B19) 18 Dec 1997 16:14:11 -0800 Message-ID: <349971b2.3318041.cygnus.gnu-win32@smtp.netzone.com> References: <199710300353 DOT WAA18385 AT subrogation DOT cygnus DOT com> Reply-To: jeffdbREMOVETHIS AT netzone DOT com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="--=_349975924311027075358a9.MFSBCHJLHS" To: gnu-win32 AT cygnus DOT com ----=_349975924311027075358a9.MFSBCHJLHS Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi All ;^) I have some good news. Attached are patches for producing a beta 18 compatible (and possibly egcs/B19 compatible) ld.exe that will allow linking with MS .lib files, AND libcygwin.a type files. I just posted copies of fixed ld.exe objdump.exe dlltool.exe the specs file, and a couple of needed .o's to ftp://ftp.deninc.com/incoming as B18-patched-link-compat-ld.tgz for people who don't want to rebuild from source. also posted SDK_4_ming_cygwin32.tar.gz which has the header patches for using the Platform SDK headers with ming & cygwin The patch makes use of a couple of the routines posted to the list by Marcus Hall. marcus AT bighorn DOT dr DOT lucent DOT com Thanks Marcus!!! ;^) User visible changes include strip.exe works on images with .reloc sections now. ie strip --strip-unneeded cygwin.dll gives a usable .dll (still can't strip files with .rsrc sections) ..reloc sections are now always terminated properly on win95, and NT w/out C2 security (the tradeoff is that you will always have a .reloc section unless you strip it off ;^) new options for ld.exe --subsystem wwindows --subsystem wconsole (entry @ _wWinMainCRTStartup _wmainCRTStartup respectively for UNICODE apps currently only useful when linking against the real msvcrt.lib & using vc++ headers) -lLIBNAME option to ld.exe (small L) searches first for LIBNAME.lib files, then libLIBNAME.a (should make for easier use under command.com/cmd.exe) new options for gcc.exe -windows (gui apps pull in the patched Platform SDK headers if you have them see SDK_4_ming_cygwin32.tar.gz) -console (console ditto ;^) use -mwindows or -mconsole for correct .o's with the FSF headers/libs -dll (links in the appropriate stub, main_dll.o for windows dll's WinMain_dll.o for console dll's) -wm (mingw32+Platform SDK) change the paths in specs as appropriate for your system entry point WinMainCRTStartup added to crt0.c/o in binary dist (gets rid of those pesky warnings ;^) relocatable .dll's & .exe's work with the specs file included in binary dist when linked against libcygwin.a (only tested with coolview) so to produce a simple nonrelocatable gui dll from source with a DllMain entry point dlltool --dllname dllmain.dll --output-exp dllmain.exp --output-lib dllmain.a --def dllmain.def gcc -windows -dll -Wl,--image-base,0x1C000000 -o dllmain.dll dllmain.exp dllmain.c for a relocatble .dll you must still do 2 passes gcc -windows -dll -Wl,--base-file=dllmain.base -o dllmain.dll dllmain.c dlltool --dllname dllmain.dll --base-file dllmain.base --output-exp dllmain.exp --output-lib dllmain.a --def dllmain.def gcc -windows -dll -o dllmain.dll dllmain.exp dllmain.c Also a patch that should do the same thing for egcs/B19, produced against the gas-971123 snap (MAYBE ;-) From MS's PEI spec >5.5.6. COMDAT Sections (Object Only) >The Selection field of the Section Definition auxiliary format is >applicable if the section is a COMDAT section: a section that >can be defined by more than one object file. (The flag >IMAGE_SCN_LNK_COMDAT is set in the Section Flags field >of the section header.) The way that the linker resolves the multiple >definitions of COMDAT sections is determined by the Selection field. >The first symbol having the section value of the COMDAT section >is the section symbol This symbol has the name of the section, >Value field equal to 0, the section number of the COMDAT section >in question, Type field equal to IMAGE_SYM_TYPE_NULL, Class >field equal to IMAGE_SYM_CLASS_STATIC, and one auxiliary >record. The second symbol is called "the COMDAT symbol" and >is used by the linker in conjunction with the Selection field. <<<<<<<<< the main thing I have added a routine to the bfd backend (in pei-i386.c) to offer the comdat symbol/associated section info in a seperate routine pei_get_comdat_info() then fixed ld and objdump to use it. Also added a struct to asection->pe_comdat_info to offer the info to applications, this seemed to be the lesser of all evils, if it breaks other backends, the #ifdefs and extern funcs wouldn't be hard to set up. also minor changes to dlltool to allow inter operability with vc++ generated import libraries/objects. exported symbols can start with ? (c++) as well as _ (c) this will allow generated .def files with v(c++) symbols to compile also corrects _imp__ symbol names. The changes were made against the gas-971123 snap, as well as the B18 source tree. / * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ TODO objcopy/strip fixed for stripping exe's/dll's with .rsrc sections objcopy/strip associated sections removed when COMDAT section stripped (not critical as the new ld should ignore associated sections without a COMDAT) dlltool still needs to be fixed to produce more MS compatible import libraries so link.exe can be used with them On Wed, 29 Oct 1997 22:53:23 -0500, you wrote: > From: jeffdbREMOVETHIS AT netzone DOT com (Mikey) > Date: Thu, 30 Oct 1997 01:11:06 GMT > > There are quite a few binary incompatibilities like this left between cygwin32 > and MS pei that need to be corrected, but it has been so long since the last < snip> > >That particular problem was fixed some months ago. It means that if >you want to use the new linker and/or the new assembler, you must >recompile and reassemble every .o and .a file. > >Ian > (jeffdbREMOVETHIS AT netzone DOT com) delete REMOVETHIS from the above to reply Mikey Windows vs Linux is a no-win situation. Windows 95: -- 32-bit extensions and a GUI shell for a 16-bit patch to an 8-bit OS originally coded for a 4-bit processor written by a 2-bit company that can't produce 1 bit of quality. ----=_349975924311027075358a9.MFSBCHJLHS Content-Type: application/octet-stream; name=bfd_ld_comdat_sym_B18.dif.gz Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=bfd_ld_comdat_sym_B18.dif.gz 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 ----=_349975924311027075358a9.MFSBCHJLHS Content-Type: application/octet-stream; name=bfd_ld_comdat_sym_gas971123.dif.gz Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=bfd_ld_comdat_sym_gas971123.dif.gz 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 ----=_349975924311027075358a9.MFSBCHJLHS-- - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".