mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-04-05 20:31:00 +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:
parent
35c28b4efb
commit
1700860912
14
acinclude.m4
14
acinclude.m4
@ -110,3 +110,17 @@ size_t iconv();
|
||||
fi
|
||||
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
|
||||
|
||||
AM_ICONV
|
||||
|
||||
# add -DHAVE_INCONV to CFLAGS. We should not use #include <config.h> in
|
||||
# public headers
|
||||
if test "$am_cv_func_iconv" = "yes"; then
|
||||
CFLAGS="$CFLAGS -DHAVE_ICONV"
|
||||
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
|
||||
OPTDIRS=""
|
||||
|
||||
|
@ -36,7 +36,11 @@ mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
||||
}
|
||||
void
|
||||
_mdb_put_int16(void *buf, guint32 offset, guint32 value)
|
||||
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||
__attribute__((alias("mdb_put_int16")));
|
||||
#else
|
||||
{ mdb_put_int16(buf, offset, value); }
|
||||
#endif
|
||||
|
||||
void
|
||||
mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||
@ -46,7 +50,11 @@ mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||
}
|
||||
void
|
||||
_mdb_put_int32(void *buf, guint32 offset, guint32 value)
|
||||
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||
__attribute__((alias("mdb_put_int32")));
|
||||
#else
|
||||
{ mdb_put_int32(buf, offset, value); }
|
||||
#endif
|
||||
|
||||
void
|
||||
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
|
||||
_mdb_put_int32_mdb(void *buf, guint32 offset, guint32 value)
|
||||
#ifdef HAVE_ATTRIBUTE_ALIAS
|
||||
__attribute__((alias("mdb_put_int32_msb")));
|
||||
#else
|
||||
{ mdb_put_int32_msb(buf, offset, value); }
|
||||
#endif
|
||||
|
||||
ssize_t
|
||||
mdb_write_pg(MdbHandle *mdb, unsigned long pg)
|
||||
|
@ -248,7 +248,12 @@ static SQLRETURN SQL_API _SQLDriverConnect(
|
||||
SQLCHAR FAR *szConnStrOut,
|
||||
SQLSMALLINT cbConnStrOutMax,
|
||||
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
|
||||
SQLRETURN SQL_API SQLDriverConnectW(
|
||||
@ -695,7 +700,12 @@ static SQLRETURN SQL_API _SQLConnect(
|
||||
SQLCHAR FAR *szUID,
|
||||
SQLSMALLINT cbUID,
|
||||
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
|
||||
SQLRETURN SQL_API SQLConnectW(
|
||||
@ -799,7 +809,12 @@ static SQLRETURN SQL_API _SQLDescribeCol(
|
||||
SQLSMALLINT FAR *pfSqlType,
|
||||
SQLULEN FAR *pcbColDef, /* precision */
|
||||
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
|
||||
SQLRETURN SQL_API SQLDescribeColW(
|
||||
@ -902,7 +917,12 @@ static SQLRETURN SQL_API _SQLColAttributes(
|
||||
SQLPOINTER rgbDesc,
|
||||
SQLSMALLINT cbDescMax,
|
||||
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
|
||||
SQLRETURN SQL_API SQLColAttributesW(
|
||||
@ -981,7 +1001,12 @@ static SQLRETURN SQL_API _SQLError(
|
||||
SQLINTEGER FAR *pfNativeError,
|
||||
SQLCHAR FAR *szErrorMsg,
|
||||
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
|
||||
SQLRETURN SQL_API SQLErrorW(
|
||||
@ -1053,7 +1078,12 @@ SQLRETURN SQL_API SQLExecDirect(
|
||||
static SQLRETURN SQL_API _SQLExecDirect(
|
||||
SQLHSTMT hstmt,
|
||||
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
|
||||
SQLRETURN SQL_API SQLExecDirectW(
|
||||
@ -1412,7 +1442,12 @@ static SQLRETURN SQL_API _SQLColumns(
|
||||
SQLCHAR FAR *szTableName,
|
||||
SQLSMALLINT cbTableName,
|
||||
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
|
||||
SQLRETURN SQL_API SQLColumnsW(
|
||||
@ -1617,7 +1652,12 @@ SQLRETURN SQL_API _SQLGetData(
|
||||
SQLSMALLINT fCType,
|
||||
SQLPOINTER rgbValue,
|
||||
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
|
||||
SQLRETURN SQL_API SQLGetDataW(
|
||||
@ -1856,7 +1896,12 @@ SQLRETURN SQL_API _SQLGetInfo(
|
||||
SQLUSMALLINT fInfoType,
|
||||
SQLPOINTER rgbInfoValue,
|
||||
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
|
||||
SQLRETURN SQL_API SQLGetInfoW(
|
||||
|
Loading…
Reference in New Issue
Block a user