Re: PING: Re: [PATCH] : Fix for PR 52123 gcc bootstrap with ada fails on mingw target

2013-02-06 Thread Arnaud Charlet
> > Did you check that this patch also works fine with mingw64? This is the
> > main environment now used, so it's important to verify that these changes
> > are compatible with both mingw32 and mingw64.
> I'm only able ot test for mingw64 at the moment as you see above,
> x86_64-w64-mingw32 is mingw64. If someone is able to test mingw.org for me
> would be fine. Otherwise I have to setup a mingw.org environment.

OK, thanks for the clarification.

> Here the link to the original post:
> http://gcc.gnu.org/ml/gcc-patches/2013-01/msg00114.html

Patch is OK although I'm a bit surprised we're not seeing these
errors at AdaCore where we also use mingw64. Perhaps we're using a different
version.

Anyway, go ahead.

Arno


Re: PING: Re: [PATCH] : Fix for PR 52123 gcc bootstrap with ada fails on mingw target

2013-02-06 Thread Arnaud Charlet
> I like to have this in trunk as soon as possible, because I want to backport
> to 4.7.3 before the release.
> 
> Tested on x86_64-w64-mingw32 and x86_64-unknown-gnu-linux.

Did you check that this patch also works fine with mingw64? This is the main
environment now used, so it's important to verify that these changes are
compatible with both mingw32 and mingw64.

Also, your mailer corrupted the formatting, so it's no longer possible to
review this patch. Probably better to post a link to the previous
submit to ease reviews.

Arno


PING: Re: [PATCH] : Fix for PR 52123 gcc bootstrap with ada fails on mingw target

2013-02-06 Thread Rainer Emrich
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

I like to have this in trunk as soon as possible, because I want to backport
to 4.7.3 before the release.

Tested on x86_64-w64-mingw32 and x86_64-unknown-gnu-linux.

Cheers

Rainer

