Menu

app_profile.*

Developers
2017-02-06
2017-02-07
  • Thorsten Wagner

    Thorsten Wagner - 2017-02-06

    I had some issues to get the compiling/packaging done on 32bit systems. The compiling stops while working on app_profile. It turned out that ProfileElement::SetMode and ProfileElement::SetOptions had the problem. Both used gint64 as argument. After changing back to long as argument, the compling was fine.

    The private variables are still gint64. So I added a simple cast in both functions to make a gint64 from the long. I don't get the problem: Is gint64 not implemented with a gcc 32 bit?

    Vice versa, I did not find any reference to both functions calls. Where are they used? What is their purpose? The already exist in gxsm2 ....

    Thorsten :-)

     
  • Percy Zahl

    Percy Zahl - 2017-02-06

    That is not correct. (I mean the error. It is a "long equivalent in a 32bit machine".) Those gint64 and a like g-types are particulary there to work automatically correct on 32 and 64 bit machines, may be even on 16bit.... Must be compliler bug or some thing odd.

    What exactly was the error message?

    I am about to make expicit use of those when I need more than 32bit or plan on doing so in future.

     

    Last edit: Percy Zahl 2017-02-06
  • Thorsten Wagner

    Thorsten Wagner - 2017-02-07

    Hi Percy.

    Here is the link to the failed build log: https://launchpadlibrarian.net/305399771/buildlog_ubuntu-xenial-i386.gxsm3_3.42.3-0ubuntu4_BUILDING.txt.gz

    It looks like that the compiler cannot find a function ProfileElement::SetOptions(long) or ProfileElement::SetMode(long). Which is indeed true because you did define in GXSM3 ProfileElement::SetOptions(gint64) and ProfileElement::SetMode(gint64). Guess at some point the 32bit compiler replaces gint64 by long.

    By the way, the GXSM2 version of the files app_profile.C/h just used the long version!

    I also tried to figure out, where you use these functions, but I did not find any reference in the entire source code.

    Guess because it might be a compiler bug, overloading is not an option that works.

    Thorsten :-)

    P.S.: Indeed, started a GXSM3 documentation. As discussed it is "from scratch" just containing right now some updated installation guide. I will need to make new screenshots for the plugins ....

     
  • Percy Zahl

    Percy Zahl - 2017-02-07

    OK I see, makes sense. I recnetly switched that over (not yet needed to be 64bit) and possibel have missed some related assignments/function where the argument propagates.... need to make it all consistens obviously. So it's all "good" but to be fixed along the way. I need a 32 bit system/compiler to find the points in code to be adjusted to gint64 consistently -- as I have missed some obviously and as int == gint64 on my systems I'll not get the error at all -- should be a cc warning option for that!! (may be there is??).

    May be it's already good if I fix this ti gint64:

    void ProfileElement::SetMode(long Mode){...}

     

    Last edit: Percy Zahl 2017-02-07

Log in to post a comment.