Cast de gcc Linux par rapport à Forte sous Solaris

Cast de gcc Linux par rapport à Forte sous Solaris - Programmation

Marsh Posté le 12-07-2002 à 19:48:15    

J'ai le code suivant :
 
   ires1 = (int) (log(64.0)/log(2.0)) ;
 
Sous solaris, avec compilateur forte le résultat est 6.
Sous Linux, avec compilateur GCC, le résultat est 5 :/
 
The problem is : comment résoudre le problème sans caster explicitement en (int) ((float)log(64.0)/log(2.0)) (je ne voudrais pas changer le code de l'application).
(option de compilation ou autre ?)
 
Merci d'avance


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 12-07-2002 à 19:48:15   

Reply

Marsh Posté le 12-07-2002 à 22:33:08    

il est possible que le problème vienne de la stratégie de compilation des différents compilo : dynamiquement, on fait quoi quand on a 5.555555555555555556, le 6 final étant déjà un choix d'arrondi avant...
peut-être peux-tu configurer ton gcc (forte, sais pas... :sweat: ).
va voir sur le site de GNU, t'auras peut-être plus d'info...

Reply

Marsh Posté le 12-07-2002 à 22:34:35    

j'ai laissé un mail sur la mailing de gcc, mais j'ai toujours pas eu de réponse.
Sur le site de GCC GNU y a pas grand chose qui m'aide hélas :/


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 12-07-2002 à 22:44:40    

il semble que sur le site d'apache (???) il y aurait des infos sur les différents compilos C pour linux. as-tu essayer ta compilation avec un vieux cc tout bête ? (je crois que c'est le plus proche de solaris.?)

Reply

Marsh Posté le 12-07-2002 à 22:48:39    

cc ca fait pareil.
Et fortan j'ai un problème de lib :/


Message édité par joce le 12-07-2002 à 22:48:50

---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 12-07-2002 à 22:52:01    

alors, j'ai fait un petit tour dans le man de gcc, c'est imbuvable !!!!!
par contre, ai vu ça dans google. j'sis pas aller voir, mais ça ressemble à kék'chose qui pourrait t'intéresser, non ?:
 
Distributing Xerces-C++ - [ Traduire cette page ]
... of Xerces-C) and X License (because of ICU). XML4C binaries are published for Solaris
2.6 using Forte C++ 6.2 compiler, HPUX 11.0 using aCC, Redhat Linux 7.2 ...  
xml.apache.org/xerces-c/faq-distrib.html - 45k

Reply

Marsh Posté le 12-07-2002 à 22:54:39    

Reply

Marsh Posté le 12-07-2002 à 23:00:30    

désolé, j'avais pas regardé ! (j'suis en train de me prendre la tête sur une connerie en js, et ça m'énerve un peu...) [ ouh ! de moi-même...].
alors là, mis à part se manger le man en entier + le bouquin O'Reilly sur gcc, j'vois pas.
à moins que tu contactes les types qui ont repris gcc en main...
sinon, regarde si y a pas moyen en utilisant des unsigned de passer à côté (??? : ça avait marché une fois pour moi...)

Reply

Marsh Posté le 12-07-2002 à 23:03:23    

C'est pas une option de compil qui va rattrapper une erreur de programmation !

Reply

Marsh Posté le 12-07-2002 à 23:05:31    

Verdoux a écrit a écrit :

C'est pas une option de compil qui va rattrapper une erreur de programmation !



une erreur de prog ?
qu'elle est le type de renvoyé par un log / log si aucun cast n'est fait ?


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 12-07-2002 à 23:05:31   

Reply

Marsh Posté le 12-07-2002 à 23:12:12    

C'est juste que c'est du code pas du tout portable.  
D'une plateforme à l'autre, le résultat sera différent.

Reply

Marsh Posté le 12-07-2002 à 23:14:19    

ok :/
m'enfin bon on sait jamais avec les options de précision des compilos où tu peux les forcer à fonctionner en mode fp IEEE etc


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 12-07-2002 à 23:16:43    

joce a écrit a écrit :

ok :/
m'enfin bon on sait jamais avec les options de précision des compilos où tu peux les forcer à fonctionner en mode fp IEEE etc




Ca changera rien.
Le mode IEEE garantit une borne sur l'erreur, pas que les calculs sont exactement identiques.

Reply

Marsh Posté le 12-07-2002 à 23:18:23    

ok, donc y falloir que les ch'tis gars recodent leur applis s'il veulent être portable sous nunux


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 13-07-2002 à 00:36:19    

joce a écrit a écrit :

ok, donc y falloir que les ch'tis gars recodent leur applis s'il veulent être portable sous nunux




suffit de faire un define en fonction de l'os  
et en fonction de celui ci ajouter ou retirrer  
0.000000000000001 affin kil arondisse come tu le veux au resultat  
c'est porc mais bon le resultat est la ;)
mais bon doit i avoir des option a foutre au compilo pour ce genre de trucs a mon avis mais bon

Reply

Marsh Posté le 13-07-2002 à 00:40:01    

ba c'est ses options que je cherche en vain :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 13-07-2002 à 00:41:46    

joce a écrit a écrit :

ba c'est ses options que je cherche en vain :D




oui mais si c'est comme le coup de la libm :D :D
RTFM je crois :D

Reply

Marsh Posté le 13-07-2002 à 11:41:19    

joce a écrit a écrit :

J'ai le code suivant :
 
   ires1 = (int) (log(64.0)/log(2.0)) ;
 
Sous solaris, avec compilateur forte le résultat est 6.
Sous Linux, avec compilateur GCC, le résultat est 5 :/


Juste un truc pour vérifier : ça donne quoi avec GCC sous Solaris ?


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 13-07-2002 à 15:29:07    

Jar Jar a écrit a écrit :

Juste un truc pour vérifier : ça donne quoi avec GCC sous Solaris ?




Ca je sais pas, au boulot il n'y a que forte d'installé je pense


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed