unixODBC 2.2.14 headers wrong?
Sebastien FLAESCH <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Organization | Four J's Development Tools |
| Message-ID | <[email protected]> |
Hi all, I know this is maybe not the right mailing-list to talk about that, but I think it's important for any ODBC users: I have just downloaded unixODBC sources 2.2.14, did a configure/make and here is what I get in the unixodbc_conf.h header file: #ifndef HAVE_UNISTD_H #define HAVE_UNISTD_H #endif #ifndef HAVE_PWD_H #define HAVE_PWD_H #endif #ifndef HAVE_SYS_TYPES_H #define HAVE_SYS_TYPES_H #endif #ifndef HAVE_LONG_LONG #define HAVE_LONG_LONG #endif #ifndef ODBCINT64 #define ODBCINT64 <---- ???? #endif #ifndef UODBCINT64 #define UODBCINT64 <---- ???? #endif #ifndef SIZEOF_LONG_INT #define SIZEOF_LONG_INT 4 #endif Actually, ODBCINT64 and UODBCINT64 are defined, but as "nothing"... Later, in sqltypes.h, you can see lines like: #ifdef ODBCINT64 typedef ODBCINT64 SQLBIGINT; #endif #ifdef UODBCINT64 typedef UODBCINT64 SQLUBIGINT; #endif There are some lines in sqltypes.h to define a default for these constants, but since unixodbc_conf.h defines them, I would rather have expected something like this in unixodbc_conf.h: #ifndef ODBCINT64 #define ODBCINT64 long long #endif #ifndef UODBCINT64 #define UODBCINT64 unsigned long long #endif This can be critical I think... configure script complete without any error, but later on, when you compile your sources, you get warning like: /usr/include/sqltypes.h:400: error: type defaults to 'int' in declaration of 'SQLBIGINT' /usr/include/sqltypes.h:403: error: type defaults to 'int' in declaration of 'SQLUBIGINT' Did I miss something here? Cheers, Seb