undefined reference to signgam and plotutils-2.4.1
Tue Jan 23 13:01:00 GMT 2001
"Dr. Volker Zell" wrote:
> >>On Sun, 21 Jan 2001, Jerome BENOIT wrote:
> >>> dllwrap --dllname Math.dll --driver-name gcc --dlltool dlltool
> >>> --export-all-symb
> >>> ols --as as --output-def libMath.def --output-lib libMath.a \
> >>> -s -L/usr/local/lib Math.o blas.o eigens.o ndtri.o quiet_nan.o cpoly.o
> >>> simq.o s
> >>> vd.o const.o mtherr.o polevl.o
> >>> /usr/lib/perl5/5.6.1/cygwin/CORE/libperl5_6_1.a -
> >>> L/usr/lib -lm
> >>> dllwrap: no export definition file provided
> >>> dllwrap: creating one, but that may not be what you want
> >>> Math.o(.text+0xb8c2):Math.c: undefined reference to `signgam'
> >>[ ... ]
> >>It's a bug in newlib (Cygwin's C library) math.h header. The variable
> >>signgam was changed to a macro, but the header file doesn't show that.
> >>Please add the following 2 lines *before* signgam is used in the sources
> >>(use grep to find out), and if it works, I'll work up a patch after
> >>I figure out the right way to do this.
> >>extern __IMPORT struct _reent reent_data;
> >>#define signgam reent_data._new._reent._gamma_signgam
I added an initialization of signgam to Cygwin and then modified the
cygwin.din to export signgam.
> I had the same problem when compiling
> o plotutils-2.4.1 - http://www.gnu.org/software/plotutils/plotutils.html -
> There was an undefined reference to signgam too.
> After applying your suggestion to the offending file (see the patch below)
> plotutils-2.4.1 compiles almost OOTB.
> I had to manually comment out the following definitions in the config.h file:
> #define PTHREAD_SUPPORT 1
> #define X_THREAD_SUPPORT 1
> #define HAVE_PTHREAD_H 1
This has nothing at all to do with pthreads other than it causes the
variable to be used. To fix the plotutils code I did:
$ diff -u3pb ./specfun.c.old ../ode/specfun.c
--- ./specfun.c.old Tue Jan 23 15:56:17 2001
+++ ../ode/specfun.c Tue Jan 23 15:56:26 2001
@@ -82,7 +82,9 @@ static double lgamneg ____P((double x));
static double lgampos ____P((double x));
#else /* not NO_SYSTEM_GAMMA, we link in vendor code */
#define SIGNGAM signgam
extern int SIGNGAM;
double f_gamma ____P((double x));
This leaves the definition in the header.
> configure set these variables but they cause problems during compilation.
> plotutils-2.4.1 passes all the tests.
I haven't gotten that far. I don't have all of the X libraries in place
yet. But, I'm getting there.
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin