pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/41170: pkgsrc/x11/xplanet build fails on solaris (patch included)



>Number:         41170
>Category:       pkg
>Synopsis:       pkgsrc/x11/xplanet build fails on solaris (patch included)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 08 02:05:00 +0000 2009
>Originator:     Tim
>Release:        pkgsrc current
>Organization:
Fermilab
>Environment:
SunOS hostname 5.10 Generic_137111-05 sun4u sparc SUNW,Sun-Fire-V440 Solaris
>Description:
Solaris build fails to find signbit.
References:
http://xplanet.sourceforge.net/FUDforum2/index.php?t=msg&goto=1029
http://ftp.netbsd.org/pub/pkgsrc/reports/SunOS/i386/5.11_head-20080610/x11/xplanet/.broken.html

Tested patch included in fix section.

>How-To-Repeat:
cd pkgsrc/x11/xplanet
bmake


>Fix:
Patch tested on Solaris 10 Sparc, Solaris 10 x86 & NetBSD 4.0.1. i386.

RCS file: /cvsroot/pkgsrc/x11/xplanet/distinfo,v
retrieving revision 1.12
diff -c -r1.12 distinfo
*** distinfo    30 Jun 2005 15:06:24 -0000      1.12
--- distinfo    8 Apr 2009 01:18:20 -0000
***************
*** 3,5 ****
--- 3,6 ----
  SHA1 (xplanet-1.2.0.tar.gz) = e002711f90f502565613ab17a273175cc035b52c
  RMD160 (xplanet-1.2.0.tar.gz) = 68079629e82194f483caa0c06d73672544efbcbb
  Size (xplanet-1.2.0.tar.gz) = 1196496 bytes
+ SHA1 (patch-aa) = 2f83064bab16ae61918ba6046cb243be95f391c3


patches/patch-aa:
$NetBSD$

--- src/libprojection/ProjectionIcosagnomonic.cpp.orig  2005-06-14 
13:10:36.000000000 -0500
+++ src/libprojection/ProjectionIcosagnomonic.cpp
@@ -92,6 +92,18 @@ ProjectionIcosagnomonic::PointXYZ::dotP(
     return a.x*b.x + a.y*b.y + a.z*b.z;
 }
 
+#ifndef signbit
+#define signbit(x) \
+  (sizeof(x) == sizeof(float) \
+     ? ({ union { float f; unsigned int i[1]; } __s; \
+        __s.f = (x); __s.i[0] >> 31; }) \
+     : sizeof(x) == sizeof(long double) \
+       ? ({ union { long double f; unsigned int i[4]; } __s; \
+          __s.f = (x); __s.i[0] >> 31; }) \
+       : ({ union { double f; unsigned int i[2]; } __s; \
+          __s.f = (x); __s.i[0] >> 31; }))
+#endif /* signbit */
+
 bool
 ProjectionIcosagnomonic::PointLL::sameSide(const PointLL& p1,
                                            const PointLL& p2,



Home | Main Index | Thread Index | Old Index