On 3/15/2013 4:41 PM, Bill Hoffman wrote:
On 3/15/2013 11:31 AM, marco atzeri wrote:
ok, found.
I do not need to malloc the space for the win32_path
assigning again the pointer does not work.
Next step, to check if no other issues on 64bit
Yes, that would do it... If you allocate new memory then the
information never gets passed back to the caller... :)
-Bill
copy and past code, sometimes, does not work.
attached the patch to remove cygwin_conv_to_win32_path.
First bootstrap on cygwin64 works,
still running the rest of the build.
Marco
--- ../orig/cmake-2.8.9/Source/kwsys/SystemTools.cxx 2012-08-15
21:28:03.000000000 +0200
+++ cmake-2.8.9/Source/kwsys/SystemTools.cxx 2013-03-15 16:56:12.540496600
+0100
@@ -85,7 +85,21 @@
#endif
#ifdef __CYGWIN__
-extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path);
+typedef unsigned int cygwin_conv_path_t;
+enum
+{
+ CCP_POSIX_TO_WIN_A = 0, /* from is char*, to is char* */
+ CCP_POSIX_TO_WIN_W, /* from is char*, to is wchar_t* */
+ CCP_WIN_A_TO_POSIX, /* from is char*, to is char* */
+ CCP_WIN_W_TO_POSIX, /* from is wchar_t*, to is char* */
+
+ CCP_CONVTYPE_MASK = 3,
+
+ /* Or these values to the above as needed. */
+ CCP_ABSOLUTE = 0, /* Request absolute path (default). */
+ CCP_RELATIVE = 0x100 /* Request to keep path relative. */
+};
+extern "C" ssize_t cygwin_conv_path( cygwin_conv_path_t what, const void *
from, void * to, size_t size );
#endif
// getpwnam doesn't exist on Windows and Cray Xt3/Catamount
@@ -1123,7 +1137,15 @@
}
else
{
- cygwin_conv_to_win32_path(path, win32_path);
+ ssize_t size;
+ size=cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, NULL, 0 );
+ if (size < 0)
+ perror ("cygwin_conv_path");
+ else
+ {
+ if (cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, size ))
+ perror ("cygwin_conv_path");
+ }
SystemToolsTranslationMap::value_type entry(path, win32_path);
SystemTools::Cyg2Win32Map->insert(entry);
}
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake