[freetds] don't understand change

Frediano Ziglio freddy77 at gmail.com
Sat Dec 29 16:33:31 EST 2007


Il giorno gio, 27/12/2007 alle 10.51 -0500, James K. Lowden ha scritto:
> Frediano Ziglio wrote:
> > > I think 1.15 is OK.  
> > 
> > Mainly in my environment it didn't compile. I think it's cause
> > 
> > $ nm .libs/libct.so | grep STD
> > 000000000003efa0 r STD_DATETIME_FMT
> > 
> > so the symbol is local
> 
> In C, file-scope objects have external linkage.  Is it possible you're
> compiling the file as C++?  
> 
> I remember from reading the ANSI C rationale that extern was the source of
> some difficulty because there was more than one reasonable, well
> established practice.  Some linkers want:
> 
> 	file1.c: 	char value[] = "hi";
> 	file2.c:	extern char value[];
> 
> others want:
> 
> 	file1.c: 	extern char value[] = "hi";
> 	file2.c:	extern char value[];
> 
> I chose #1.  You might try #2 (add extern to the definition).  
> 
> Funny we haven't bumped into this before.  
> 
> Regards, 
> 

I think is related to symbol reduction used in Makefiles
(-export-symbols-regex). I think however that it would be better to
avoid ctlib.h inclusion in common.c and use cs_locale/ct_dt_info.
However currently cs_locale/ct_dt_info is not fully implemented.

freddy77




More information about the FreeTDS mailing list