Known bugs and limitations

  1. emxomf emits many warnings when compiling C++ code with the -g (debug) switch. Initially it used to trap (before pgcc 1.0.2 AFAIR), but I added a command-line preprocessing stage to GCC that replaces "-g#" with "-gstabs#" (by default "-g" means "-gstabs+", stabs+ is a new debugging format that emxomf doesn't fully understand).

    There is no solution for this but it doesn't do any harm anyway. Just ignore these warnings; I've debugged very big projects that compiled in "-Zomf -g" mode with lots of warnings; the basic debugging information is correct.

  2. f77 compiler does not incorporate the changes made for the `main' ported version for OS/2. I do not know whenever there are other changes other than those needed `just to make it work'.
  3. pgcc/c++ complains on superfluous "__asm__ __volatile__ (...)" operators. For example (taken from /emx/include/386/builtin.h):
    static __inline__ void __enable (void)
    {
      __asm__ __volatile__ ("sti");
    }
    
    Solution: remove __volatile__'s from enable() and disable() functions in include/386/builtin.h; they're not needed since no registers are changed inside __asm__ so there is no need to declare it __volatile__: a better solution for EM imho would be to declare in __asm__ instead of volatile the list of registers that gets changed).

Back to PGCC/2 page