gcc - attribute in deklaration aber nicht indefinition



  • Sorry für den etwas wirren Titel...
    Also, ich habe folgendes Problem. Ich habe hier einen code-generator (nicht von mir), der ungefähr folgendes ergibt:

    //eigentlich C, aber egal
    //header.h
    void funktion () __attribute__((irgendwas));
    //hier ist das Problem, die Attribute Fehlen
    #define PUBLISH_FUNKTION(_func) void funktion()\
    {\
        //bereitet halt was vor, um die implementation (_func) aufzurufen
    }
    
    //impl.c
    void implementation()
    {
        //insert your code here
    };
    PUBLISH_FUNKTION(implementation)
    

    Die Sache ist nun die, dass die impl.c nur einmal generiert wird (an der kann ich also schrauben), die header aber bei jedem konfigurationsvorgang neu.
    Gibt es was, um das Problem zu beheben. Im Endeffekt regt er sich darüber auf, dass die Attribute in der Implementation Fehlen. Diese einfach dazu schreiben geht auch nicht, da der Generator je nach Plattform optimiert (und daher die Attribute anders / nicht vorhanden sein können). Am einfachsten lässt sich das Problem lösen, indem man das PUBLISH_* makro ändert, aber schlagt mir jetzt nicht sed vor, darauf komme ich auch selbst, ich hätte gern was anderes. Gibt es vielleicht ein flag für den gcc oder so?



  • Was solls, ich habe jetzt den generator gehackt.


Anmelden zum Antworten