Mail Archives: cygwin/2001/05/25/11:42:41
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 AT 12
DllMainCRTStartup AT 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
- Raw text -