* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

fallo en make -> recompile with -fPIC

Hola,

Estoy intentando instalar un stemmer (http://code.google.com/p/php-stemmer/source/checkout) y tengo el siguiente fallo en el último make de la instalación (http://php-stemmer.googlecode.com/svn/wiki/Installation.wiki):

/usr/bin/ld: /home/usuario/public_html/phirehose/example/php-stemmer-0.7.0/libstemmer_c/libstemmer.a(libstemmer.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
/home/usuario/public_html/phirehose/example/php-stemmer-0.7.0/libstemmer_c/libstemmer.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [stemmer.la] Error 1

He buscado por ahí y he encontrado esto, donde explica porque falla http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3 pero no se bien donde agregar los FLAGS y luego también he encontrado esta otra solución, pero tampoco se donde aplicarla: http://www.cmake.org/pipermail/cmake/2007-May/014350.html

Alguien que me guie un poco?

Un saludo,
ATL

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de DoctorBOFH

# 119199 Se lo pones al configure (si

Nos ha pasado con el repode BDK y algun programa.Se arregla asi con la flag -fPIC

Se lo pones al configure (si tiene), sino al qmake o lo que lleve.

Un Saludo

Muy Suyo

Her DoctorBOFH



Gravatar de atl1985

# 119204 sorry

Sorry por la ignorancia,

Pero como? eso es lo que había supuesto, pero no se ni donde añadir la flag ni como. Había probado en el make, y no se hacerlo bien me fallaba, y en el confign no se como ponera tampoco.

Gracias por la respuesta, esque me estoy iniciando en esto y se me escapan conceptos báscios aun.

Un saludo,
Álvaro

-Para ser feliz solo hay que querer serlo-



Gravatar de DoctorBOFH

# 119206 Pues asi ./configure -fPIC Y

Pues asi

./configure -fPIC

Y ya está.

Un Saludo

Muy Suyo

Her DoctorBOFH



Gravatar de atl1985

# 119208 me da fallo

Eso si lo había probado, pero me daba fallo

[usuario@localhost php-stemmer-0.7.0]$ ./configure -fPIC
configure: error: unrecognized option: `-fPIC'
Try `./configure --help' for more information

-Para ser feliz solo hay que querer serlo-



Gravatar de DoctorBOFH

# 119211 Postea el resultado de

Postea el resultado de configure --help

Muy Suyo

Her DoctorBOFH



Gravatar de atl1985

# 119212 ahí va

Por ahí parece que sale algo de PIC, aunque por defecto es both.

[usuario@localhost php-stemmer-0.7.0]$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']

Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]

System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]

Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-stemmer Enable stemmer support
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)

Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-libdir=NAME Look for libraries in .../NAME rather than .../lib
--with-php-config=PATH Path to php-config php-config
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR
(or the compiler's sysroot if not specified).

Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L
if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.

-Para ser feliz solo hay que querer serlo-



Gravatar de DoctorBOFH

# 119219 ¿y si lo pones en el make que

¿y si lo pones en el make que fallo daba?

make -fPIC

Muy Suyo

Her DoctorBOFH



Gravatar de katnatek

# 119220 Se pone en el makefile

en donde definan la variable

CFLAGS



Gravatar de DoctorBOFH

# 119228 Me parece que el paquete que

Me parece que el paquete que daba este fallo era picprog pero ya no lo recuerdo. Allí en el spec se puede ver como lo solucioné.
No estoy seguro si era picprog o otro programa. Ya ni me acuerdo.
Pero lo hice sin tocar los makefiles.Solo pasandole al configure o al make la flag.A lo mejor no es exactamente -fPIC sino

CFLAG 'algo' o algo similar.

A ver si tengo un rato y lo busco.Pero esto ha pasado compilando programas para mageia2.

Un SAludo

Muy Suyo

Her DoctorBOFH



Gravatar de DoctorBOFH

# 119236 pues no es picprog xD Que

pues no es picprog xD

Que memoria, el caso que no lo encuentro.A lo mejor incluso lo hice como dice Kat, modificando el makefile.Lo siento no me acuerdo ni que hice ni cuando lo hice.
Pero ese error lo he visto hace poco, es lo unico que se con seguridad.

Busca en el makefile y pasale la opcion desde alli.tal y como dicen aqui http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3

Busca el gcc que trate este fichero y le plantas el -fPIC .

Cualquier duda pregunta

Muy Suyo

Her DoctorBOFH



Gravatar de atl1985

# 119269 atl

Perdón que halla estado desconectado, gracias por la respuesta, cuando tenga tiempo lo pruebo y os comento para si le pasa a alguien más, esque he estado liado con otra consulta que también tengo por el foro, que voy a aclarar como acabo de solucionarla :)

