IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

PROCFLAGS=CODE=ANSI_C


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Par défaut PROCFLAGS=CODE=ANSI_C
    Bonjour,
    Base Oracle 8.1.7
    Malgre l'ajout dans mon Makefile de l'option PROCFLAGS=CODE=ANSI_C.
    Je me prends plein de warnings du a du code genere par Pro*C .
    Ex (mais y'en a plein d'autres):
    static struct sqltdss sqltds =
    {
    1,
    0,
    };
    Cette superbe initialisation avec une jolie virgule avant la parenthese qui ferme.
    Pas vraiment ANSI C ce code .
    A priori ce code est genere systematiquement quelque soit le fichier source precompile ...
    Avez vous deja remarque ces warnings et trouve un moyen de faire generer du vrai code ansi c au precompilateur Pro*C?
    Et sinon si cela ne se produit pas sur votre version de precompilateur, merci de m'indiquer quelle est votre version ?

    Merci,
    jrman

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Par défaut
    Salut,

    Pouvez-vous spécifier quels types de warnings sont générés.
    Quel est réellement le problème en fait, supprimer les warnings ou avoir du vrai code C ANSI ?
    Sur mes appli, le code C généré a les mêmes 'erreurs' que vous (la virgule en trop dans les structures), mais cela ne gêne pas plus que cela mon compilo. Aucun warning de générés.
    Peut être une option du compilo C pour le rendre moins permisifs ?
    Pour info, je compile avec Visual Age (le compilo d'IBM pour AIX), mais avec gcc j'ai essayé une fois, et aucun problème non plus. Mon pro*C est une version 8.1.7.

    Phig

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Par défaut
    Bonjour,

    Effectivement ces warnings sont non bloquants. Le link fonctionne ! Le process je ne sais pas encore.

    Voici la ligne de pre compilation proc:
    proc CODE=ANSI_C SQLCHECK=SEMANTICS USERID=user/pass iname=toto oname=toto.c
    et la ligne de compilation:
    gcc -ansi -DOS_SYSV=4 -DOS_SOLARIS -DOS_SOLARIS_2 -fPIC -g -O1 -W -Wall -Wpointer-arith -Wshadow -Wcast-qual -Wcast-align -Winline -Wmissing-prototypes -Wstrict-prototypes -Wimplicit -c toto.c

    Et les warnings generes:
    toto.c:43: warning: missing initializer
    toto.c:43: warning: (near initialization for `sqladt.adttvn')
    toto.c:57: warning: missing initializer
    toto.c:57: warning: (near initialization for `sqltds.tdsval')
    toto.c:106: warning: missing initializer
    toto.c:106: warning: (near initialization for `sqlstm.iters')
    toto.c: In function `funct1':
    toto.c:250: warning: declaration of `sqlstm' shadows a global declaration
    toto.c:106: warning: shadowed declaration is here
    toto.c: At top level:
    toto.c:106: warning: `sqlstm' defined but not used

    Aucune suppression de flags de compilation gcc ne m'est permise et le probleme est que j'ai des centaines de fichier a compiler, et donc le code genere non ansi va engendrer des milliers de warning.

    Meme si ils ne semblent pas bloquants a priori ils devront disparaitre dans nos phases de compilation d'une facon ou d'une autre.

    Hormis une autre version de pre compilateur qui genererait du vrai code ansi je ne vois pas comment faire? Probleme une telle version existe t elle ? Car le flag destine au pre compilateur est quasiment inefficace (seulement 3 warning de moins).

    Merci,
    jrman

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Par défaut
    je n'ai qu'un proC en version 8.1.7 donc je peux pas dire si une version supérieure corrigerait les problèmes. La seule solution, mais elle t'est interdite, serait de supprimer les flag W... pour ne pas générer les warnings correspondant
    J'ai cherché sur pas mal de forum et j'ai rien trouvé concernant ton problème ...
    Il faudrait éventuellement ouvrir un TAR sur metalink, ils pourront mieux te renseigner

    Phig

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Par défaut
    Oui je crois bien que je vais devoir faire ca.
    C'est tout de meme hallucinant de constater des problemes de generation de code aussi basiques, typiquement le coup de la virgule, c'est celle de fin de boucle qui n'a pas ete geree, franchement je trouve ca annormal.

    Ce qui me rassure c'est que a priori un patch pour toutes les causes de warning peut etre envisage sur le Pre compilateur. Je verrais ce qu'Oracle propose on sait jamais, je crois que cela se fait.

    Rien de bloquant mais quand meme ...
    Sinon je me dis qu'un parse and replace pour corriger ces warnings peut etre envisage, a voir en dernier recours ...

    Merci,
    jrman

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Par défaut
    sans vouloir abuser de ton temps, peux-tu me dire pour quelles raisons utilisez-vous les flags W... pour le compilateur C.
    C'est vrai que je ne me suis jamais penché sur l'optimisation de mes paramètres de compilation, alors pour une fois qu'un post aborde plus ou moins ce sujet, je me renseigne , je pourrai peut être tirer quelques infos intéressantes

    Phig

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Par défaut
    Cette liste de warning a ete decidee d'un commun accord entre plusieurs groupes de travail.
    L'objectif etait simple, l'amelioration de la qualite du code.
    Le flag ansi laisse passer beaucoup de chose. Avec cette liste beaucoup de probleme sont remontes dans tout le code et a permis l'elimination de certaines facilites d'ecriture confortable permises par C, mais neanmoins dangereuse sur des systemes fortement sollicites.
    Tous ces flags sont dans la doc de gcc et c'est a partir de cette doc qu'elle avait ete constituee.
    Ca remonte a plusieurs annees, ainsi aujourd'hui nous avons un nouveau type de compilation avec Oracle et cela ne sera pas une raison suffisante pour revoir cette liste.
    Voila j'espere avoir repondu.
    a+
    jrman

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 35
    Par défaut
    merci beaucoup pour l'info.
    il faudrait que je me penche aussi sur mes options de compilation, car au niveau facilité d'écriture, j'abuse peut être un peu
    en tout cas, tout à fait d'accord, il ne faudrait surtout pas revenir en arrière à cause du ProC

    Bonne continuation

    Phig

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo