Bug 6016

Summary: cairo does not build under hp-ux ia64
Product: cairo Reporter: Arnaud Charlet <charlet>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: high    
Version: 1.0.2   
Hardware: PA-RISC (HP)   
OS: HP-UX   
Whiteboard:
i915 platform: i915 features:

Description Arnaud Charlet 2006-02-24 00:50:28 UTC
Haven't tried on pa hp-ux although I suspect a similar issue.

pixman.h does not compile on this platform, because uint32_t and co are not
found.

Here is a quick patch fixing this:

--- pixman/src/pixman.h.old     2006-02-22 16:35:38.000000000 +0100
+++ pixman/src/pixman.h 2006-02-22 17:02:14.000000000 +0100
@@ -98,6 +98,10 @@
 # include <stdint.h>
 #endif

+#ifdef __hpux__
+#include <sys/types.h>
+#endif
+
 #include "pixman-remap.h"

 #if defined(__cplusplus) || defined(c_plusplus)
Comment 1 Arnaud Charlet 2006-02-27 21:15:28 UTC
Unfortunately the patch does not work under pa hpux.

Here is an updated patch:

<<
--- pixman/src/pixman.h.orig    Mon Feb 27 11:08:33 2006
+++ pixman/src/pixman.h Mon Feb 27 11:08:11 2006
@@ -94,6 +94,8 @@ SOFTWARE.
   typedef unsigned __int32 uint32_t;
   typedef __int64 int64_t;
   typedef unsigned __int64 uint64_t;
+#elif defined (__hpux__)
+#include <sys/types.h>
 #else
 # include <stdint.h>
 #endif
>>

Thanks in advance for your feedback/consideration.

Arno
Comment 2 Arnaud Charlet 2006-03-09 22:32:27 UTC
I got a similar issue on Tru64 5.1b, where the proper definition is in inttypes.h
and stdint.h is not found.

Note that configure is doing the right thing, and defining all the necessary
HAVE_xxx_H in config.h, so a proper patch would be to take advantage of
the macros in config.h instead of using the current set of #ifdefs

Arno
Comment 3 Richard Lloyd 2006-09-07 09:23:05 UTC
I used this diff for src/pixman.h on HP-UX 11.11/11.23 (PA-RISC/Itanium) which
worked for me (this is against cairo-1.2.4 source code):

*** pixman/src/pixman.h.orig    Fri Aug 18 15:20:16 2006
--- pixman/src/pixman.h Thu Sep  7 17:07:12 2006
***************
*** 96,101 ****
--- 96,104 ----
  #else
  #error Cannot find definitions for fixed-width integral types (uint8_t,
uint32_t, etc.)
  #endif
+ #if HAVE_INTTYPES_H
+ #include <inttypes.h>
+ #endif
   
  #include "pixman-remap.h"
   
Comment 4 Chris Wilson 2008-10-10 04:40:40 UTC
We now have defensive checking and definitions for standard integral types.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.