Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #743 from gerdr/gerdr/mingw-gpp

Fix g++ issues with Strawberry Perl on Win64
  • Loading branch information...
commit 9d154564108d235fa02abf0f47c1bfaed1b27da3 2 parents fefc6b7 + e445c0a
@leto leto authored
View
18 config/init/hints/mswin32.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2007, Parrot Foundation.
+# Copyright (C) 2005-2012, Parrot Foundation.
package init::hints::mswin32;
@@ -19,10 +19,10 @@ sub runstep {
# We do one bit of its work early here, because we need the result now.
$cc = $conf->options->get('cc') if defined $conf->options->get('cc');
- my $is_msvc = $cc =~ m/\bcl(?:\.exe)?/i;
- my $is_intel = $cc =~ m/\bicl(?:\.exe)?/i;
- my $is_mingw = $cc =~ m/\bgcc(?:\.exe)?/i;
- my $is_bcc = $cc =~ m/\bbcc32(?:\.exe)?/i;
+ my $is_msvc = $cc =~ m/\bcl\b/i;
+ my $is_intel = $cc =~ m/\bicl\b/i;
+ my $is_mingw = $cc =~ m/\b(?:gcc|g\+\+|clang)\b/i;
+ my $is_bcc = $cc =~ m/\bbcc32\b/i;
$conf->data->set(
win32 => 1,
@@ -235,6 +235,14 @@ sub runstep {
optimize => '',
);
}
+ elsif ( $make =~ /gmake/i ) {
+ # also Strawberry Perl
+ $conf->data->set(
+ ccflags => "-DWINVER=$winver ",
+ make => 'gmake',
+ make_c => 'gmake -C',
+ );
+ }
elsif ( $make =~ /mingw32-make/i ) {
; # Vanilla Perl
$conf->data->set(
View
3  src/gc/string_gc.c
@@ -674,7 +674,8 @@ aligned_mem(ARGIN(SHIM(const Parrot_Buffer *buffer)), ARGIN(char *mem))
{
ASSERT_ARGS(aligned_mem)
mem += sizeof (void *);
- mem = (char *)(((unsigned long)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
+ // FIXME: issue #378
+ mem = (char *)(((UINTVAL)(mem + WORD_ALIGN_1)) & WORD_ALIGN_MASK);
return mem;
}
View
12 src/interp/inter_cb.c
@@ -314,16 +314,20 @@ Parrot_run_callback(PARROT_INTERP,
pasm_sig[1] = 'v';
break;
case 'l':
- i_param = (INTVAL)(long) external_data;
+ // FIXME: issue #742
+ i_param = (INTVAL)(long)(INTVAL) external_data;
goto case_I;
case 'i':
- i_param = (INTVAL)(int)(long) external_data;
+ // FIXME: issue #742
+ i_param = (INTVAL)(int)(INTVAL) external_data;
goto case_I;
case 's':
- i_param = (INTVAL)(short)(long) external_data;
+ // FIXME: issue #742
+ i_param = (INTVAL)(short)(INTVAL) external_data;
goto case_I;
case 'c':
- i_param = (INTVAL)(char)(long)external_data;
+ // FIXME: issue #742
+ i_param = (INTVAL)(char)(INTVAL) external_data;
case_I:
pasm_sig[1] = 'I';
param = (void*) i_param;
View
2  src/packfile/segments.c
@@ -854,7 +854,7 @@ default_dump(PARROT_INTERP, ARGIN(const PackFile_Segment *self))
Parrot_io_printf(interp, "\n %04x: ", (int) i);
Parrot_io_printf(interp, "%08lx ", (unsigned long)
- self->data ? self->data[i] : self->pf->src[i]);
+ (self->data ? self->data[i] : self->pf->src[i]));
}
Parrot_io_printf(interp, "\n]\n");
View
3  src/platform/generic/socket.c
@@ -476,7 +476,8 @@ Parrot_io_socket(PARROT_INTERP, int fam, int type, int proto)
"creating socket failed: %Ss",
Parrot_platform_strerror(interp, PIO_SOCK_ERRNO));
- setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value));
+ setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char *)&value,
+ sizeof (value));
#ifdef IPV6_V6ONLY
if (fam == AF_INET6)
Please sign in to comment.
Something went wrong with that request. Please try again.