-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 9/30/2010 09:43, Dongsheng Song wrote: > On 2010-9-29 22:33, Kai Tietz wrote: >>>>> On Wed, Sep 29, 2010 at 5:56 PM, JonY <[email protected]> wrote: >>>>>> As far as I know, this is not a bug. That comment means that it is >>>>>> available with Windows 7. >>>>>> >>>>>> Until its reimplemented in libmingwex, the proper fix would be not to >>>>>> call it if you expect your program to run on earlier versions of windows. >>>>> > > No, this is not possible/acceptable. For example, the following code is very > general: > > # if HAVE_WCSNLEN > # define local_wcsnlen wcsnlen > # else > static size_t > local_wcsnlen (const wchar_t *s, size_t maxlen) > { > const wchar_t *ptr; > > for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--) > ; > return ptr - s; > } > # endif >
Neither is your wcsnlen code acceptable, it does not verify if the unicode sequences are valid. > But since wcsnlen in both headers and libmsvrt.a, the autotools always > report 'yes, your target platform have wcsnlen' !!! > Please check how the tests are run, it is unlikely the headers are checked at all. Alternatively, you can check your config.status and edit it appropriately. > If we do not want to drop these symbols not in windows XP, we should declare: > > mingw-64 maybe generate invalid dll/exe files on target platform older than > windows 7. > Because these files maybe reference symbols only valid on windows 7, please > check your > dll/exe files carefully after build. > That is because you are calling functions that do not exists on your system, why would you expect it to work at all? >> The only general solution for this would be that someone contributes >> an implementation for this function. So we don't dependent here. The >> only issue I see here is that this wcstrnlen possibly depends on >> internal undocumented stuff. I'll do some research for this. > > Maybe there have another solution: > > S1: the intersection of XP and 2k3 symbols in msvcrt.dll > S2: the intersection of VISTA and 2k8 symbols in msvcrt.dll > S3: the Windows 7 symbols in msvcrt.dll > > libmsvcrt: S1 > libvista: (S2 - S1) > libwin7: (S3 - S1) or (S3 - S2) > > If user want to use symbols in VISTA/2K8, they should put libvista in > additional library list. > Then the generated files only valid on vista/2k8 or later is acceptable for > these users. > > If user want to use symbols in Windows 7, they should put libwin7 in > additional library list. > Then the generated files only valid on Windows 7 or later is acceptable for > these users. > > Regards, > Dongsheng > If you are willing to maintain it, then come and join #mingw-w64, we are always short of maintainers. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (MingW32) iEYEARECAAYFAkykJhgACgkQp56AKe10wHf1vACbBY5J3Ldt33PAxuLZ4t83tzgj eeIAn2pdCaqTz1J4fxwlRD7Qpe6GIK24 =5mBF -----END PGP SIGNATURE-----
0xED74C077.asc
Description: application/pgp-keys
------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
