J'ai deja poste ce mel (en anglais) dans comp.sys.hp, comp.sys.hp.hpux,
comp.lang.c++ et comp.lang.c mais je n'ai pas eu de reponse. Comme le
probleme est susceptible d'etre present sur d'autres OS que HP-UX 10.20,
je le "crosspost" ici, dans l'espoir d'obtenir un conseil.
*************************
Dans les includes systeme d'HP-UX 10.20,
/usr/include/values.h definit la macro MAXINT comme (~HIBITI)
/usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
La valeur est la meme au final mais comme mon programme inclue a la fois
values.h et param.h (via des librairies tiers dont je ne maitrise pas
les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of
macro 'MAXINT' differs from previous definition
at ["/usr/include/sys/param.h", line 45].
#define MAXINT (~HIBITI)
^^^^^^
Warning: 1 future errors were detected and ignored. Add a '+p'
option to detect and fix them before they become fatal errors in a
future release. Behavior of this ill-formed program is not guaranteed to
match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer
le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres
erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
J'ai remarque que le pb etait partiellement corrige sur HP-UX 11i
puisque values.h definit MAXINT que s'il ne l'ai pas deja:
#ifndef MAXINT
#define MAXINT ((int)(~(unsigned int)HIBITI))
#endif /** MAXINT **/
Je dis partiellement car ce n'est toujours pas la meme definition, meme
si la valeur est la meme au final.
Auriez-vous une piste pour erradiquer ce pb ?
Merci
Marc Ferry
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc Boyer
In article <bme4g5$, Marc Ferry wrote:
************************* Dans les includes systeme d'HP-UX 10.20, /usr/include/values.h definit la macro MAXINT comme (~HIBITI) /usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois values.h et param.h (via des librairies tiers dont je ne maitrise pas les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of macro 'MAXINT' differs from previous definition at ["/usr/include/sys/param.h", line 45]. #define MAXINT (~HIBITI) ^^^^^^ Warning: 1 future errors were detected and ignored. Add a '+p' option to detect and fix them before they become fatal errors in a future release. Behavior of this ill-formed program is not guaranteed to match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h> #ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir qu'on est pas sur HP10 */ #undef MAXINT #endif #include <values.h>
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
In article <bme4g5$jmr1@news.rd.francetelecom.fr>, Marc Ferry wrote:
*************************
Dans les includes systeme d'HP-UX 10.20,
/usr/include/values.h definit la macro MAXINT comme (~HIBITI)
/usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois
values.h et param.h (via des librairies tiers dont je ne maitrise pas
les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of
macro 'MAXINT' differs from previous definition
at ["/usr/include/sys/param.h", line 45].
#define MAXINT (~HIBITI)
^^^^^^
Warning: 1 future errors were detected and ignored. Add a '+p'
option to detect and fix them before they become fatal errors in a
future release. Behavior of this ill-formed program is not guaranteed to
match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer
le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres
erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h>
#ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir
qu'on est pas sur HP10 */
#undef MAXINT
#endif
#include <values.h>
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
************************* Dans les includes systeme d'HP-UX 10.20, /usr/include/values.h definit la macro MAXINT comme (~HIBITI) /usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois values.h et param.h (via des librairies tiers dont je ne maitrise pas les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of macro 'MAXINT' differs from previous definition at ["/usr/include/sys/param.h", line 45]. #define MAXINT (~HIBITI) ^^^^^^ Warning: 1 future errors were detected and ignored. Add a '+p' option to detect and fix them before they become fatal errors in a future release. Behavior of this ill-formed program is not guaranteed to match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h> #ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir qu'on est pas sur HP10 */ #undef MAXINT #endif #include <values.h>
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Marc Ferry
Marc Boyer wrote:
In article <bme4g5$, Marc Ferry wrote:
************************* Dans les includes systeme d'HP-UX 10.20, /usr/include/values.h definit la macro MAXINT comme (~HIBITI) /usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois values.h et param.h (via des librairies tiers dont je ne maitrise pas les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of macro 'MAXINT' differs from previous definition at ["/usr/include/sys/param.h", line 45]. #define MAXINT (~HIBITI) ^^^^^^ Warning: 1 future errors were detected and ignored. Add a '+p' option to detect and fix them before they become fatal errors in a future release. Behavior of this ill-formed program is not guaranteed to match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h> #ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir qu'on est pas sur HP10 */ #undef MAXINT #endif #include <values.h>
Marc Boyer
Rappel: Je ne peux pas modifier les emplacements où sont faits les includes de values.h et param.h puisqu'ils se trouvent qqpart dans les librairies tiers, dont je n'ai pas les sources. De plus, cela m'étonnerait fort que les includes se trouvent à la suite. Sans doute plutôt dans 2 librairies tiers distinctes.
Merci tout de même.
Marc Boyer wrote:
In article <bme4g5$jmr1@news.rd.francetelecom.fr>, Marc Ferry wrote:
*************************
Dans les includes systeme d'HP-UX 10.20,
/usr/include/values.h definit la macro MAXINT comme (~HIBITI)
/usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois
values.h et param.h (via des librairies tiers dont je ne maitrise pas
les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of
macro 'MAXINT' differs from previous definition
at ["/usr/include/sys/param.h", line 45].
#define MAXINT (~HIBITI)
^^^^^^
Warning: 1 future errors were detected and ignored. Add a '+p'
option to detect and fix them before they become fatal errors in a
future release. Behavior of this ill-formed program is not guaranteed to
match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer
le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres
erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h>
#ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir
qu'on est pas sur HP10 */
#undef MAXINT
#endif
#include <values.h>
Marc Boyer
Rappel:
Je ne peux pas modifier les emplacements où sont faits les includes de
values.h et param.h puisqu'ils se trouvent qqpart dans les librairies
tiers, dont je n'ai pas les sources.
De plus, cela m'étonnerait fort que les includes se trouvent à la suite.
Sans doute plutôt dans 2 librairies tiers distinctes.
************************* Dans les includes systeme d'HP-UX 10.20, /usr/include/values.h definit la macro MAXINT comme (~HIBITI) /usr/include/sys/param.h definit la macro MAXINT comme 0x7fffffff
Pourquoi ?
Par erreur je suppose.
La valeur est la meme au final mais comme mon programme inclue a la fois values.h et param.h (via des librairies tiers dont je ne maitrise pas les sources), j'obtiens l'erreur (future) suivante avec aCC:
Error (future) 129: "/usr/include/values.h", line 27 # Redefinition of macro 'MAXINT' differs from previous definition at ["/usr/include/sys/param.h", line 45]. #define MAXINT (~HIBITI) ^^^^^^ Warning: 1 future errors were detected and ignored. Add a '+p' option to detect and fix them before they become fatal errors in a future release. Behavior of this ill-formed program is not guaranteed to match that of a well-formed program
Je ne peux pas modifier les librairies tiers. Je ne veux pas supprimer le warning 129 (option +W129 d'aCC) pour éviter de perdre les autres erreurs du meme style.
Y-a-t-il uns astuce simple pour éviter cette erreur ?
#include <sys/param.h> #ifdef MAXINT /* ou #ifndef HP11, ou tout ce aui permet de savoir qu'on est pas sur HP10 */ #undef MAXINT #endif #include <values.h>
Marc Boyer
Rappel: Je ne peux pas modifier les emplacements où sont faits les includes de values.h et param.h puisqu'ils se trouvent qqpart dans les librairies tiers, dont je n'ai pas les sources. De plus, cela m'étonnerait fort que les includes se trouvent à la suite. Sans doute plutôt dans 2 librairies tiers distinctes.
Merci tout de même.
Marc Boyer
Marc Ferry wrote:
Marc Boyer wrote:
In article <bme4g5$, Marc Ferry wrote:
Par erreur je suppose.
#include <values.h>
Marc Boyer
Rappel: Je ne peux pas modifier les emplacements où sont faits les includes de values.h et param.h puisqu'ils se trouvent qqpart dans les librairies tiers, dont je n'ai pas les sources.
Si tu as reussit a generer ce message d'erreur, c'est aue tu as les sources, non ? Si tu n'avais que des binaires, t'aurais pas des problemes avec les macros.
De plus, cela m'étonnerait fort que les includes se trouvent à la suite. Sans doute plutôt dans 2 librairies tiers distinctes.
Plusieurs autres pistes alors: - tracer (c'est long) tous les trucs aui compilent pas, et ajouter les #undef au cas par cas - patcher les headers de ton OS - peut-etre peux-tu installer tes propres versions corrigees des en-tete et jouer avec l'option -I de ton compilateur pour qu'il utilise tes versions et pas celles du systeme (mais je sais pas si ca va etre facile)
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Marc Ferry wrote:
Marc Boyer wrote:
In article <bme4g5$jmr1@news.rd.francetelecom.fr>, Marc Ferry wrote:
Par erreur je suppose.
#include <values.h>
Marc Boyer
Rappel:
Je ne peux pas modifier les emplacements où sont faits les includes de
values.h et param.h puisqu'ils se trouvent qqpart dans les librairies
tiers, dont je n'ai pas les sources.
Si tu as reussit a generer ce message d'erreur, c'est aue tu as les
sources, non ? Si tu n'avais que des binaires, t'aurais pas des problemes
avec les macros.
De plus, cela m'étonnerait fort que les includes se trouvent à la suite.
Sans doute plutôt dans 2 librairies tiers distinctes.
Plusieurs autres pistes alors:
- tracer (c'est long) tous les trucs aui compilent pas, et ajouter
les #undef au cas par cas
- patcher les headers de ton OS
- peut-etre peux-tu installer tes propres versions corrigees des en-tete
et jouer avec l'option -I de ton compilateur pour qu'il utilise tes
versions et pas celles du systeme (mais je sais pas si ca va etre facile)
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
Rappel: Je ne peux pas modifier les emplacements où sont faits les includes de values.h et param.h puisqu'ils se trouvent qqpart dans les librairies tiers, dont je n'ai pas les sources.
Si tu as reussit a generer ce message d'erreur, c'est aue tu as les sources, non ? Si tu n'avais que des binaires, t'aurais pas des problemes avec les macros.
De plus, cela m'étonnerait fort que les includes se trouvent à la suite. Sans doute plutôt dans 2 librairies tiers distinctes.
Plusieurs autres pistes alors: - tracer (c'est long) tous les trucs aui compilent pas, et ajouter les #undef au cas par cas - patcher les headers de ton OS - peut-etre peux-tu installer tes propres versions corrigees des en-tete et jouer avec l'option -I de ton compilateur pour qu'il utilise tes versions et pas celles du systeme (mais je sais pas si ca va etre facile)
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(