This is the mail archive of the cygwin-apps 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]
Other format: [Raw text]

Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.5.0-0.8


Corinna Vinschen writes:
> These functions are defined on both platforms.  What's *not* defined on
> 64 bit, but only on 32 bit, are the same functions preceeded with an
> underscore, e.g. _copysign.
>
> Can you please check again?  There's something else going wrong here.

What's going wrong is that the symbols are also defined in libc.a on
32bit and only in libm.a on 64bit.  The configury for Cygwin removes
both -lc and -lm from the list of libraries that should explicitly be
linked with, a comment is present that both libc and libm symlink to
libcygwin and are implied by gcc anyway.  However that doesn't seem to
be the case anymore on both architectures (these files are not symlinked
and not hardlinked either), but the symbol construction is just
different enough for this not to work on 64bit it would seem.

It works correctly if I don't let the configury check the symbols via nm
in the link libraries, but instead compile a small test program for each
symbol.  That's probably the best solution, all things considered.  It
does not even seem to be that much slower.


As for eaccess: even with the above change, it finds that eaccess is
available in the library when trying to link to the symbol, but doesn't
notice that it's not actually defined during compilation.  So I'm adding
_GNU_SOURCE to the flags (yup, that works just fine).


Last but not least the Win32 and Win32-API modules have trouble with
including the right files to get at wcslen and wcscpy.  This is what
these sources do to apparently get at those symbols:

--8<---------------cut here---------------start------------->8---
#define WIN32_LEAN_AND_MEAN
#include <wctype.h>
#include <windows.h>
#include <shlobj.h>
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
#define  WIN32_LEAN_AND_MEAN	/* Tell windows.h to skip much */
#include <windows.h>
#include <winioctl.h>
--8<---------------cut here---------------end--------------->8---

What needs to be defined and/or included to get these?  From the
MSDN documentation one would think that either string.h or wchar.h
should do it, but is one of those preferrable?


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra


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