![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Vaya con Googlegroups... escribes un mensaje larguísimo y no te lo publica. Aquí va la segunda intentona: Muchas gracias ante todo por tu tiempo y consejo, J. A. J.A. Gutierrez escribiu: > Azdo <azdo_b***yahoo.es> wrote: > > : estoy tratando de compilar las fuentes de un programa en un entorno un > : tanto peculiar (un Irix). La versión de la libjpeg que trae no me > > entonces, deberias escribir en es.comp.os.unix Bueno, he publicado aquí porque realmente tengo más experiencia con sistemas Linux y además en este IRIX estoy usando las herramientas GNU, con lo cual la funcionalidad es (casi) la misma (creo). > > : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo > : como esto: > > : ./configure --prefix=/mi_directorio --program-suffix=LIM > > supongo que el prefijo es /usr/local No, es otro directorio. > > : para que el resto de programas que dependían de la libjpeg antigua > : sigan funcionando. Tras "make && make install" me deja la jerarquía de > > y para no machacar el sistema de instalacion de software > nativo y su base de datos de ficheros instalados... Cierto, cierto. > > Por otra parte, no especificas la version de IRIX que usas, > pero en cualquier caso, te conviene saber que es probable > que puedas descargarte una libjpeg mas actual sin salirte > del sistema "oficial". > Es lo que intenté al principio, pero según he sabido y experimentado, la famosa distribución "freeware" para IRIX está bastante desfasada. > Concretamente, el paquete "Image Format Library 1.2.2" > incluye la version 6a de la libreria jpeg. (y probablemente > exista una version mas nueva de IFL, creo recordar que era > descarga gratuita registrandose en las paginas de SGI) > Sí, lo que puedes encontrar en http://freeware.sgi.com/ > : directorios de librerías, cabeceras y demás en el directorio > : "/mi_directorio". Del sufijo "LIM" pasa completamente. > > no se necesita > > : El caso es que en el programa que quiero compilar, especifico la > : librería jpeg que quiero usar con: > > : ./configure --with-jpeg=/mi_directorio > > : lo cual funciona perfectamente a la hora de compilar, dado que usa las > : cabeceras .h de mi_directorio, aunque después compruebo que el > : programa se está enlazando con las librerías dinámicas antiguas. > > > Puedes hacer algo como: > > CC=cc CFLAGS="-Ofast" \ > CPPFLAGS="-I/usr/local/include" \ > LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ > ./configure \ > --with-jpeg=/usr/local \ > --with-libdir=/usr/local/lib32 > Yo también pienso que la clave está en esos -rpath, la correcta inclusión de LDFLAGS e incluso LD_LIBRARY_PATH. El problema es que el sistema ya tiene definido un -rpath /usr/freeware/lib32 que a veces (casi siempre) se antepone al mío y hace que se carguen las librerías de sistema en lugar de las mías. > : ¿Cómo puedo hacer para que se enlacen los programas con las > : librerías nuevas? > > Creando las librerias dinamicas con numero de version > superior a las del sistema y a~nadiendo /usr/local/lib[32] > a LD_LIBRARY[N32]_PATH. Con eso el enlazador dinamico > cargara las nuevas. > > Alternativamente puedes usar las opciones "-L" y "-rpath" > Ejemplo: > > cc -mips3 -n32 foo.o -rpath /usr/local/lib32 -L/usr/local/lib32 -ljpeg > > > : ¿Será más fácil enlazarlas estáticamente? En ese caso, ¿cómo se > : haría? > > Y por ultimo, puedes enlazarla estaticamente, aunque no te lo > recomiendo: > > cc -mips3 -n32 foo.o /usr/local/lib32/libjpeg.a > Buena idea, pero lo necesito hacer a través de las autotools. Nota de última hora: lo que creo que va a ser la solución si que es completamente off-topic; acabo de descubrir la distribución de librerías nekoware, mucho más actualizada y coherente que la "freeware" (adiós a la pesadilla de los directorios lib, lib32 y lib64) y que parece que configura y compila bien, al menos en principio. Muchas gracias a todos y perdonad por el off-topic, por lo menos he aprendido el uso de '-rpath', que también me va a ser de bastante utilidad en Linux si en alguna ocasión necesito tener la misma librería pero con dos o más versiones diferentes en el sistema. |
| | ||||
| ||||
| |
| |||
| Vaya con Googlegroups... escribes un mensaje larguísimo y no te lo publica. Aquí va la segunda intentona: Muchas gracias ante todo por tu tiempo y consejo, J. A. J.A. Gutierrez escribiu: > Azdo <azdo_b***yahoo.es> wrote: > > : estoy tratando de compilar las fuentes de un programa en un entorno un > : tanto peculiar (un Irix). La versión de la libjpeg que trae no me > > entonces, deberias escribir en es.comp.os.unix Bueno, he publicado aquí porque realmente tengo más experiencia con sistemas Linux y además en este IRIX estoy usando las herramientas GNU, con lo cual la funcionalidad es (casi) la misma (creo). > > : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo > : como esto: > > : ./configure --prefix=/mi_directorio --program-suffix=LIM > > supongo que el prefijo es /usr/local No, es otro directorio. > > : para que el resto de programas que dependían de la libjpeg antigua > : sigan funcionando. Tras "make && make install" me deja la jerarquía de > > y para no machacar el sistema de instalacion de software > nativo y su base de datos de ficheros instalados... Cierto, cierto. > > Por otra parte, no especificas la version de IRIX que usas, > pero en cualquier caso, te conviene saber que es probable > que puedas descargarte una libjpeg mas actual sin salirte > del sistema "oficial". > Es lo que intenté al principio, pero según he sabido y experimentado, la famosa distribución "freeware" para IRIX está bastante desfasada. > Concretamente, el paquete "Image Format Library 1.2.2" > incluye la version 6a de la libreria jpeg. (y probablemente > exista una version mas nueva de IFL, creo recordar que era > descarga gratuita registrandose en las paginas de SGI) > Sí, lo que puedes encontrar en http://freeware.sgi.com/ > : directorios de librerías, cabeceras y demás en el directorio > : "/mi_directorio". Del sufijo "LIM" pasa completamente. > > no se necesita > > : El caso es que en el programa que quiero compilar, especifico la > : librería jpeg que quiero usar con: > > : ./configure --with-jpeg=/mi_directorio > > : lo cual funciona perfectamente a la hora de compilar, dado que usa las > : cabeceras .h de mi_directorio, aunque después compruebo que el > : programa se está enlazando con las librerías dinámicas antiguas. > > > Puedes hacer algo como: > > CC=cc CFLAGS="-Ofast" \ > CPPFLAGS="-I/usr/local/include" \ > LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ > ./configure \ > --with-jpeg=/usr/local \ > --with-libdir=/usr/local/lib32 > Yo también pienso que la clave está en esos -rpath, la correcta inclusión de LDFLAGS e incluso LD_LIBRARY_PATH. El problema es que el sistema ya tiene definido un -rpath /usr/freeware/lib32 que a veces (casi siempre) se antepone al mío y hace que se carguen las librerías de sistema en lugar de las mías. > : ¿Cómo puedo hacer para que se enlacen los programas con las > : librerías nuevas? > > Creando las librerias dinamicas con numero de version > superior a las del sistema y a~nadiendo /usr/local/lib[32] > a LD_LIBRARY[N32]_PATH. Con eso el enlazador dinamico > cargara las nuevas. > > Alternativamente puedes usar las opciones "-L" y "-rpath" > Ejemplo: > > cc -mips3 -n32 foo.o -rpath /usr/local/lib32 -L/usr/local/lib32 -ljpeg > > > : ¿Será más fácil enlazarlas estáticamente? En ese caso, ¿cómo se > : haría? > > Y por ultimo, puedes enlazarla estaticamente, aunque no te lo > recomiendo: > > cc -mips3 -n32 foo.o /usr/local/lib32/libjpeg.a > Buena idea, pero lo necesito hacer a través de las autotools. Nota de última hora: lo que creo que va a ser la solución si que es completamente off-topic; acabo de descubrir la distribución de librerías nekoware, mucho más actualizada y coherente que la "freeware" (adiós a la pesadilla de los directorios lib, lib32 y lib64) y que parece que configura y compila bien, al menos en principio. Muchas gracias a todos y perdonad por el off-topic, por lo menos he aprendido el uso de '-rpath', que también me va a ser de bastante utilidad en Linux si en alguna ocasión necesito tener la misma librería pero con dos o más versiones diferentes en el sistema. |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |
| |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
| |||
| Azdo <azdo_b***yahoo.es> wrote: : Hola, y muchas gracias por la completa respuesta. : J.A. Gutierrez ha escrito: :> Azdo <azdo_b***yahoo.es> wrote: :> :> : estoy tratando de compilar las fuentes de un programa en un entorno un :> : tanto peculiar (un Irix). La versión de la libjpeg que trae no me :> :> entonces, deberias escribir en es.comp.os.unix : Bueno, escribí aquí porque no es que sea un tema específico de IRIX, : sino que funciona exactamente igual en Linux y porque tengo más No es exactamente igual... Por una parte estan las distribuciones de software especificas de IRIX, y por otra, el mecanismo de enlazado dinamico tiene ligeras diferencias (por no mencionar la coexistencia de 3 ABI's de IRIX) : experiencia en Linux De todas formas, estoy usando todas las: herramientas GNU, iguales que las que se pueden encontrar en Linux. Si, pero la configuracion tiene ligeras diferencias. Por ejemplo, en Linux te han hablado de ldconfig que no existe en IRIX :> :> : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo :> : como esto: :> :> : ./configure --prefix=/mi_directorio --program-suffix=LIM :> :> supongo que el prefijo es /usr/local : No, es otro directorio en el que quiero instalar mis librerías : especiales. Bueno, da lo mismo :> :> : para que el resto de programas que dependían de la libjpeg antigua :> : sigan funcionando. Tras "make && make install" me deja la jerarquía de :> :> y para no machacar el sistema de instalacion de software :> nativo y su base de datos de ficheros instalados... :> : Correcto. :> Por otra parte, no especificas la version de IRIX que usas, :> pero en cualquier caso, te conviene saber que es probable :> que puedas descargarte una libjpeg mas actual sin salirte :> del sistema "oficial". : Realmente es lo primero que intenté, pero el repositorio oficial de : SGI tiene una libjpeg ligeramente desfasada. Depende de donde mires :> Concretamente, el paquete "Image Format Library 1.2.2" :> incluye la version 6a de la libreria jpeg. (y probablemente :> exista una version mas nueva de IFL, creo recordar que era :> descarga gratuita registrandose en las paginas de SGI) : Yo lo he descargado de http://freeware.sgi.com/ Aqui esta el problema. Para IRIX tienes varias distribuciones de software: 1.- La oficial y la unica que es "IRIX"; para la que puedes descargar paquetes adicionales en supportfolio Esta concretamente es la que contiene la IFL que te mencionaba. 2.- freeware.sgi.com Mantenida por gente de sgi en sus ratos libres, pero hace bastante que no sacan versiones nuevas. Segun algunos, esta abandonada. 3.- Nekochan Aqui si que hay ultimisimas versiones de paquetes, aunque es un poco caotico. http://www.nekochan.net/ 4.- Otros Como p.e. http://webdiis.unizar.es/pub/unix/binaries/IRIX/ :> : directorios de librerías, cabeceras y demás en el directorio :> : "/mi_directorio". Del sufijo "LIM" pasa completamente. :> :> no se necesita :> :> : El caso es que en el programa que quiero compilar, especifico la :> : librería jpeg que quiero usar con: :> :> : ./configure --with-jpeg=/mi_directorio :> :> : lo cual funciona perfectamente a la hora de compilar, dado que usa las :> : cabeceras .h de mi_directorio, aunque después compruebo que el :> : programa se está enlazando con las librerías dinámicas antiguas. :> :> :> Puedes hacer algo como: :> :> CC=cc CFLAGS="-Ofast" \ :> CPPFLAGS="-I/usr/local/include" \ :> LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ :> ./configure \ :> --with-jpeg=/usr/local \ :> --with-libdir=/usr/local/lib32 : Lo de --with-jpeg y compañía ya lo he hecho y funciona (la razón por : la que la libjpeg del sistema no me sirve es porque carece en algunas : estructuras del campo : void *client_data; Correcto eso esta en jpeg v6b, pero no en la v6a (que es la que incluye IFL 1.2.2 que te comentaba) Acabo de buscar un poco, y la verdad es que no encuentro la IFL 1.3 para IRIX, solo veo version para Windows :-( : He probado a usar '-rpath' igual que como la tienes tú en el : configure, pero resulta que el '-rpath' de sistema siempre se antepone : al mío, tal y como he podido comprobar con 'elfdump'. Tengo la : sensación de que todas estas herramientas se han pensado para permitir : la instalación de librerías en diferentes directorios del sistema, : pero no para que coexistan librerías iguales de diferente versión. Que no, que yo lo tengo configurado asi y funciona perfectamente: $ uname -Rr 6.5 6.5.24f $ ls -1 /usr/lib32/libjpeg.so* /usr/local/lib32/libjpeg.so* /usr/lib32/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib32/libjpeg.so.6.2 $ unset LD_LIBRARYN32_PATH $ ldd gdj | grep jpeg libjpeg.so => /usr/local/lib32/libjpeg.so $ elfdump -Dl gdj | grep jpeg [8] Feb 24 20:58:59 2003 0xda8310e4 ----- libjpeg.so sgi6.2 La propia libreria jpeg no recuerdo como la cree; pero conviene asegurarse de que tenga numero de version Una forma de crearla a partir de la estatica es: ld \ -mips3 -n32 \ -rpath /usr/local/lib32 \ -elf \ -shared \ -no_unresolved \ -rdata_shared \ -soname libjpeg.so \ -o libjpeg.so.6.2 \ -all libjpeg.a \ -set_version sgi6.2 \ -lc rm -f libjpeg.so ln -s libjpeg.so.6.2 $1.so (todo eso para el ABI mips3/N32, cambiar si se esta usando otra) : Gracias por estos últimos consejos, aunque realmente lo necesito hacer : mediante 'configure' y no invocando directamente al compilador. : Finalmente, pienso que debería ser posible. Después de todo, es más : o menos lo que hacen los 'cross-compilers', ¿no? Si que es posible, ya te digo que yo lo tengo asi y compilo mucho software que acaba usando mis librerias en lugar de las del mismo nombre del sistema. En muchos casos es cosa de pasarle LD_FLAGS y CPPFLAGS al configure... -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio) |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con las versiones de Office. Bookmarks | Carolina Guzman | Newsgroup microsoft.public.es.word | 3 | 22-07-2008 23:00:29 |
| Problemas con las versiones de Office. Bookmarks | Carolina Guzman | Newsgroup microsoft.public.es.word | 0 | 22-07-2008 19:04:56 |
| Problemas con Menu "new" en librerias de documentos y proveedor de | Jorge | Newsgroup microsoft.public.es.sharepoint | 3 | 29-02-2008 22:22:02 |
| problemas con versiones IE | Jordi Maycas | Newsgroup microsoft.public.es.webmasters | 12 | 20-03-2007 18:15:12 |
| Problemas con versiones de librerías y configure | Azdo | Newsgroup es.comp.os.linux.programacion | 35 | 10-05-2006 20:52:22 |