php pdo u2 universe unidata

Tratando de construir la extensión PHP PDO para Rocket U2



universe unidata (2)

Me pregunto si alguien puede ayudarme con un problema que me hace sacar lo que queda de mi pelo ...

Actualmente estoy trabajando en un proyecto que requiere que hable con una base de datos de Unidata. PHP no tiene un controlador nativo para acceder a este tipo de base de datos, sin embargo, después de buscar en Google, encontré lo siguiente:

https://u2devzone.rocketsoftware.com/accelerate/articles/u2-pdo-driver/u2-pdo-driver .

Tengo el encabezado y la biblioteca de U2 Intercall y creo que los estoy incluyendo correctamente. Sin embargo, la extensión compila, pero no pasa las pruebas, ya que se equivoca con

pdo_u2.so: undefined symbol: ic_universe_session in Unknown on line 0

lo que me sugiere que no está vinculado a la biblioteca. Cuando edito el archivo MAKE y especifico a mano que la biblioteca debe incluirse, se equivoca con

relocation R_X86_64_32 against `.rodata.str1.1'' can not be used when making a shared object; recompile with -fPIC /home/kaigoh/Downloads/intcall/lib/libuvic.a: could not read symbols: Bad value collect2: error: ld returned 1 exit status make: *** [pdo_u2.la] Error 1

Intenté forzar el modificador -fPIC en el archivo MAKE pero recibí el mismo error.

Simplemente no sé lo suficiente acerca de compilar extensiones PHP personalizadas para ayudarme a mí mismo, y espero que haya un gurú aquí que pueda orientarme en la dirección correcta.

ACTUALIZACIÓN: Esto se compila perfectamente utilizando una instalación de 32 bits de Linux, por lo que no hay idea de por qué está fallando con una instalación de 64 bits ...


Sé que hice esta pregunta hace mucho tiempo, pero la solución definitiva que se me ocurrió fue escribir una pieza de middleware en C # con las bibliotecas .Net de Rocket junto con algunas clases de PHP que pueden leer y procesar los datos de UniData.

Si alguien está interesado en obtener más detalles acerca de cómo accedí a UniData desde PHP, no dude en enviarme un mensaje.


lib / libuvic.a necesita ser recompilado con -fPIC, no solo el código que intenta vincularse. No puedo decir a partir de las muestras de salida si compiló también la biblioteca con -fPIC o no.