Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.os.* Foro > Newsgroup es.comp.os.unix
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #21 (permalink)  
Antiguo 09-05-2006, 22:58:08
Azdo
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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.

Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #22 (permalink)  
Antiguo 09-05-2006, 22:58:08
Azdo
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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.

Responder Con Cita
  #23 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #24 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #25 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
 
  #26 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #27 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #28 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #29 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
  #30 (permalink)  
Antiguo 10-05-2006, 09:09:29
J.A. Gutierrez
 
Mensajes: n/a
Predeterminado Re: Problemas con versiones de librerías y configure

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)
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


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





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.