mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-09-18 18:22:07 +08:00
Work around for missing __attribute((alias))
Some platforms such as OSX 10.7 don't have __attribute((alias)) enabled. We need a work around there
This commit is contained in:
14
acinclude.m4
14
acinclude.m4
@@ -110,3 +110,17 @@ size_t iconv();
|
|||||||
fi
|
fi
|
||||||
AC_SUBST(LIBICONV)
|
AC_SUBST(LIBICONV)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl Check whether the target supports symbol aliases.
|
||||||
|
dnl Code copied from libgomp
|
||||||
|
AC_DEFUN([AM_GCC_ATTRIBUTE_ALIAS], [
|
||||||
|
AC_CACHE_CHECK([whether the target supports symbol aliases],
|
||||||
|
am_cv_gcc_have_attribute_alias, [
|
||||||
|
AC_TRY_LINK([
|
||||||
|
void foo(void) { }
|
||||||
|
extern void bar(void) __attribute__((alias("foo")));],
|
||||||
|
[bar();], am_cv_gcc_have_attribute_alias=yes, am_cv_gcc_have_attribute_alias=no)])
|
||||||
|
if test $am_cv_gcc_have_attribute_alias = yes; then
|
||||||
|
AC_DEFINE(HAVE_ATTRIBUTE_ALIAS, 1,
|
||||||
|
[Define to 1 if the target supports __attribute__((alias(...))).])
|
||||||
|
fi])
|
||||||
|
@@ -25,13 +25,17 @@ AC_C_CONST
|
|||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
|
|
||||||
AM_ICONV
|
AM_ICONV
|
||||||
|
|
||||||
# add -DHAVE_INCONV to CFLAGS. We should not use #include <config.h> in
|
# add -DHAVE_INCONV to CFLAGS. We should not use #include <config.h> in
|
||||||
# public headers
|
# public headers
|
||||||
if test "$am_cv_func_iconv" = "yes"; then
|
if test "$am_cv_func_iconv" = "yes"; then
|
||||||
CFLAGS="$CFLAGS -DHAVE_ICONV"
|
CFLAGS="$CFLAGS -DHAVE_ICONV"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AM_GCC_ATTRIBUTE_ALIAS
|
||||||
|
if test "$am_cv_gcc_have_attribute_alias" = "yes"; then
|
||||||
|
CFLAGS="$CFLAGS -DHAVE_ATTRIBUTE_ALIAS"
|
||||||
|
fi
|
||||||
|
|
||||||
dnl no optional stuff by default
|
dnl no optional stuff by default
|
||||||
OPTDIRS=""
|
OPTDIRS=""
|
||||||
|
|
||||||
|
@@ -36,7 +36,11 @@ mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
|||||||
}
|
}
|
||||||
void
|
void
|
||||||
_mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
_mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
__attribute__((alias("mdb_put_int16")));
|
__attribute__((alias("mdb_put_int16")));
|
||||||
|
#else
|
||||||
|
{ mdb_put_int16(buf, offset, value); }
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||||
@@ -46,7 +50,11 @@ mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
|||||||
}
|
}
|
||||||
void
|
void
|
||||||
_mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
_mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
__attribute__((alias("mdb_put_int32")));
|
__attribute__((alias("mdb_put_int32")));
|
||||||
|
#else
|
||||||
|
{ mdb_put_int32(buf, offset, value); }
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
|
mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
|
||||||
@@ -56,7 +64,11 @@ mdb_put_int32_msb(void *buf, guint32 offset, guint32 value)
|
|||||||
}
|
}
|
||||||
void
|
void
|
||||||
_mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value)
|
_mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
__attribute__((alias("mdb_put_int32_msb")));
|
__attribute__((alias("mdb_put_int32_msb")));
|
||||||
|
#else
|
||||||
|
{ mdb_put_int32_msb(buf, offset, value); }
|
||||||
|
#endif
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
mdb_write_pg(MdbHandle *mdb, unsigned long pg)
|
mdb_write_pg(MdbHandle *mdb, unsigned long pg)
|
||||||
|
@@ -248,7 +248,12 @@ static SQLRETURN SQL_API _SQLDriverConnect(
|
|||||||
SQLCHAR FAR *szConnStrOut,
|
SQLCHAR FAR *szConnStrOut,
|
||||||
SQLSMALLINT cbConnStrOutMax,
|
SQLSMALLINT cbConnStrOutMax,
|
||||||
SQLSMALLINT FAR *pcbConnStrOut,
|
SQLSMALLINT FAR *pcbConnStrOut,
|
||||||
SQLUSMALLINT fDriverCompletion) __attribute__((alias("SQLDriverConnect")));
|
SQLUSMALLINT fDriverCompletion)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLDriverConnect")));
|
||||||
|
#else
|
||||||
|
{ return SQLDriverConnect(hdbc, hwnd, szConnStrIn, cbConnStrIn, szConnStrOut, cbConnStrOutMax, pcbConnStrOut, fDriverCompletion); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLDriverConnectW(
|
SQLRETURN SQL_API SQLDriverConnectW(
|
||||||
@@ -695,7 +700,12 @@ static SQLRETURN SQL_API _SQLConnect(
|
|||||||
SQLCHAR FAR *szUID,
|
SQLCHAR FAR *szUID,
|
||||||
SQLSMALLINT cbUID,
|
SQLSMALLINT cbUID,
|
||||||
SQLCHAR FAR *szAuthStr,
|
SQLCHAR FAR *szAuthStr,
|
||||||
SQLSMALLINT cbAuthStr) __attribute__((alias("SQLConnect")));
|
SQLSMALLINT cbAuthStr)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLConnect")));
|
||||||
|
#else
|
||||||
|
{ return SQLConnect(hdbc, szDSN, cbDSN, szUID, cbUID, szAuthStr, cbAuthStr); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLConnectW(
|
SQLRETURN SQL_API SQLConnectW(
|
||||||
@@ -799,7 +809,12 @@ static SQLRETURN SQL_API _SQLDescribeCol(
|
|||||||
SQLSMALLINT FAR *pfSqlType,
|
SQLSMALLINT FAR *pfSqlType,
|
||||||
SQLULEN FAR *pcbColDef, /* precision */
|
SQLULEN FAR *pcbColDef, /* precision */
|
||||||
SQLSMALLINT FAR *pibScale,
|
SQLSMALLINT FAR *pibScale,
|
||||||
SQLSMALLINT FAR *pfNullable) __attribute__((alias("SQLDescribeCol")));
|
SQLSMALLINT FAR *pfNullable)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLDescribeCol")));
|
||||||
|
#else
|
||||||
|
{ return SQLDescribeCol(hstmt, icol, szColName, cbColNameMax, pcbColName, pfSqlType, pcbColDef, pibScale, pfNullable); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLDescribeColW(
|
SQLRETURN SQL_API SQLDescribeColW(
|
||||||
@@ -902,7 +917,12 @@ static SQLRETURN SQL_API _SQLColAttributes(
|
|||||||
SQLPOINTER rgbDesc,
|
SQLPOINTER rgbDesc,
|
||||||
SQLSMALLINT cbDescMax,
|
SQLSMALLINT cbDescMax,
|
||||||
SQLSMALLINT FAR *pcbDesc,
|
SQLSMALLINT FAR *pcbDesc,
|
||||||
SQLLEN FAR *pfDesc)__attribute__((alias("SQLColAttributes")));
|
SQLLEN FAR *pfDesc)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLColAttributes")));
|
||||||
|
#else
|
||||||
|
{ return SQLColAttributes(hstmt, icol, fDescType, rgbDesc, cbDescMax, pcbDesc, pfDesc); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLColAttributesW(
|
SQLRETURN SQL_API SQLColAttributesW(
|
||||||
@@ -981,7 +1001,12 @@ static SQLRETURN SQL_API _SQLError(
|
|||||||
SQLINTEGER FAR *pfNativeError,
|
SQLINTEGER FAR *pfNativeError,
|
||||||
SQLCHAR FAR *szErrorMsg,
|
SQLCHAR FAR *szErrorMsg,
|
||||||
SQLSMALLINT cbErrorMsgMax,
|
SQLSMALLINT cbErrorMsgMax,
|
||||||
SQLSMALLINT FAR *pcbErrorMsg) __attribute__((alias("SQLError")));
|
SQLSMALLINT FAR *pcbErrorMsg)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLError")));
|
||||||
|
#else
|
||||||
|
{ return SQLError(henv, hdbc, hstmt, szSqlState, pfNativeError, szErrorMsg, cbErrorMsgMax, pcbErrorMsg); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLErrorW(
|
SQLRETURN SQL_API SQLErrorW(
|
||||||
@@ -1053,7 +1078,12 @@ SQLRETURN SQL_API SQLExecDirect(
|
|||||||
static SQLRETURN SQL_API _SQLExecDirect(
|
static SQLRETURN SQL_API _SQLExecDirect(
|
||||||
SQLHSTMT hstmt,
|
SQLHSTMT hstmt,
|
||||||
SQLCHAR FAR *szSqlStr,
|
SQLCHAR FAR *szSqlStr,
|
||||||
SQLINTEGER cbSqlStr)__attribute__((alias("SQLExecDirect")));
|
SQLINTEGER cbSqlStr)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLExecDirect")));
|
||||||
|
#else
|
||||||
|
{ return SQLExecDirect(hstmt, szSqlStr, cbSqlStr); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLExecDirectW(
|
SQLRETURN SQL_API SQLExecDirectW(
|
||||||
@@ -1412,7 +1442,12 @@ static SQLRETURN SQL_API _SQLColumns(
|
|||||||
SQLCHAR FAR *szTableName,
|
SQLCHAR FAR *szTableName,
|
||||||
SQLSMALLINT cbTableName,
|
SQLSMALLINT cbTableName,
|
||||||
SQLCHAR FAR *szColumnName,
|
SQLCHAR FAR *szColumnName,
|
||||||
SQLSMALLINT cbColumnName)__attribute__((alias("SQLColumns")));
|
SQLSMALLINT cbColumnName)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLColumns")));
|
||||||
|
#else
|
||||||
|
{ return SQLColumns(hstmt, szCatalogName, cbCatalogName, szSchemaName, cbSchemaName, szTableName, cbTableName, szColumnName, cbColumnName); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLColumnsW(
|
SQLRETURN SQL_API SQLColumnsW(
|
||||||
@@ -1617,7 +1652,12 @@ SQLRETURN SQL_API _SQLGetData(
|
|||||||
SQLSMALLINT fCType,
|
SQLSMALLINT fCType,
|
||||||
SQLPOINTER rgbValue,
|
SQLPOINTER rgbValue,
|
||||||
SQLLEN cbValueMax,
|
SQLLEN cbValueMax,
|
||||||
SQLLEN FAR *pcbValue)__attribute__((alias("SQLGetData")));
|
SQLLEN FAR *pcbValue)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLGetData")));
|
||||||
|
#else
|
||||||
|
{ return SQLGetData(hstmt, icol, fCType, rgbValue, cbValueMax, pcbValue); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLGetDataW(
|
SQLRETURN SQL_API SQLGetDataW(
|
||||||
@@ -1856,7 +1896,12 @@ SQLRETURN SQL_API _SQLGetInfo(
|
|||||||
SQLUSMALLINT fInfoType,
|
SQLUSMALLINT fInfoType,
|
||||||
SQLPOINTER rgbInfoValue,
|
SQLPOINTER rgbInfoValue,
|
||||||
SQLSMALLINT cbInfoValueMax,
|
SQLSMALLINT cbInfoValueMax,
|
||||||
SQLSMALLINT FAR *pcbInfoValue) __attribute__((alias("SQLGetInfo")));
|
SQLSMALLINT FAR *pcbInfoValue)
|
||||||
|
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||||
|
__attribute__((alias("SQLGetInfo")));
|
||||||
|
#else
|
||||||
|
{ return SQLGetInfo(hdbc, fInfoType, rgbInfoValue, cbInfoValueMax, pcbInfoValue); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_ODBC_W
|
#ifdef ENABLE_ODBC_W
|
||||||
SQLRETURN SQL_API SQLGetInfoW(
|
SQLRETURN SQL_API SQLGetInfoW(
|
||||||
|
Reference in New Issue
Block a user