[freetds] Can configure but failes with make

Hirsch, Jonathan jonathan.hirsch at gs.com
Thu Apr 17 13:02:05 EDT 2003


Yea something changed, I switched to a solaris 2.8 server with a later build
of the gnu tools. I uploaded at least three separate config files at your
request to source forge. No one ever got back to me except to say that the
files were not complete. 
I got the code to compile. The reason why I was having trouble was because
of my limited knowledge of C and my serious lack of understanding of the
configure program. I'm stating for the record that I don't like the
configure program. Others may disagree but I'm entitled to my opinion. A
Makefile file with comments where I should specify my includes and libs
would have been easier for me to negotiate with. This is what I had to type
in to get it to recognize everything. 

# export
$PATH=/export/opt2/gnu-1.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2:/usr/bin:
/usr/sbin:/sbin:/usr/ccs/bin:/export/opt2/gnu 1.2/bin:/export/opt2/gnu-1.2:.

#export
LD_LIBRARY_PATH=/export/opt2/gnu-1.2/lib:/export/opt2/gnu-1.2/lib/gcc-lib/sp
arc-sun-solaris2.6/2.95.2

#./configure --build=sparc-sun-solaris2.8
CPPFLAGS="-I/export/opt2/gnu-1.2/include
-I/export/opt2/gnu-1.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/include
-I/export/opt2/gnu-1.2/sparc-sun-solaris2.6/include -I/usr/include"
LDFLAGS="-L/export/opt2/gnu-1.2/lib"

No great shakes here but quite a lot to specify and lots of trial and error
for me. Also the code cannot properly determine the --build type when you
use the sun supplied cpp program. 

Additionally I had to copy several of the crt1.o and similar library files
to the base installation dir and additional src dirs or the make step would
complain :file not found:. I know that this is because of a lack of
understanding on my part, not configure. 

I am unable to compile on our Solaris 2.6 server no matter what I do. I am
curious that nowhere on the freetds web pages it states the minimum
requirements to compile or recommended versions to use to compile. 


Take care,

Jon


-----Original Message-----
From: Lowden, James K [mailto:LowdenJK at bernstein.com] 
Sent: Wednesday, April 16, 2003 3:50 PM
To: 'FreeTDS Development Group'
Subject: RE: [freetds] Can configure but failes with make


> From: Hirsch, Jonathan [mailto:jonathan.hirsch at gs.com]
> Sent: April 16, 2003 2:34 PM
> 
> I can run configure ok but I fail when I try to run make. Any
> suggestions?

I take it something changed?  Last I heard, you couldn't run configure.  

configure inspected your machine, looking for asprintf(), and determined you
have none.  To check me, look in config.h; you'll find HAVE_ASPRINTF is not
defined.  Then make tries to build our replacement for asprintf(), and fails
because it can't find the required definitions.  To top it off, the
definition it wants is in the pre-standard varargs.h file, instead of
stdarg.h:

$ grep va_a*list /usr/include/varargs.h /usr/include/stdarg.h ...
/usr/include/varargs.h:#define  va_alist        __builtin_va_alist
...
/usr/include/varargs.h: ((ap) = (va_list)&__builtin_va_alist)
/usr/include/stdarg.h:typedef _BSD_VA_LIST_     va_list;
/usr/include/stdarg.h:  ((ap) = (va_list)__builtin_next_arg(last))

src/replacements/asprintf.c is bone simple.  Your system doesn't need it,
I'm sure, but you should be able to compile it with just "cc asprintf.c".
Else something is up with the base system.  

It looks from here that you have to tell cc where to look for your include
files.  Solaris must have asprintf(), so grepping for that should locate the
right include directory.  On my system, it's defined in stdio.h, not exactly
an out-of-the-way location.  Set your CFLAGS accordingly.  I'm still
puzzled, though, because I can't understand how your machine could build
anything successfully, and still cause configure to fail to notice
asprintf().  Is there more than one stdio or stdarg on your system?  

--jkl


> 
> # make
...
> Making all in replacements
> source='asprintf.c' object='asprintf.lo' libtool=yes \ 
> depfile='.deps/asprintf.Plo' tmpdepfile='.deps/asprintf.TPlo' \ 
> depmode=gcc /bin/bash ../../depcomp \ /bin/bash ../../libtool 
> --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include  
> -I../../include  -D_FREETDS_LIBRARY_SOURCE -DTDS50 -Wall
> -Wstrict-prototypes -Wmissing-prototypes  -g -O2 -c -o 
> asprintf.lo `test -f
> 'asprintf.c' || echo './'`asprintf.c
> mkdir .libs
> gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include
> -D_FREETDS_LIBRARY_SOURCE -DTDS50 -Wall -Wstrict-prototypes
> -Wmissing-prototypes -g -O2 -c asprintf.c 
> -Wp,-MD,.deps/asprintf.TPlo  -fPIC
> -DPIC -o .libs/asprintf.o
> asprintf.c: In function `asprintf':
> asprintf.c:24: `__builtin_va_alist' undeclared (first use in 
> this function)
> asprintf.c:24: (Each undeclared identifier is reported only once
> asprintf.c:24: for each function it appears in.)
> asprintf.c:22: warning: `ap' might be used uninitialized in 
> this function
> *** Error code 1
> make: Fatal error: Command failed for target `asprintf.lo'
> Current working directory
> /export/opt3/tempinst/freetds-0.61/src/replacements
> *** Error code 1
> make: Fatal error: Command failed for target `all-recursive'
> Current working directory /export/opt3/tempinst/freetds-0.61/src
> *** Error code 1
> make: Fatal error: Command failed for target `all-recursive'



More information about the FreeTDS mailing list