Page 1 sur 1

Double compilation des objets

Publié : mer. janv. 04, 2012 11:24 am
par Dominique MICOLLET
Bonjour, bonne année et longue vie à Giac (enfin surtout à ses concepteurs)

Je suis en train de compiler giac 0.9.3 sur une Debian Squeeze 64 bits.

Je suis surpris par un point que j'avais déjà remarqué auparavant.
Dans l'extrait de compilation ci-dessous - pris au hasard -, le lecteur remarquera que input_lexer.o est compilé deux fois, avec les mêmes options, dans deux répertoires différents. Ne serait-il pas plus simple de recopier l'objet ?
Note : la compilation est configurée avec --without-pic, car j'avais cru dans un premier temps que c'était la génération de bibliothèque relocalisable qui induisait cette double compilation.

Code : Tout sélectionner

...
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -g -O2 -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -MT input_lexer.lo -MD -MP -MF .deps/input_lexer.Tpo -c input_lexer.cc -o .libs/input_lexer.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -g -O2 -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -MT input_lexer.lo -MD -MP -MF .deps/input_lexer.Tpo -c input_lexer.cc -o input_lexer.o >/dev/null 2>&1
...
Il y a sûrement une bonne raison que j'aimerais bien connaître.

Cordialement

Re: Double compilation des objets

Publié : mer. janv. 04, 2012 11:31 am
par Dominique MICOLLET
la compilation est configurée avec --without-pic,
Ce qui semble être une mauvaise idée : la compilation vient d'échouer avec comme message d'erreur :

Code : Tout sélectionner

/usr/bin/ld: .libs/input_lexer.o: relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC

Re: Double compilation des objets

Publié : mer. janv. 04, 2012 1:36 pm
par parisse
je ne sais pas pourquoi, mais ce sont les autotools qui font compiler 2 fois (je suppose une fois pour la lib statique et une fois pour la lib dynamique).

Re: Double compilation des objets

Publié : mer. janv. 04, 2012 2:55 pm
par Dominique MICOLLET
Il y a une autre bizarrerie : deux make successifs recompilent la totalité de la distribution.

Re: Double compilation des objets

Publié : mer. janv. 04, 2012 8:30 pm
par parisse
bizarre, ca ne le fait pas chez moi. Par contre, si on modifie un fichier .h il a tendance a recompiler peut-etre un peu plus que le strict nécessaire...

Re: Double compilation des objets

Publié : jeu. janv. 05, 2012 7:32 am
par Dominique MICOLLET
Bonjour,

Il s'agit peut-être d'une fausse manipulation de ma part.

Je ne parviens pas à compiler la version 0.9.3 sur une Debian Squezze 64 bits.
Il y a plusieurs points de blocage que je ne parviens pas à contourner.
Il faudra que je reprenne cela proprement et que je fasse un compte-rendu.

Merci.

Re: Double compilation des objets

Publié : jeu. janv. 05, 2012 8:00 am
par parisse
Si vous n'arrivez pas avec la 0.9.3, vous feriez probablement mieux de compiler la version 0.9.5.