Am 03.01.2013 14:06, schrieb Rainer Emrich:
> Hello,
> 
> this trivial patch fixes the bootstrap with ada on mingw targets. The right
> casts fix the invalid conversion issues. Patch is against trunk.
> 
> ada/
> 
> PR 52123 * adaint.c (__gnat_check_OWNER_ACL): Cast from pointer via 
> SECURITY_DESCRIPTOR * (__gnat_set_OWNER_ACL): Cast from DWORD to
> ACCESS_MODE (__gnat_portable_spawn): Fix cast to char* const* (add_handle):
> Cast from pointer via void ** (add_handle): Cast from pointer via int * 
> (__gnat_locate_exec_on_path): Cast from pointer via TCHAR * 
> (__gnat_locate_exec_on_path): Cast from pointer via char * * initialize.c
> (append_arg): Cast from pointer via LPWSTR (__gnat_initialize): Cast from
> pointer via LPWSTR * seh_init.c (__gnat_map_SEH): Cast from pointer via
> FARPROC
> 
> If OK for apply, Kai please commit.
> 
> Regards,
> 
> Rainer
> 
> 
> Index: ada/adaint.c 
> === ---
> ada/adaint.c  (Revision 194638) +++ ada/adaint.c  (Arbeitskopie) @@ 
> -1982,7
> +1982,7 @@ __gnat_check_OWNER_ACL GROUP_SECURITY_INFORMATION |
> DACL_SECURITY_INFORMATION, NULL, 0, &nLength);
> 
> -  if ((pSD = (PSECURITY_DESCRIPTOR) HeapAlloc +  if ((pSD =
> (SECURITY_DESCRIPTOR *) HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY,
> nLength)) == NULL) return 0;
> 
> @@ -2059,7 +2059,7 @@ __gnat_set_OWNER_ACL return;
> 
> BuildExplicitAccessWithName -(&ea, username, AccessPermissions,
> AccessMode, NO_INHERITANCE); +(&ea, username, AccessPermissions,
> (ACCESS_MODE) AccessMode, NO_INHERITANCE);
> 
> if (AccessMode == SET_ACCESS) { @@ -2384,7 +2384,7 @@ __gnat_portable_spawn
> (char *args[]) strcat (args[0], args_0); strcat (args[0], "\"");
> 
> -  status = spawnvp (P_WAIT, args_0, (const char* const*)args); +  status =
> spawnvp (P_WAIT, args_0, (char* const*)args);
> 
> /* restore previous value */ free (args[0]); @@ -2540,9 +2540,9 @@
> add_handle (HANDLE h, int pid) { plist_max_length += 1000; HANDLES_LIST = -
> xrealloc (HANDLES_LIST, sizeof (HANDLE) * plist_max_length); +(void
> **) xrealloc (HANDLES_LIST, sizeof (HANDLE) * plist_max_length); PID_LIST
> = -xrealloc (PID_LIST, sizeof (int) * plist_max_length); +
> (int *) xrealloc (PID_LIST, sizeof (int) * plist_max_length); }
> 
> HANDLES_LIST[plist_length] = h; @@ -2931,7 +2931,7 @@
> __gnat_locate_exec_on_path (char *exec_n
> 
> #define EXPAND_BUFFER_SIZE 32767
> 
> -  wapath_val = alloca (EXPAND_BUFFER_SIZE); +  wapath_val = (TCHAR *)
> alloca (EXPAND_BUFFER_SIZE);
> 
> wapath_val [0] = '.'; wapath_val [1] = ';'; @@ -2941,7 +2941,7 @@
> __gnat_locate_exec_on_path (char *exec_n
> 
> if (!res) wapath_val [0] = _T('\0');
> 
> -  apath_val = alloca (EXPAND_BUFFER_SIZE); +  apath_val = (char *) alloca
> (EXPAND_BUFFER_SIZE);
> 
> WS2SC (apath_val, wapath_val, EXPAND_BUFFER_SIZE); return
> __gnat_locate_exec (exec_name, apath_val); Index: ada/initialize.c 
> === ---
> ada/initialize.c  (Revision 194638) +++ ada/initialize.c  (Arbeitskopie) 
> @@
> -88,14 +88,14 @@ append_arg (int *index, LPWSTR dir, LPWS { /* no dir
> prefix */ dirlen = 0; -  fullvalue = xmalloc ((vallen + 1) *
> sizeof(TCHAR)); +  fullvalue = (LPWSTR) xmalloc ((vallen + 1) *
> sizeof(TCHAR)); } else { /* Add dir first */ dirlen = _tcslen (dir);
> 
> -  fullvalue = xmalloc ((dirlen + vallen + 1) * sizeof(TCHAR)); +
> fullvalue = (LPWSTR) xmalloc ((dirlen + vallen + 1) * sizeof(TCHAR)); 
> _tcscpy (fullvalue, dir); }
> 
> @@ -203,7 +203,7 @@ __gnat_initialize (void *eh ATTRIBUTE_UN if (ldir !=
> NULL) { int n = ldir - wargv[k] + 1; - dir = xmalloc 
> ((n + 1) * sizeof
> (TCHAR)); +dir = (LPWSTR) xmalloc ((n + 1) * sizeof 
> (TCHAR)); _tcsncpy
> (dir, wargv[k], n); dir[n] = _T('\0'); } Index: ada/seh_init.c 
> === ---
> ada/seh_init.c(Revision 194638) +++ ada/seh_init.c(Arbeitskopie) 
> @@ -91,7
> +91,7 @@ __gnat_map_SEH (EXCEPTION_RECORD* Except */ if
> ((ExceptionRecord->ExceptionInformation[1] & 3) != 0 || IsBadCodePtr -
> ((void *)(ExceptionRecord->ExceptionInformation[1] + 4096))) +
> ((FARPROC)(ExceptionRecord->ExceptionInformation[1] + 4096))) { *msg =
> "EXCEPTION_ACCESS_VIOLATION"; return &program_error;
> 

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJREi9mAAoJEB3HOsWs+KJb0bsIAIs+KEdqYhTqyB3AJ97YqYqq
JwqIUtORJwvyEdEVE6vsCpnMv4pLn3cvkQS2VwkTkFX8NW7xxq1tbsGOoojGajVV
9fyUCwplCb+n4QhwtEQv9Jh2PNSF68w7S4MkTyhLrEdROg+u3XuRAO7QbzxWQf6A
09U4VqyUT3si0m53VypKkRWagqk2F6l09uIf7MxYl2jQe1ppdI