* quick question about __stdcall at run-command.c mingw.c
@ 2009-08-16 23:19 Frank Li
2009-08-17 0:03 ` [msysGit] " Pat Thoyts
0 siblings, 1 reply; 6+ messages in thread
From: Frank Li @ 2009-08-16 23:19 UTC (permalink / raw)
To: git, msysGit
I am tring to clear VC build patch.
I found __stdcall position break MSVC build.
static __stdcall unsigned run_thread(void *data)
MSVC require __stdcall should be between return type and function name.
like
static unsigned __stdcall run_thread(void *data)
I think msys gcc should support MSVC format.
Should I directly change to MSVC format or add _MSC_VER marcro like
#if defined(__MINGW32__)
static __stdcall unsigned run_thread(void *data)
#elif defined(_MSC_VER) /*MSVC must put __stdcall between return value
and function*/
static unsigned __stdcall run_thread(void *data)
#endif
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [msysGit] quick question about __stdcall at run-command.c mingw.c
2009-08-16 23:19 quick question about __stdcall at run-command.c mingw.c Frank Li
@ 2009-08-17 0:03 ` Pat Thoyts
2009-08-17 7:52 ` Johannes Sixt
0 siblings, 1 reply; 6+ messages in thread
From: Pat Thoyts @ 2009-08-17 0:03 UTC (permalink / raw)
To: Frank Li; +Cc: git, msysGit
2009/8/17 Frank Li <lznuaa@gmail.com>:
>
> I am tring to clear VC build patch.
>
> I found __stdcall position break MSVC build.
>
> static __stdcall unsigned run_thread(void *data)
>
> MSVC require __stdcall should be between return type and function name.
> like
> static unsigned __stdcall run_thread(void *data)
>
> I think msys gcc should support MSVC format.
>
> Should I directly change to MSVC format or add _MSC_VER marcro like
>
> #if defined(__MINGW32__)
> static __stdcall unsigned run_thread(void *data)
> #elif defined(_MSC_VER) /*MSVC must put __stdcall between return value
> and function*/
> static unsigned __stdcall run_thread(void *data)
> #endif
The win32 api prototype used for thread entry functions is declared as
a DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID) type in the mingw
headers and WINAPI as #define WINAPI __stdcall. This is true for the
MSVC headers as well. So gcc and msvc are happy using the same
definition for such a function and just "static unsigned long WINAPI
run_thread(void *)" might well be sensible.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [msysGit] quick question about __stdcall at run-command.c mingw.c
2009-08-17 0:03 ` [msysGit] " Pat Thoyts
@ 2009-08-17 7:52 ` Johannes Sixt
2009-08-17 8:21 ` Johannes Schindelin
0 siblings, 1 reply; 6+ messages in thread
From: Johannes Sixt @ 2009-08-17 7:52 UTC (permalink / raw)
To: Pat Thoyts, Frank Li; +Cc: git, msysGit
Pat Thoyts schrieb:
> 2009/8/17 Frank Li <lznuaa@gmail.com>:
>> I am tring to clear VC build patch.
>>
>> I found __stdcall position break MSVC build.
>>
>> static __stdcall unsigned run_thread(void *data)
>>
>> MSVC require __stdcall should be between return type and function name.
>> like
>> static unsigned __stdcall run_thread(void *data)
>>
>> I think msys gcc should support MSVC format.
>>
>> Should I directly change to MSVC format or add _MSC_VER marcro like
>>
>> #if defined(__MINGW32__)
>> static __stdcall unsigned run_thread(void *data)
>> #elif defined(_MSC_VER) /*MSVC must put __stdcall between return value
>> and function*/
>> static unsigned __stdcall run_thread(void *data)
>> #endif
>
> The win32 api prototype used for thread entry functions is declared as
> a DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID) type in the mingw
> headers and WINAPI as #define WINAPI __stdcall. This is true for the
> MSVC headers as well. So gcc and msvc are happy using the same
> definition for such a function and just "static unsigned long WINAPI
> run_thread(void *)" might well be sensible.
Change the code to
static unsigned __stdcall run_thread(void *data)
The documentation explictly says: "The routine at start_address passed to
_beginthreadex must use the __stdcall calling convention...". So __stdcall
it is.
-- Hannes
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [msysGit] quick question about __stdcall at run-command.c mingw.c
2009-08-17 7:52 ` Johannes Sixt
@ 2009-08-17 8:21 ` Johannes Schindelin
2009-08-17 8:43 ` Johannes Sixt
0 siblings, 1 reply; 6+ messages in thread
From: Johannes Schindelin @ 2009-08-17 8:21 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Pat Thoyts, Frank Li, git, msysGit
Hi,
On Mon, 17 Aug 2009, Johannes Sixt wrote:
> Pat Thoyts schrieb:
> > 2009/8/17 Frank Li <lznuaa@gmail.com>:
> >> I am tring to clear VC build patch.
> >>
> >> I found __stdcall position break MSVC build.
> >>
> >> static __stdcall unsigned run_thread(void *data)
> >>
> >> MSVC require __stdcall should be between return type and function
> >> name. like static unsigned __stdcall run_thread(void *data)
> >>
> >> I think msys gcc should support MSVC format.
I think that it does.
But it is _your_ duty to check.
> >> Should I directly change to MSVC format or add _MSC_VER marcro like
> >>
> >> #if defined(__MINGW32__)
> >> static __stdcall unsigned run_thread(void *data)
> >> #elif defined(_MSC_VER) /*MSVC must put __stdcall between return value
> >> and function*/
> >> static unsigned __stdcall run_thread(void *data)
> >> #endif
Noooo! NO _MSC_VER crap in mingw.c. Really. I am able to repeat that as
often as you want me, but I'd prefer not to.
> > The win32 api prototype used for thread entry functions is declared as
> > a DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID) type in the mingw
> > headers and WINAPI as #define WINAPI __stdcall. This is true for the
> > MSVC headers as well. So gcc and msvc are happy using the same
> > definition for such a function and just "static unsigned long WINAPI
> > run_thread(void *)" might well be sensible.
>
> Change the code to
>
> static unsigned __stdcall run_thread(void *data)
>
> The documentation explictly says: "The routine at start_address passed to
> _beginthreadex must use the __stdcall calling convention...". So __stdcall
> it is.
I could not agree more.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [msysGit] quick question about __stdcall at run-command.c mingw.c
2009-08-17 8:21 ` Johannes Schindelin
@ 2009-08-17 8:43 ` Johannes Sixt
2009-08-17 9:12 ` Johannes Schindelin
0 siblings, 1 reply; 6+ messages in thread
From: Johannes Sixt @ 2009-08-17 8:43 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Pat Thoyts, Frank Li, git, msysGit
Johannes Schindelin schrieb:
> On Mon, 17 Aug 2009, Johannes Sixt wrote:
>> Pat Thoyts schrieb:
>>> 2009/8/17 Frank Li <lznuaa@gmail.com>:
>>>> I am tring to clear VC build patch.
>>>>
>>>> I found __stdcall position break MSVC build.
>>>>
>>>> static __stdcall unsigned run_thread(void *data)
>>>>
>>>> MSVC require __stdcall should be between return type and function
>>>> name. like static unsigned __stdcall run_thread(void *data)
>>>>
>>>> I think msys gcc should support MSVC format.
>
> I think that it does.
>
> But it is _your_ duty to check.
Cool down. Asking for "please could you check whether this works" *if* you
don't have the infrastructure to test it yourself is certainly dutyful enough.
Do you have an Irix, Solaris, HP box on your desk next to your Linux, so
that you don't have to ask others to test your patches?
-- Hannes
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [msysGit] quick question about __stdcall at run-command.c mingw.c
2009-08-17 8:43 ` Johannes Sixt
@ 2009-08-17 9:12 ` Johannes Schindelin
0 siblings, 0 replies; 6+ messages in thread
From: Johannes Schindelin @ 2009-08-17 9:12 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Pat Thoyts, Frank Li, git, msysGit
Hi,
On Mon, 17 Aug 2009, Johannes Sixt wrote:
> Johannes Schindelin schrieb:
> > On Mon, 17 Aug 2009, Johannes Sixt wrote:
> >> Pat Thoyts schrieb:
> >>> 2009/8/17 Frank Li <lznuaa@gmail.com>:
> >>>> I am tring to clear VC build patch.
> >>>>
> >>>> I found __stdcall position break MSVC build.
> >>>>
> >>>> static __stdcall unsigned run_thread(void *data)
> >>>>
> >>>> MSVC require __stdcall should be between return type and function
> >>>> name. like static unsigned __stdcall run_thread(void *data)
> >>>>
> >>>> I think msys gcc should support MSVC format.
> >
> > I think that it does.
> >
> > But it is _your_ duty to check.
>
> Cool down. Asking for "please could you check whether this works" *if*
> you don't have the infrastructure to test it yourself is certainly
> dutyful enough.
>
> Do you have an Irix, Solaris, HP box on your desk next to your Linux, so
> that you don't have to ask others to test your patches?
This is Windows. Frank has Windows.
Downloading msysGit does not incur any cost. Actually running the whole
thing from the net installer just takes a little time and a two-digit
megabyte download.
I put a lot of work into making this procedure as painless to use (for
other people, it caused me a lot of pain). So Frank might just as well
not let my effort go to hell.
Of course, Frank could ask one of the few msysGit contributors to try to
compile something he prepared, wait for the results and possibly fix
things for another round. This appears as a rather poor use of
everybody's time, methinks.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-08-17 9:12 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-16 23:19 quick question about __stdcall at run-command.c mingw.c Frank Li
2009-08-17 0:03 ` [msysGit] " Pat Thoyts
2009-08-17 7:52 ` Johannes Sixt
2009-08-17 8:21 ` Johannes Schindelin
2009-08-17 8:43 ` Johannes Sixt
2009-08-17 9:12 ` Johannes Schindelin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.