The GL_OES_get_program_binary support for Mesa has been worked on for several months now but today Intel's Tapani Pälli published the latest work-in-progress patches for this feature.
Per the Khronos.org registry, "This extension introduces two new commands. GetProgramBinaryOES empowers an application to use the GL itself as an offline compiler. The resulting program binary can be reloaded into the GL via ProgramBinaryOES. This is a very useful path for applications that wish to remain portable by shipping pure GLSL source shaders, yet would like to avoid the cost of compiling their shaders at runtime. Instead an application can supply its GLSL source shaders during first application run, or even during installation. The application then compiles and links its shaders and reads back the program binaries. On subsequent runs, only the program binaries need be supplied! Though the level of optimization may not be identical -- the offline shader compiler may have the luxury of more aggressive optimization at its disposal -- program binaries generated online by the GL are interchangeable with those generated offline by an SDK tool."
The GL_OES_get_program_binary extension was originally written by an AMD employee and is slowly coming to the Mesa OpenGL ES drivers. The latest set of nine patches for this OpenGL ES extension can be found on the Mesa-dev list.