I'm trying to build Firefox 126.96.36.199 on HP-UX/PA (11.00, 11.11, 11.23)
with the HP C++ compiler, A.03.67. The build fails with:
Error 744: "nsSVGCairoCanvas.cpp", line 658 # The operand of a
must be a pointer to or lvalue of a complete class; the actual type was
gmake: *** [nsSVGCairoCanvas.o] Error 2
gmake: Leaving directory `/opt/build/mozilla/layout/svg/renderer/src/cairo'
The problem is that struct _cairo is never defined. It's an internal
struct that is not exposed in any of the _cairo public header files:
* A #cairo_t contains the current state of the rendering device,
* including coordinates of yet to be drawn shapes.
typedef struct _cairo cairo_t;
The offending line from nsSVGCairoCanvas.cpp:
cairo_t* oldCR = mCR;
This seems to be a compiler limitation as the compiler on HP-UX/IA and
other C++ compilers (Solaris, AIX, IRIX, Tru64 UNIX) don't have the
problem. Is there a way to work around it?