This is the mail archive of the cygwin@cygwin.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]

[ANN] altbinutils-pe 1.0 - suite of utilities useful when dealing with PE/win32 executables


Hello mingw-users,

  altbinutils-pe is a collection of several utilities by different
authors put into single package. This is first binary release and
public announcement of it, though some utilities might be available
before. Currently suite includes (unless noted, written by me):

1. a2dll - script to convert static library to DLL;

   Sample:
=========
$ar d libstdc++.a vfork.o
$ar d libstdc++.a waitpid.o
$ar d libstdc++.a strerror.o
$a2dll --no-default-excludes libstdc++.a
Creating shared library 'libstdc++.dll'

Shared library exports data symbols, they are listed in 'libstdc++.dll.data'. You
should probably ignore them since latest ld has capability to link against data
symbols automagically. But if you have any concerns with it, read on.

To use the data symbols in client application, linked with old or non-gnu-ld linker,
you should mark them as __declspec(dllimport) in library headers. You can quickly
find places where these data symbols declared by issuing

        grep -f libstdc++.dll.data *.h

in library header directory. Also note that this step may be not required, you can
postpone it until you'll get during linking unresolved symbol _imp__<something>,
where <something> is one of the symbols listed in libstdc++.dll.data. Read
documentation (static2dll_howto.txt) for more information.

$ls
libstdc++.a  libstdc++.dll  libstdc++.dll.a
=========

2. pexports - utility by Anders Norlander to create .def file from a dll;

   Sample:

=========
$pexports libstdc++.dll
LIBRARY libstdc++.dll
EXPORTS
Bbase__9streambuf
Bptr__9streambuf
DllMain@12
DllMainCRTStartup@12
Gbase__9streambuf
Nbase__9streambuf
_$_10bad_typeid
[]
=========

3. checkdll - utility to check loadability and relocatability of a DLL.

   Sample:

=========
$checkdll libstdc++.dll
Copying to temp 'dlla01400.dll'
Handles (load addrs) are: 62dc0000 64180000
Image is relocatable
=========

4. ldd-win32 - ldd workalike for win32 (utility to trace shared library
   dependencies of an executable) (based on pexports and some public
   domain code);

   Sample:

=========
$ldd hello
        ntdll.dll => E:\WINNT\System32\ntdll.dll (0x77f80000)
        libstdc++.dll => E:\usr\local\libstdc++.dll (0x64180000)
        KERNEL32.dll => E:\WINNT\system32\KERNEL32.dll (0x77e80000)
        msvcrt.dll => E:\WINNT\system32\msvcrt.dll (0x78000000)
=========


        Altbinutils-pe binary package is available from mingwrep
project at SourceForge: http://sourceforge.net/projects/mingwrep/ .
Sources available from project's CVS.


--
Paul Sokolovsky, IT Specialist
http://www.brainbench.com/transcript.jsp?pid=11135



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


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