Message ID | 519BC816.3000304@ramsay1.demon.co.uk (mailing list archive) |
---|---|
State | Rejected, archived |
Headers | show |
On Tue, May 21, 2013 at 08:16:38PM +0100, Ramsay Jones wrote: > Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> I believe this will match both 32-bit and 64-bit MinGW, which seems wrong. Please do check the architecture strings for 32-bit and 64-bit MinGW, and handle them separately. > --- > cgcc | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/cgcc b/cgcc > index c075e5f..e94a965 100755 > --- a/cgcc > +++ b/cgcc > @@ -226,6 +226,19 @@ sub add_specs { > ' -D__OpenBSD__=1'; > } elsif ($spec eq 'unix') { > return ' -Dunix=1 -D__unix=1 -D__unix__=1'; > + } elsif ($spec =~ /^mingw/) { > + return ' -isystem /mingw/include' . > + ' -D__MINGW32__=1' . > + ' -D__MSVCRT__=1' . > + ' -DWIN32=1 -D_WIN32=1 -D__WIN32=1 -D__WIN32__=1' . > + ' -DWINNT=1 -D__WINNT=1 -D__WINNT__=1' . > + " -D'_cdecl=__attribute__((__cdecl__))'" . > + " -D'__cdecl=__attribute__((__cdecl__))'" . > + " -D'_stdcall=__attribute__((__stdcall__))'" . > + " -D'__stdcall=__attribute__((__stdcall__))'" . > + " -D'_fastcall=__attribute__((__fastcall__))'" . > + " -D'__fastcall=__attribute__((__fastcall__))'" . > + " -D'__declspec(x)=__attribute__((x))'"; > } elsif ( $spec =~ /^cygwin/) { > return &add_specs ('unix') . > ' -D__CYGWIN__=1 -D__CYGWIN32__=1' . > -- > 1.8.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-sparse" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Josh Triplett wrote: > On Tue, May 21, 2013 at 08:16:38PM +0100, Ramsay Jones wrote: >> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> > > I believe this will match both 32-bit and 64-bit MinGW, which seems > wrong. Please do check the architecture strings for 32-bit and 64-bit > MinGW, and handle them separately. Yes, given that, for me: $ uname -a MINGW32_NT-5.1 TOSHIBA 1.0.12(0.46/3/2) 2010-02-05 01:08 i686 unknown $ I'm hoping that the following change will be sufficient (I don't have access to a 64-bit MinGW, so I don't know what 'uname -a' returns, but I think this will work ... ;-): $ git diff diff --git a/cgcc b/cgcc index e94a965..68f96b9 100755 --- a/cgcc +++ b/cgcc @@ -226,7 +226,7 @@ sub add_specs { ' -D__OpenBSD__=1'; } elsif ($spec eq 'unix') { return ' -Dunix=1 -D__unix=1 -D__unix__=1'; - } elsif ($spec =~ /^mingw/) { + } elsif ($spec =~ /^mingw32/) { return ' -isystem /mingw/include' . ' -D__MINGW32__=1' . ' -D__MSVCRT__=1' . $ ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, May 22, 2013 at 11:07:27PM +0100, Ramsay Jones wrote: > Josh Triplett wrote: > > On Tue, May 21, 2013 at 08:16:38PM +0100, Ramsay Jones wrote: > >> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> > > > > I believe this will match both 32-bit and 64-bit MinGW, which seems > > wrong. Please do check the architecture strings for 32-bit and 64-bit > > MinGW, and handle them separately. > > Yes, given that, for me: > > $ uname -a > MINGW32_NT-5.1 TOSHIBA 1.0.12(0.46/3/2) 2010-02-05 01:08 i686 unknown > $ > > I'm hoping that the following change will be sufficient (I don't have > access to a 64-bit MinGW, so I don't know what 'uname -a' returns, but > I think this will work ... ;-): > > $ git diff > diff --git a/cgcc b/cgcc > index e94a965..68f96b9 100755 > --- a/cgcc > +++ b/cgcc > @@ -226,7 +226,7 @@ sub add_specs { > ' -D__OpenBSD__=1'; > } elsif ($spec eq 'unix') { > return ' -Dunix=1 -D__unix=1 -D__unix__=1'; > - } elsif ($spec =~ /^mingw/) { > + } elsif ($spec =~ /^mingw32/) { Unfortunately, I don't think that suffices; I've seen a few different architecture triples used for 64-bit MinGW, some of which include "mingw32". I *think* it might work to match i[3-6]86-.*-mingw. - Josh Triplett -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Josh Triplett wrote: > On Wed, May 22, 2013 at 11:07:27PM +0100, Ramsay Jones wrote: >> Josh Triplett wrote: >>> On Tue, May 21, 2013 at 08:16:38PM +0100, Ramsay Jones wrote: >>>> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> >>> >>> I believe this will match both 32-bit and 64-bit MinGW, which seems >>> wrong. Please do check the architecture strings for 32-bit and 64-bit >>> MinGW, and handle them separately. >> >> Yes, given that, for me: >> >> $ uname -a >> MINGW32_NT-5.1 TOSHIBA 1.0.12(0.46/3/2) 2010-02-05 01:08 i686 unknown >> $ >> >> I'm hoping that the following change will be sufficient (I don't have >> access to a 64-bit MinGW, so I don't know what 'uname -a' returns, but >> I think this will work ... ;-): >> >> $ git diff >> diff --git a/cgcc b/cgcc >> index e94a965..68f96b9 100755 >> --- a/cgcc >> +++ b/cgcc >> @@ -226,7 +226,7 @@ sub add_specs { >> ' -D__OpenBSD__=1'; >> } elsif ($spec eq 'unix') { >> return ' -Dunix=1 -D__unix=1 -D__unix__=1'; >> - } elsif ($spec =~ /^mingw/) { >> + } elsif ($spec =~ /^mingw32/) { > > Unfortunately, I don't think that suffices; I've seen a few different > architecture triples used for 64-bit MinGW, some of which include > "mingw32". You are kidding, right? > I *think* it might work to match i[3-6]86-.*-mingw. Is this pattern to be matched against "uname -s"? Maybe I could match "uname -m" to i?86 *in addition* to the above? At this point I'm guessing. Again, I don't have access to a 64-bit MinGW system. Maybe support for 64-bit MinGW should be implemented by a patch on top of this one (by someone who uses 64-bit MinGW). ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/cgcc b/cgcc index c075e5f..e94a965 100755 --- a/cgcc +++ b/cgcc @@ -226,6 +226,19 @@ sub add_specs { ' -D__OpenBSD__=1'; } elsif ($spec eq 'unix') { return ' -Dunix=1 -D__unix=1 -D__unix__=1'; + } elsif ($spec =~ /^mingw/) { + return ' -isystem /mingw/include' . + ' -D__MINGW32__=1' . + ' -D__MSVCRT__=1' . + ' -DWIN32=1 -D_WIN32=1 -D__WIN32=1 -D__WIN32__=1' . + ' -DWINNT=1 -D__WINNT=1 -D__WINNT__=1' . + " -D'_cdecl=__attribute__((__cdecl__))'" . + " -D'__cdecl=__attribute__((__cdecl__))'" . + " -D'_stdcall=__attribute__((__stdcall__))'" . + " -D'__stdcall=__attribute__((__stdcall__))'" . + " -D'_fastcall=__attribute__((__fastcall__))'" . + " -D'__fastcall=__attribute__((__fastcall__))'" . + " -D'__declspec(x)=__attribute__((x))'"; } elsif ( $spec =~ /^cygwin/) { return &add_specs ('unix') . ' -D__CYGWIN__=1 -D__CYGWIN32__=1' .
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> --- cgcc | 13 +++++++++++++ 1 file changed, 13 insertions(+)