Ticket #254 (closed task: fixed)

Opened 2 years ago

Last modified 13 months ago

Solaris & Pango caveats (and resolution!)

Reported by: human Owned by: oetiker
Priority: minor Milestone:
Component: misc Version: 1.4.2
Keywords: Solaris, pangocairo Cc:

Description (last modified by oetiker) (diff)

Hi,

rrdtool-1.4.2 on solaris10/x86 WITHOUT SunStudio? will fail for some reasons. First off the inevitable fail in math_c99.h w/ gcc-3.4.x, for a simple workaround, apply this diff:

--- /usr/include/iso/math_c99.h.dist    Mon Feb 22 10:52:05 2010
+++ /usr/include/iso/math_c99.h Mon Feb 22 11:01:57 2010
@@ -42,8 +42,20 @@
 #undef isfinite
 #define        isfinite(x)     __builtin_isfinite(x)
 #undef isinf
-#define        isinf(x)        __builtin_isinf(x)
+#if defined(__GNUC__)
+#define isinf(x) __extension__( \
+                        { __typeof(x) __x_i = (x); \
+                        __x_i == (__typeof(__x_i)) INFINITY || \
+                        __x_i == (__typeof(__x_i)) (-INFINITY); })
+#else
+#define isinf(x) __builtin_isinf(x)
+#endif 
 #undef isnan
+#if defined(__GNUC__)
+#define isnan(x) \
+      __extension__({ __typeof (x) __x_a = (x); \
+      __builtin_expect(__x_a != __x_a, 0); })
+#else
 #define        isnan(x)        __builtin_isnan(x)
 #undef isnormal
 #define        isnormal(x)     __builtin_isnormal(x)

Then there's a fallback issue in configure with regard to pangocairo and weirdness of pkg-config. The latter will return 1 on --exists if some dependency on pangocairo is not fulfilled (and there's a lot of them recursivly). Yet, configure has a fallback for a failing pkg-config and I'd say, this fallback is broken (generated configure, line 29910): LIBS="-lpango-1.0 $LIBS" But actually it'd need "-lpangocairo $LIBS". I dont know how autoconf creates this, thus no diff to configure.ac from me. This should be just a hint, the better way is to fix ones pkg-config setup anyway. It's just that the resulting error-message from configure is completly misleading about what happened (as so often ;) ).

So all this rambling could go to some Documentation-whatever.

Change History

comment:1 Changed 2 years ago by oetiker

hmmm modifying system files is not really an option ... have a look at configure.ac and look for solaris and also at m4/acinclude.m4 there is actually already a bunch of code dealing with this in there. Maybe you can add your two bits in the same spirit.

what error message do you get ?

as for pangocairo you are right, the conf file in solaris seems broken, I have added a note to the build instructions already. It is about OpenSolaris?, but it probably works for the normal solaris too.

cheers tobi

comment:2 Changed 2 years ago by human

this is killing me. the workarounds will silence 'configure', but there wont be anything useful after compiling. i've to recheck this with a clean start.

comment:3 Changed 2 years ago by oetiker

do that ... because I did test on solaris and the compilation did work with gcc ... but I have not setup the machine so I don't know what exactly is installed there ...

cheers tobi

comment:4 Changed 13 months ago by oetiker

  • Description modified (diff)

comment:5 Changed 13 months ago by oetiker

  • Status changed from new to closed
  • Resolution set to fixed

the dependency is changed to pangocairo in 1.4.5 ... please check again.

Note: See TracTickets for help on using tickets.

NOTE: The content of this website is accessible with any browser. The graphical design though relies completely on CSS2 styles. If you see this text, this means that your browser does not support CSS2. Consider upgrading to a standard conformant browser like Mozilla Firefox or Opera but also Apple's Safari or KDE's Konqueror for example. It may also be that you are looking at a mirror page which did not copy the CSS for this page. Or if some pictu res are missing, then the mirror may not have picked up the contents of the inc directory.