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;