On Wed, 2008-06-18 at 09:06 -0700, chromatic wrote:
> On Tuesday 17 June 2008 21:06:58 Geoffrey Broadwell wrote:
> 
> >   Index: src/dynext.c
> > ===================================================================
> > --- src/dynext.c        (revision 28459)
> > +++ src/dynext.c        (working copy)
> > @@ -276,12 +276,10 @@
> >      /* And on cygwin replace a leading "lib" by "cyg". */
> >  #ifdef __CYGWIN__
> >      if (!STRING_IS_EMPTY(lib) && memcmp(lib->strstart, "lib", 3) == 0) {
> > -        strcpy(path->strstart, lib->strstart);
> > +        path = string_append(interp,
> > +            string_from_cstring(interp, "cyg", 3),
> > +            string_substr(interp, lib, 3, lib->strlen - 3, NULL, 0));
> 
> That string_from_cstring could almost probably be CONST_STRING.  If we can 
> swing that, it's usually much better.

OK, regenerated with this change.  Tested to not break on Linux, but
that's not saying much, given the #ifdef __CYGWIN__ ....


-'f

Index: src/dynext.c
===================================================================
--- src/dynext.c	(revision 28514)
+++ src/dynext.c	(working copy)
@@ -276,12 +276,9 @@
     /* And on cygwin replace a leading "lib" by "cyg". */
 #ifdef __CYGWIN__
     if (!STRING_IS_EMPTY(lib) && memcmp(lib->strstart, "lib", 3) == 0) {
-        strcpy(path->strstart, lib->strstart);
+        path = string_append(interp, CONST_STRING(interp, "cyg"),
+            string_substr(interp, lib, 3, lib->strlen - 3, NULL, 0));
 
-        path->strstart[0] = 'c';
-        path->strstart[1] = 'y';
-        path->strstart[2] = 'g';
-
         *handle           = Parrot_dlopen(path->strstart);
 
         if (*handle)
Index: lib/Parrot/Configure/Step/Methods.pm
===================================================================
--- lib/Parrot/Configure/Step/Methods.pm	(revision 28514)
+++ lib/Parrot/Configure/Step/Methods.pm	(working copy)
@@ -198,7 +198,8 @@
     my $args = shift;
     croak "_add_to_libs() takes hashref: $!" unless ref($args) eq 'HASH';
     my $platform =
-          ($args->{osname} =~ /mswin32/i &&
+          (($args->{osname} =~ /mswin32/i ||
+	    $args->{osname} =~ /cygwin/i) &&
            $args->{cc} =~ /^gcc/i)          ? 'win32_gcc'
         :  $args->{osname} =~ /mswin32/i    ? 'win32_nongcc'
         :  $args->{osname} =~ /darwin/i     ? 'darwin'
Index: config/gen/opengl.pm
===================================================================
--- config/gen/opengl.pm	(revision 28514)
+++ config/gen/opengl.pm	(working copy)
@@ -410,6 +410,9 @@
         '/System/Library/Frameworks/OpenGL.framework/Headers/*.h',
         '/System/Library/Frameworks/GLUT.framework/Headers/*.h',
 
+        # Cygwin
+        '/usr/include/w32api/GL/*.h',
+
         # Windows/MSVC
         (map "$_/gl/*.h" => @include_paths_win32),
 
@@ -444,11 +447,19 @@
 #         "$ENV{HOME}/src/osx-insane/usr/X11R6 1/include/GL/*.h",
     );
 
+    print "\nChecking for OpenGL headers using the following globs:\n\t",
+        join("\n\t", @header_globs), "\n"
+        if $verbose;
+
     my @header_files = sort map {File::Glob::bsd_glob($_)} @header_globs;
 
     my %skip = map {($_ => 1)} @SKIP;
     @header_files = grep {my ($file) = m{([^/]+)$}; !$skip{$file}} @header_files;
 
+    print "\nFound the following OpenGL headers:\n\t",
+        join("\n\t", @header_files), "\n"
+        if $verbose;
+
     die "OpenGL enabled and detected, but no OpenGL headers found!"
         unless @header_files;
 

Reply via email to