Re: make error while installing on Solaris 10
Dmitry Kurochkin <dmitry.kurochkin-LbpN3Auhdh+Rtz+nHKFJDvXmoG9oyoYx@public.gmane.org> Tue, 14 Jun 2011 20:52:33 +0400
| Newsgroups | gmane.comp.web.web-polygraph.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Jawahar. On Tue, 14 Jun 2011 11:53:18 -0400, "Jawahar Balakrishnan (JB)" <[email protected]> wrote: > Dmitry > > I installed gcc 4.4.2 and am trying to install polygraph and i got the > following 2 errors > > 1) it complains about not finding zlin 1.2.0.4 or later but have 1.2.5 installed > Is it installed in non-standard path (i.e. not in /usr)? If this is the case, try configure --with-zlib=/path/to/zlib. This path should have zlib headers (in include/) and library (in lib/). > 2) so i tried with the -without-zlib option and then i get this error > > In file included from ZLib.cc:9:0: > ../../src/xstd/ZLib.h:14:29: warning: 'typedef' was ignored in this declaration > mv -f .deps/ZLib.Tpo .deps/ZLib.Po > g++ -DHAVE_CONFIG_H -I../.. -I../../src -I../.. -I../../src -g -O3 > -Wall -Wwrite-strings -Woverloaded-virtual -MT gadgets.o -MD -MP -MF > .deps/gadgets.Tpo -c -o gadgets.o gadgets.cc > gadgets.cc: In function 'double xceil(double, double)': > gadgets.cc:32:41: error: 'ceilf' was not declared in this scope > gadgets.cc:47:1: warning: control reaches end of non-void function > make[3]: *** [gadgets.o] Error 1 > make[3]: Leaving directory > `/export/home/jawahar/install/polygraph/polygraph-4.3.2/src/xstd' > make[2]: *** [all-recursive] Error 1 > make[2]: Leaving directory > `/export/home/jawahar/install/polygraph/polygraph-4.3.2/src' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory > `/export/home/jawahar/install/polygraph/polygraph-4.3.2' > make: *** [all] Error 2 > > Any thoughts? > Polygraph checks if ceilf(3) is available on the system. Apparently, Solaris has ceilf(3) implemented (that is why the configure check succeeds), but does not declare it in math.h. Attached patch is a workaround to avoid ceilf(3) usage. Regards, Dmitry > JB > > > > On Wed, Jun 8, 2011 at 2:21 PM, Jawahar Balakrishnan (JB) > <[email protected]> wrote: > > I am using version 4.4.2 from sunfreeware.com.. let me see if i can > > build the latest version... > > > > On Wed, Jun 8, 2011 at 1:58 PM, Dmitry Kurochkin > > <dmitry.kurochkin-LbpN3Auhdh+Rtz+nHKFJDvXmoG9oyoYx@public.gmane.org> wrote: > >> On Wed, 8 Jun 2011 13:39:08 -0400, "Jawahar Balakrishnan (JB)" <[email protected]> wrote: > >>> Dmitry > >>> > >>> Thanks for the suggestion. The build went further than before but I am > >>> getting a different error.. > >>> > >>> init2.c:37: assertion failed: ((64 - 0)+0) == (((64 - 0)+0)/8) * 8 && > >>> sizeof(mp_limb_t) == (((64 - 0)+0)/8) > >>> In file included from rndDistrs.cc:11: > >>> ../../src/xstd/rndDistrs.h: In member function âvirtual double > >>> UnifDistr::sdev() constâ: > >>> ../../src/xstd/rndDistrs.h:38: internal compiler error: Abort > >>> Please submit a full bug report, > >>> with preprocessed source if appropriate. > >>> See <http://gcc.gnu.org/bugs.html> for instructions. > >>> make[3]: *** [rndDistrs.o] Error 1 > >>> make[3]: Leaving directory > >>> `/export/data/home/jawahar/install/webpolygraph/polygraph-4.3.2/src/xstd' > >>> make[2]: *** [all-recursive] Error 1 > >>> make[2]: Leaving directory > >>> `/export/data/home/jawahar/install/webpolygraph/polygraph-4.3.2/src' > >>> make[1]: *** [all-recursive] Error 1 > >>> make[1]: Leaving directory > >>> `/export/data/home/jawahar/install/webpolygraph/polygraph-4.3.2' > >>> make: *** [all] Error 2 > >>> > >>> Any thoughts? > >> > >> This is a gcc bug. I do not think I saw this problem on any gcc version > >> I tried. Are you using an unstable gcc version? Updating gcc should > >> help. > >> > >> Regards, > >> Dmitry > >> > >>> Thanks > >>> JB > >>> > >>> > >>> > >>> On Wed, Jun 8, 2011 at 12:29 PM, Dmitry Kurochkin > >>> <dmitry.kurochkin-LbpN3Auhdh+Rtz+nHKFJDvXmoG9oyoYx@public.gmane.org> wrote: > >>> > Hi Jawahar. > >>> > > >>> > On Mon, 6 Jun 2011 12:03:55 -0400, "Jawahar Balakrishnan (JB)" <[email protected]> wrote: > >>> >> I tried version 4.3.2 and 4.0.11 but i get the same error when i > >>> >> execute make. Any ideas/thoughts will be appreciated. > >>> >> > >>> > > >>> > The errors are in code related to IPv6 network aliases creation. > >>> > Unfortunately, there is no portable API for this stuff and there is no > >>> > Solaris support in Polygraph (our primary platforms are Linux and > >>> > FreeBSD). As a quick hack, you may try commenting out the following > >>> > define in src/xstd/InetIfReq.h: > >>> > > >>> > // Assume we are on Linux if here > >>> > #define HAVE_TYPE_LINUX_IN6_IFREQ 1 > >>> > > >>> > This hack should work for you as long as you do not use IPv6 aliases. > >>> > Hopefully, the rest of the code would build fine. > >>> > > >>> > I opened bug #794650 [1] on Launchpad to track Solaris build issues. > >>> > > >>> > Regards, > >>> > Dmitry > >>> > > >>> > [1] https://bugs.launchpad.net/polygraph/+bug/794650 > >>> > > >>> >> InetIfReq.cc: In constructor âInet6IfAliasReq::Inet6IfAliasReq(const > >>> >> String&, const InAddress&, const InAddress&)â: > >>> >> InetIfReq.cc:38: error: âSIOCGIFINDEXâ was not declared in this scope > >>> >> InetIfReq.cc:40: error: âstruct ifreqâ has no member named âifr_ifindexâ > >>> >> make[3]: *** [InetIfReq.o] Error 1 > >>> >> > >>> >> Thanks > >>> >> JB > >>> >> _______________________________________________ > >>> >> Users mailing list > >>> >> Users-mN9fGWdlm5pku/f+YMZH/di2O/[email protected] > >>> >> http://www.web-polygraph.org/mailman/listinfo/users > >>> > > >> > > _______________________________________________ Users mailing list Users-mN9fGWdlm5pku/f+YMZH/di2O/[email protected] http://www.web-polygraph.org/mailman/listinfo/users
do-not-use-ceilf.patch
(text/x-diff, 894 B)
do-not-use-ceilf.patch - patch for Web Polygraph 4.3.2
The patch is a workaround for systems which implement ceilf(3), making
the configure test succeed, but do not declare it in math.h.
diff --git a/src/xstd/gadgets.cc b/src/xstd/gadgets.cc
index ac0d0bd..3ca95ef 100644
--- a/src/xstd/gadgets.cc
+++ b/src/xstd/gadgets.cc
@@ -28,9 +28,6 @@
// try "ceil(700/0.7)" to see why xceil is needed
// also useful as "xceil(m1*m2, 1)" because "ceil(10*~0.9)" == 10 on Linux
double xceil(double nom, double denom) {
-#if HAVE_CEILF
- return (double)ceilf((float)(nom/denom));
-#else
const double cex = ceil(nom/denom);
const double cm1 = cex-1;
const double cp1 = cex+1;
@@ -43,7 +40,6 @@ double xceil(double nom, double denom) {
return dm1 <= dp1 || !(nom <= cp1*denom) ? cm1 : cp1;
else
return dex <= dp1 || !(nom <= cp1*denom) ? cex : cp1;
-#endif
}
int XGCD(int a, int b) {