Uso de la optimización del tiempo de enlace de GCC con bibliotecas enlazadas estáticas

Estoy tratando de usar optimizaciones de tiempo de enlace con el-flto bandera del CCG (6.1.1).

Si bien funciona bien con mi código, no se vincula con una biblioteca vinculada estática que también estoy construyendo y vinculando con mi proyecto (que esMotor y la biblioteca esglsl-optimizer, solo para referencia).

Aquí está la salida:

...
/usr/bin/ranlib: ir_expression_flattening.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_function_inlining.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_copy_propagation_elements.cpp.o: plugin needed to handle lto object
...

Y después de eso, por supuesto, obtengo varias "referencias indefinidas" a algunas funciones.

Investigué un poco y descubrí que podría deberse aar y debería tratar de usargcc-ar, pero no estoy seguro de cómo podría hacer eso.

Además, estoy usando CMake que no admite lto (excepto en el compilador de Intel en algunas plataformas, así que leí ...). Aunque intenté usar:

set_property(TARGET glsl_optimizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True)

Lo que no funcionó.

Además, probé GCC-fuse-linker-plugin bandera que no funcionó.

Supongo que tendré que hacerlo manualmente a la antigua usanza directamentegcc-ar, o tal vez hay algún otro método?

Respuestas a la pregunta(1)

Su respuesta a la pregunta