Re: [CLN-list] Trouble compiling under cygwin-64
Hi Pascal, On 02/06/2014 06:33 PM, Pascal Dupuis wrote:
I'm trying to revive the old "symbolic" package from Octave; which itself is built atop Ginac and CLN.
So the first task is to compile and install CLN, which fails. I identified two issues:
1) there seems to be a typo in config.h.in. The first line seems to re-use some symbol defined elsewhere. I modified it as
#ifndef _CONFIG_H #define _CONFIG_H
You mean, _CL_CONFIG_PUBLIC_H is defined elsewhere? I think you are experiencing interferences with another installation of CLN.
2) having done this, I re-launched autoreconf. During the configure stage, the symbol "GMP_DEMANDS_UINTD_LONG" is defined, although it seems the correct version in cygwin-64 is GMP_DEMANDS_UINTD_LONG_LONG.
Can you, please, have a look at the test program emitted by m4/gmp.m4 and see why it gets this wrong?
After this configure step, I modified the generated include/cln/config.h to ensure the later definition is effective.
Okay. I think it's best to fix top issues first.
After steps 1 and 2, the compilation runs over a few files, and then fails with libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../src -I../autoconf -I../../include -I../../src -I../include -I../src -g -O2 -MT base/digit/cl_2D_div.lo -MD -MP -MF base/digit/.deps/cl_2D_div.Tpo -c ../../src/base/digit/cl_2D_div.cc -DDLL_EXPORT -DPIC -o base/digit/.libs/cl_2D_div.o In file included from ../../src/base/digit/cl_2D.h:7:0, from ../../src/base/digit/cl_2D_div.cc:7: ../../src/base/digit/cl_D.h: In function 'sint32 cln::sign_of_sintD(sintD)': ../../src/base/digit/cl_D.h:35:21: error: call of overloaded 'sign_of(sintD&)' is ambiguous return sign_of(wert); ^ ../../src/base/digit/cl_D.h:35:21: note: candidates are: In file included from ../../src/base/digit/cl_D.h:7:0, from ../../src/base/digit/cl_2D.h:7, from ../../src/base/digit/cl_2D_div.cc:7: ../../src/base/cl_low.h:12:15: note: sint16 cln::sign_of(sint16) inline sint16 sign_of (sint16 wert) ^ ../../src/base/cl_low.h:27:15: note: sint32 cln::sign_of(sint32) inline sint32 sign_of (sint32 wert) ^ ../../src/base/cl_low.h:44:15: note: sint64 cln::sign_of(sint64) inline sint64 sign_of (sint64 wert) ^ Makefile:5572: recipe for target 'base/digit/cl_2D_div.lo' failed make[1]: *** [base/digit/cl_2D_div.lo] Error 1 make[1]: Leaving directory '/cygdrive/c/Users/PascalDupuis/Dropbox/Development/cln/compile/src' Makefile:666: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
Although with the updated version, sintD is defined as long long, the compiler seems unable to pick up the right implementation. Any idea how to solve this ?
I'm taking this to the mailing list cln-list@ginac.de. Please subscribe to it. I'm afraid, I cannot help you any better since I don't know anything about cygwin-64. But maybe someone on that list can offer some advice. Best wishes -rbk. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
participants (1)
-
Richard B. Kreckel