Double compilation des objets

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

Dominique MICOLLET
Messages : 52
Inscription : jeu. janv. 11, 2007 10:39 am
Localisation : Université de Bourgogne - France

Double compilation des objets

Message par Dominique MICOLLET » mer. janv. 04, 2012 11:24 am

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
Cordialement

Dominique MICOLLET

Dominique MICOLLET
Messages : 52
Inscription : jeu. janv. 11, 2007 10:39 am
Localisation : Université de Bourgogne - France

Re: Double compilation des objets

Message par Dominique MICOLLET » mer. janv. 04, 2012 11:31 am

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
Cordialement

Dominique MICOLLET

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Double compilation des objets

Message par parisse » mer. janv. 04, 2012 1:36 pm

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).

Dominique MICOLLET
Messages : 52
Inscription : jeu. janv. 11, 2007 10:39 am
Localisation : Université de Bourgogne - France

Re: Double compilation des objets

Message par Dominique MICOLLET » mer. janv. 04, 2012 2:55 pm

Il y a une autre bizarrerie : deux make successifs recompilent la totalité de la distribution.
Cordialement

Dominique MICOLLET

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Double compilation des objets

Message par parisse » mer. janv. 04, 2012 8:30 pm

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...

Dominique MICOLLET
Messages : 52
Inscription : jeu. janv. 11, 2007 10:39 am
Localisation : Université de Bourgogne - France

Re: Double compilation des objets

Message par Dominique MICOLLET » jeu. janv. 05, 2012 7:32 am

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.
Cordialement

Dominique MICOLLET

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Double compilation des objets

Message par parisse » jeu. janv. 05, 2012 8:00 am

Si vous n'arrivez pas avec la 0.9.3, vous feriez probablement mieux de compiler la version 0.9.5.

Répondre