Hola listeros, ¿Alguien ha conseguido instalar el plugin para XdTV en un AMD64? ¿que quiere decir al hacer make el error "compile con -fPIC? :/ son dos cosas a las que no encuentro (o no se encontrar) solución. ¿Como hago funcionar superkaramba en KDE 3.4? Demasiadas preguntas en un solo mensaje, con que alguien sepa orientarme en las dos primeras me conformo... Gracias
El 2005-04-05 a las 17:58 +0200, sorrow & pain escribió:
¿que quiere decir al hacer make el error "compile con -fPIC? :/
Sólo sé lo que dice el manual del gcc: `-fPIC' If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on the m68k, m88k, and the SPARC. Position-independent code requires special support, and therefore works only on certain machines.
son dos cosas a las que no encuentro (o no se encontrar) solución.
Tendrías que preguntarle al desarrollador. Sin ver el mensaje exacto que te suelta, el mensaje parece indicar que debieran haber usado esa opción, o que la recomiendan, o que recomiendan que la quites Prueba a ponernos el error exacto que te sale, y probaré a decirte otra cosa más concreta :-p -- Saludos Carlos Robinson
El mié, 06-04-2005 a las 02:51 +0200, Carlos E. R. escribió:
El 2005-04-05 a las 17:58 +0200, sorrow & pain escribió:
¿que quiere decir al hacer make el error "compile con -fPIC? :/
Sólo sé lo que dice el manual del gcc:
`-fPIC' If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on the m68k, m88k, and the SPARC.
Position-independent code requires special support, and therefore works only on certain machines.
son dos cosas a las que no encuentro (o no se encontrar) solución.
Tendrías que preguntarle al desarrollador. Sin ver el mensaje exacto que te suelta, el mensaje parece indicar que debieran haber usado esa opción, o que la recomiendan, o que recomiendan que la quites
Prueba a ponernos el error exacto que te sale, y probaré a decirte otra cosa más concreta :-p
-- Saludos Carlos Robinson
Gracias por contestar Carlos, El error exacto es este: gcc -Wall -shared -O4 -L/usr/X11R6/lib -nostartfiles main.o nagra.o kizkool32snabrab.o nagraudio.o autodetect.o -o plug-ps-2.0.6.1.so /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld: main.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC main.o: no se puede leer símbolos: Valor erróneo collect2: ld devolvió el estado de salida 1 make: *** [plug-ps-2.0.6.1.so] Error 1 me sale al intentar compilar muchas cosas y no se como solucionarlo. Gracias de nuevo
El 2005-04-06 a las 14:54 +0200, sorrow & pain escribió:
Sólo sé lo que dice el manual del gcc:
`-fPIC' If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on the m68k, m88k, and the SPARC.
Position-independent code requires special support, and therefore works only on certain machines.
[...]
Gracias por contestar Carlos,
El error exacto es este:
gcc -Wall -shared -O4 -L/usr/X11R6/lib -nostartfiles main.o nagra.o kizkool32snabrab.o nagraudio.o autodetect.o -o plug-ps-2.0.6.1.so /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld: main.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC main.o: no se puede leer símbolos: Valor erróneo collect2: ld devolvió el estado de salida 1 make: *** [plug-ps-2.0.6.1.so] Error 1
me sale al intentar compilar muchas cosas y no se como solucionarlo.
Pues eso parece ser un error del desarrollador, o bien lo prepararon para una versión anterior del compilador. Ojo, que yo no soy desarrollador de linux, así que tengo un montón de lagunas. Parece que arriba se está compilando una librería compartida (por lo de -shared). Y entonces el compilador protesta de que la recolocación de R_X86_64_32 (supongo que es un símbolo) no puede ser usada cuando se está haciendo una liberría compartida, y dice que lo hagas con la opción "-fPIC", que según el trozo de manual que copié anoche parece servir para eso. "-fPIC" es en realidad una variación de "-fpic", cuya explicación es algo más completa y la copio: (pinfo gcc, o info gcc -> option index, search) (File: gcc.info, Node: Code Gen Options) `-fpic' Generate position-independent code (PIC) suitable for use in a shared library, if supported for the target machine. Such code accesses all constant addresses through a global offset table (GOT). The dynamic loader resolves the GOT entries when the program starts (the dynamic loader is not part of GCC; it is part of the operating system). If the GOT size for the linked executable exceeds a machine-specific maximum size, you get an error message from the linker indicating that `-fpic' does not work; in that case, recompile with `-fPIC' instead. (These maximums are 16k on the m88k, 8k on the SPARC, and 32k on the m68k and RS/6000. The 386 has no such limit.) Position-independent code requires special support, and therefore works only on certain machines. For the 386, GCC supports PIC for System V but not for the Sun 386i. Code generated for the IBM RS/6000 is always position-independent. Y tu, ¿que puedes hacer? Pues analizar el makefile, o el configure, y ver que opciones se pasan al gcc cuando se compilan las liberías compartidas, y añadir esa opción. Y si yo tuviera que hacer eso, me costaría también un rato, así que no me mires raro ;-) -- Saludos Carlos Robinson
El mié, 06-04-2005 a las 16:21 +0200, Carlos E. R. escribió:
El 2005-04-06 a las 14:54 +0200, sorrow & pain escribió:
Sólo sé lo que dice el manual del gcc:
`-fPIC' If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on the m68k, m88k, and the SPARC.
Position-independent code requires special support, and therefore works only on certain machines.
[...]
Gracias por contestar Carlos,
El error exacto es este:
gcc -Wall -shared -O4 -L/usr/X11R6/lib -nostartfiles main.o nagra.o kizkool32snabrab.o nagraudio.o autodetect.o -o plug-ps-2.0.6.1.so /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld: main.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC main.o: no se puede leer símbolos: Valor erróneo collect2: ld devolvió el estado de salida 1 make: *** [plug-ps-2.0.6.1.so] Error 1
me sale al intentar compilar muchas cosas y no se como solucionarlo.
Pues eso parece ser un error del desarrollador, o bien lo prepararon para una versión anterior del compilador. Ojo, que yo no soy desarrollador de linux, así que tengo un montón de lagunas. Parece que arriba se está compilando una librería compartida (por lo de -shared).
Y entonces el compilador protesta de que la recolocación de R_X86_64_32 (supongo que es un símbolo) no puede ser usada cuando se está haciendo una liberría compartida, y dice que lo hagas con la opción "-fPIC", que según el trozo de manual que copié anoche parece servir para eso. "-fPIC" es en realidad una variación de "-fpic", cuya explicación es algo más completa y la copio:
(pinfo gcc, o info gcc -> option index, search) (File: gcc.info, Node: Code Gen Options)
`-fpic' Generate position-independent code (PIC) suitable for use in a shared library, if supported for the target machine. Such code accesses all constant addresses through a global offset table (GOT). The dynamic loader resolves the GOT entries when the program starts (the dynamic loader is not part of GCC; it is part of the operating system). If the GOT size for the linked executable exceeds a machine-specific maximum size, you get an error message from the linker indicating that `-fpic' does not work; in that case, recompile with `-fPIC' instead. (These maximums are 16k on the m88k, 8k on the SPARC, and 32k on the m68k and RS/6000. The 386 has no such limit.)
Position-independent code requires special support, and therefore works only on certain machines. For the 386, GCC supports PIC for System V but not for the Sun 386i. Code generated for the IBM RS/6000 is always position-independent.
Y tu, ¿que puedes hacer? Pues analizar el makefile, o el configure, y ver que opciones se pasan al gcc cuando se compilan las liberías compartidas, y añadir esa opción. Y si yo tuviera que hacer eso, me costaría también un rato, así que no me mires raro ;-)
-- Saludos Carlos Robinson
No, no te preocupes, no te miro raro, eso es algo que ya había pensado, pero después de patearme al tito google opté por preguntar por si alguien lo había resuelto y quería compartirlo. En fin, lo haré poquito a poco, es lo que hay :P porque también ando liado en construirme un miniPC para el coche, apenas encuentre un navegador GPS que funcione y me hable en linux, me pondré manos a la obra :D Gracias ¡Salud!
El 2005-04-06 a las 20:12 +0200, sorrow & pain escribió:
y añadir esa opción. Y si yo tuviera que hacer eso, me costaría también un rato, así que no me mires raro ;-)
No, no te preocupes, no te miro raro, eso es algo que ya había pensado,
Era para que no me pidieras detalles de como hacerlo, porque no tengo ni idea :-P
pero después de patearme al tito google opté por preguntar por si alguien lo había resuelto y quería compartirlo.
X-) Cierto, buena opción. No me acostumbro al google, porque como no tengo conexión permanetne, casi no navego.
En fin, lo haré poquito a poco, es lo que hay :P porque también ando liado en construirme un miniPC para el coche, apenas encuentre un navegador GPS que funcione y me hable en linux, me pondré manos a la obra :D
Anda, ¡mira! Pues no hace mucho vi un articulo en una revista, con un modulo GPS y un PIC. Al parecer, hablan texto por un puerto serie, parece bastante sencillo - tiene que serlo por narices, porque si no no lo puede hacer un PIC. Si te interesa busco la revista y te digo algo más. -- Saludos Carlos Robinson
participants (2)
-
Carlos E. R.
-
sorrow & pain