summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarc Alff <marc.alff@oracle.com>2010-03-09 11:03:02 -0700
committerMarc Alff <marc.alff@oracle.com>2010-03-09 11:03:02 -0700
commitf6660539c24eabf7f784d1bdfedf8d01023c73c8 (patch)
treea132647272f2039e25b26df61dafedb30ce539cd /include
parent58559ac827663a2b27bde116dc07610412330f06 (diff)
downloadmariadb-git-f6660539c24eabf7f784d1bdfedf8d01023c73c8.tar.gz
Bug#51878 Build break in HPUX involving mysql_prlock on a client
This is a fix specific for HPUX, for which the compiler does not resolve properly dependencies involving unused inline functions. (See existing comments in mysql_thread.h) In include/mysql/psi/mysql_thread.h, the instrumentation helpers for mysql_prlock_* uses the pr lock apis. These apis are implemented in mysys/thr_rwlock.c, which is not linked to client code. As a result, the code does not link in libmysql_r, on HPUX. The fix is to cut dependencies explicitely, by introducing -DDISABLE_MYSQL_RWLOCK_H, when building client code.
Diffstat (limited to 'include')
-rw-r--r--include/mysql/psi/mysql_thread.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/mysql/psi/mysql_thread.h b/include/mysql/psi/mysql_thread.h
index cdf7a879eb1..4e839c7cf6a 100644
--- a/include/mysql/psi/mysql_thread.h
+++ b/include/mysql/psi/mysql_thread.h
@@ -192,6 +192,8 @@ typedef struct st_mysql_cond mysql_cond_t;
on some platforms.
The proper fix would be to cut these extra dependencies in the calling code.
DISABLE_MYSQL_THREAD_H is a work around to limit dependencies.
+ DISABLE_MYSQL_PRLOCK_H is similar, and is used to disable specifically
+ the prlock wrappers.
*/
#ifndef DISABLE_MYSQL_THREAD_H
@@ -714,6 +716,7 @@ static inline int inline_mysql_rwlock_init(
return my_rwlock_init(&that->m_rwlock, NULL);
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_init(
#ifdef HAVE_PSI_INTERFACE
PSI_rwlock_key key,
@@ -728,6 +731,7 @@ static inline int inline_mysql_prlock_init(
#endif
return rw_pr_init(&that->m_prlock);
}
+#endif
static inline int inline_mysql_rwlock_destroy(
mysql_rwlock_t *that)
@@ -742,6 +746,7 @@ static inline int inline_mysql_rwlock_destroy(
return rwlock_destroy(&that->m_rwlock);
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_destroy(
mysql_prlock_t *that)
{
@@ -754,6 +759,7 @@ static inline int inline_mysql_prlock_destroy(
#endif
return rw_pr_destroy(&that->m_prlock);
}
+#endif
static inline int inline_mysql_rwlock_rdlock(
mysql_rwlock_t *that
@@ -781,6 +787,7 @@ static inline int inline_mysql_rwlock_rdlock(
return result;
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_rdlock(
mysql_prlock_t *that
#ifdef HAVE_PSI_INTERFACE
@@ -806,6 +813,7 @@ static inline int inline_mysql_prlock_rdlock(
#endif
return result;
}
+#endif
static inline int inline_mysql_rwlock_wrlock(
mysql_rwlock_t *that
@@ -833,6 +841,7 @@ static inline int inline_mysql_rwlock_wrlock(
return result;
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_wrlock(
mysql_prlock_t *that
#ifdef HAVE_PSI_INTERFACE
@@ -858,6 +867,7 @@ static inline int inline_mysql_prlock_wrlock(
#endif
return result;
}
+#endif
static inline int inline_mysql_rwlock_tryrdlock(
mysql_rwlock_t *that
@@ -885,6 +895,7 @@ static inline int inline_mysql_rwlock_tryrdlock(
return result;
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_tryrdlock(
mysql_prlock_t *that
#ifdef HAVE_PSI_INTERFACE
@@ -910,6 +921,7 @@ static inline int inline_mysql_prlock_tryrdlock(
#endif
return result;
}
+#endif
static inline int inline_mysql_rwlock_trywrlock(
mysql_rwlock_t *that
@@ -937,6 +949,7 @@ static inline int inline_mysql_rwlock_trywrlock(
return result;
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_trywrlock(
mysql_prlock_t *that
#ifdef HAVE_PSI_INTERFACE
@@ -962,6 +975,7 @@ static inline int inline_mysql_prlock_trywrlock(
#endif
return result;
}
+#endif
static inline int inline_mysql_rwlock_unlock(
mysql_rwlock_t *that)
@@ -980,6 +994,7 @@ static inline int inline_mysql_rwlock_unlock(
return result;
}
+#ifndef DISABLE_MYSQL_PRLOCK_H
static inline int inline_mysql_prlock_unlock(
mysql_prlock_t *that)
{
@@ -996,6 +1011,7 @@ static inline int inline_mysql_prlock_unlock(
result= rw_pr_unlock(&that->m_prlock);
return result;
}
+#endif
static inline int inline_mysql_cond_init(
#ifdef HAVE_PSI_INTERFACE