petdance/scratch — Issue #821: OpenGL examples not working on OS X
Author: petdance
Created: 2011-11-14 06:13:39+00:00
State: open
Labels: bug, Pri-normal, Sev-medium

```
$ ./parrot examples/opengl/shapes.pir
Could not find a suitable GL shared library!
current instr.: 'parrot;OpenGL;_load_lib_with_fallbacks' pc 172 (runtime/parrot/library/OpenGL.pir:176)
called from Sub 'parrot;OpenGL;_load_opengl_libs' pc 57 (runtime/parrot/library/OpenGL.pir:117)
called from Sub 'parrot;OpenGL;_opengl_init' pc 9 (runtime/parrot/library/OpenGL.pir:92)
called from Sub 'init_glut' pc 131 (examples/opengl/shapes.pir:71)
called from Sub 'main' pc 26 (examples/opengl/shapes.pir:40)
```
This is after OpenGL is detected by Configure.pl :
```
$ perl Configure.pl
Parrot Version 1.4.0 Configure 2.0
Copyright (C) 2001-2009, Parrot Foundation.

Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
the `--ask' flag on the command line, in which case I'll prompt you for a few
pieces of info.

Since you're running this program, you obviously have Perl 5--I'll be pulling
some defaults from its configuration.

init::manifest - Check MANIFEST.....................................done.
init::defaults - Set Configure's default values.....................done.
init::install - Set up installation paths..........................done.
init::hints - Load platform and local hints files................done.
init::headers - Find header files distributed with Parrot..........done.
inter::progs - Determine what C compiler and linker to use........done.
inter::make - Is make installed...................................yes.
inter::lex - Is lex installed................................skipped.
inter::yacc - Is yacc installed...............................skipped.
auto::gcc - Is your C compiler actually gcc................yes, 4.0.
auto::glibc - Is GNU libc installed................................no.
auto::backtrace - Does libc have the backtrace* functions.............yes.
auto::msvc - Is your C compiler actually Visual C++..........skipped.
auto::attributes - Detect compiler attributes.........................done.
auto::warnings - Detect supported compiler warnings..........set for gcc.
init::optimize - Enable optimization..................................no.
inter::shlibs - Determine flags for building shared libraries......done.
inter::libparrot - Should parrot link against a shared library.........yes.
inter::charset - Which charset files should be compiled in..........done.
inter::encoding - Which encoding files should be compiled in.........done.
inter::types - What types should Parrot use.......................done.
auto::ops - Which opcode files should be compiled in...........done.
auto::pmc - Which pmc files should be compiled in..............done.
auto::alignptrs - Determine your minimum pointer alignment........ 1 byte.
auto::headers - Probe for C headers................................done.
auto::sizes - Determine some sizes...............................done.
auto::byteorder - Compute native byteorder for wordsize.....little-endian.
auto::va_ptr - Test the type of va_ptr...........................stack.
auto::format - What formats should be used for sprintf............done.
auto::isreg - Does your C library have a working S_ISREG..........yes.
auto::arch - Determine CPU architecture and OS..................done.
auto::jit - Determine JIT capability.............................no.
auto::cpu - Generate CPU specific stuff........................done.
auto::funcptr - Does compiler support function pointer casts.......done.
auto::cgoto - Does your compiler support computed goto............yes.
auto::inline - Does your compiler support inline...................yes.
auto::gc - Determine allocator to use.........................done.
auto::memalign - Does your C library support memalign........already set.
auto::signal - Determine some signal stuff........................done.
auto::socklen_t - Determine whether there is socklen_t................yes.
auto::neg_0 - Determine whether negative zero can be printed......yes.
auto::env - Does your C library have setenv / unsetenv.........both.
auto::thread - Does your system has thread.........................yes.
auto::gmp - Does your platform support GMP......................yes.
auto::readline - Does your platform support readline.................yes.
auto::gdbm - Does your platform support gdbm....................done.
auto::pcre - Does your platform support pcre................yes, 7.7.
auto::opengl - Does your platform support OpenGL....yes, MacOSX_GLUT 5.
auto::crypto - Does your platform support crypto...........yes, 0.9.8h.
auto::gettext - Does your configuration include gettext.............yes.
auto::snprintf - Test snprintf......................................done.
auto::perldoc - Is perldoc installed................................yes.
auto::pod2man - Is pod2man installed................................yes.
auto::ctags - Is (exuberant) ctags installed......................yes.
auto::revision - Determine Parrot's revision......................r40554.
auto::icu - Is ICU installed....................................yes.
gen::config_h - Generate C headers.................................done.
gen::core_pmcs - Generate core pmc list.............................done.
gen::crypto - Generate Digest PMC files..........................done.
gen::parrot_include - Generate runtime/parrot/include....................done.
gen::opengl - Generating OpenGL bindings.........................done.
gen::call_list - Generate NCI signature list........................done.
gen::makefiles - Generate makefiles and other build files...........done.
gen::platform - Move platform files into place.....................done.
gen::config_pm - Record configuration data for later retrieval......done.
Okay, we're done!

You can now use `gmake' to build your Parrot.
After that, you can use `gmake test' to run the test suite.

Happy Hacking,
The Parrot Team
```

Originally http://trac.parrot.org/parrot/ticket/924 by @leto