-Para ser feliz solo hay que querer serlo-



Gravatar de tobal

# 119296 Hola

Te digo lo que tienes que hacer, acabo de probarlo y sale.
En la carpeta donde compilas (que es en la que esta el fichero configure) te creas un fichero de texto con el nombre que quieras (sin extensión), por ejemplo le llamas compilar, copia dentro del fichero esto:

export CFLAGS="-fPIC"
export CXXFLAGS=$CFLAGS
export CPPCLAGS=$CFLAGS
./configure --prefix=/usr
make

Lo guardas, luego al fichero le das permisos de ejecución, lo puedes hacer desde la terminal con

chmod +x compilar

Ahora lo ejecutas con

./compilar

Si todo ha ido bien ya sólo queda hacer como root

make install

Para exportar opciones de configuración de compilación lo que hay que hacer es hacer todos los pasos de compilación desde un fichero, para evitar errores no muy entendibles.

Ya tantas y tantas compilaciones para paquetes Deb (Debian-Ubuntu) y RPM (Mandriva, Fedora, Suse) ha hecho que pensara en esta forma de hacerlo.

Espero haberte sido de ayuda.

Saludos



Gravatar de atl1985

# 119707 Hola

Por fin puedo probar esto!, pero no me ha funcionado, tengo que substituir todos los pasos o ahorrarme alguno? después de probar a hacer lo mismo pero con la solución que me has dado, cuando he conseguido que no me salga error del fpic me ha salido este:

/bin/sh /home/user/Descargas/php-stemmer-0.7.0/libtool --mode=link cc -DPHP_ATOM_INC -I/home/user/Descargas/php-stemmer-0.7.0/include -I/home/user/Descargas/php-stemmer-0.7.0/main -I/home/user/Descargas/php-stemmer-0.7.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -fPIC -o stemmer.la -export-dynamic -avoid-version -prefer-pic -module -rpath /home/user/Descargas/php-stemmer-0.7.0/modules stemmer.lo -Wl,-rpath,/home/user/Descargas/php-stemmer-0.7.0/libstemmer_c -L/home/user/Descargas/php-stemmer-0.7.0/libstemmer_c -lstemmer
libtool: link: cc -shared -fPIC -DPIC .libs/stemmer.o -L/home/user/Descargas/php-stemmer-0.7.0/libstemmer_c -lstemmer -Wl,-rpath -Wl,/home/user/Descargas/php-stemmer-0.7.0/libstemmer_c -Wl,-soname -Wl,stemmer.so -o .libs/stemmer.so
/usr/bin/ld: cannot find -lstemmer
collect2: ld returned 1 exit status
make: *** [stemmer.la] Error 1

-Para ser feliz solo hay que querer serlo-



Gravatar de tobal

# 119708 Tienes que instalar

Tienes que instalar stemmer-dev, y si ya lo tienes instalado, instalar una versión más reciente



Gravatar de atl1985

# 119778 Hecho

Hola,

Solucionado! me faltaba ese último paquete y con el script anterior solucioné lo de las flags! muchas gracias, ya se puede cerrar este hilo =D

Un saludo!

-Para ser feliz solo hay que querer serlo-

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.