summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <lenz@mysql.com>2002-12-04 16:16:06 +0100
committerunknown <lenz@mysql.com>2002-12-04 16:16:06 +0100
commite955255cf67b483234ffdf4a61028bf046be47b5 (patch)
tree7caf204e3d8220fc41ededdc6647c0ca54d32d28 /mysys
parent4fb76fc70a26ddca0d016a0c598775cc4d574135 (diff)
downloadmariadb-git-e955255cf67b483234ffdf4a61028bf046be47b5.tar.gz
- Portability fixes for HP compiler on HPUX11 (backport from 4.0 tree)
- sql_analyse.cc: Fixed bug in decimal handling configure.in: - Portability fix for HP compiler on HPUX11 libmysql/password.c: - Portability fix for HP compiler on HPUX11 mysys/hash.c: - Portability fix for HP compiler on HPUX11 mysys/my_static.c: - Portability fix for HP compiler on HPUX11 mysys/my_static.h: - Portability fix for HP compiler on HPUX11 mysys/my_tempnam.c: - Portability fix for HP compiler on HPUX11 sql/sql_analyse.cc: - Fixed bug in decimal handling
Diffstat (limited to 'mysys')
-rw-r--r--mysys/hash.c15
-rw-r--r--mysys/my_static.c2
-rw-r--r--mysys/my_static.h2
-rw-r--r--mysys/my_tempnam.c6
4 files changed, 18 insertions, 7 deletions
diff --git a/mysys/hash.c b/mysys/hash.c
index eb74b1f30dd..602823e6d43 100644
--- a/mysys/hash.c
+++ b/mysys/hash.c
@@ -83,7 +83,12 @@ void hash_free(HASH *hash)
/* some helper functions */
-inline byte*
+/*
+ This function is char* instead of byte* as HPUX11 compiler can't
+ handle inline functions that are not defined as native types
+*/
+
+inline char*
hash_key(HASH *hash,const byte *record,uint *length,my_bool first)
{
if (hash->get_key)
@@ -104,7 +109,7 @@ static uint hash_rec_mask(HASH *hash,HASH_LINK *pos,uint buffmax,
uint maxlength)
{
uint length;
- byte *key=hash_key(hash,pos->data,&length,0);
+ byte *key= (byte*) hash_key(hash,pos->data,&length,0);
return hash_mask((*hash->calc_hashnr)(key,length),buffmax,maxlength);
}
@@ -183,10 +188,10 @@ uint calc_hashnr_caseup(const byte *key, uint len)
#ifndef __SUNPRO_C /* SUNPRO can't handle this */
inline
#endif
-uint rec_hashnr(HASH *hash,const byte *record)
+unsigned int rec_hashnr(HASH *hash,const byte *record)
{
uint length;
- byte *key=hash_key(hash,record,&length,0);
+ byte *key= (byte*) hash_key(hash,record,&length,0);
return (*hash->calc_hashnr)(key,length);
}
@@ -273,7 +278,7 @@ static void movelink(HASH_LINK *array,uint find,uint next_link,uint newlink)
static int hashcmp(HASH *hash,HASH_LINK *pos,const byte *key,uint length)
{
uint rec_keylength;
- byte *rec_key=hash_key(hash,pos->data,&rec_keylength,1);
+ byte *rec_key= (byte*) hash_key(hash,pos->data,&rec_keylength,1);
return (length && length != rec_keylength) ||
(hash->flags & HASH_CASE_INSENSITIVE ?
my_casecmp(rec_key,key,rec_keylength) :
diff --git a/mysys/my_static.c b/mysys/my_static.c
index 00061893cdc..72bf7207efa 100644
--- a/mysys/my_static.c
+++ b/mysys/my_static.c
@@ -61,7 +61,7 @@ USED_MEM* my_once_root_block=0; /* pointer to first block */
uint my_once_extra=ONCE_ALLOC_INIT; /* Memory to alloc / block */
/* from my_tempnam */
-#ifndef HAVE_TEMPNAM
+#if !defined(HAVE_TEMPNAM) || defined(HPUX11)
int _my_tempnam_used=0;
#endif
diff --git a/mysys/my_static.h b/mysys/my_static.h
index e9d1a30b786..e139b0ec127 100644
--- a/mysys/my_static.h
+++ b/mysys/my_static.h
@@ -57,7 +57,7 @@ extern const char *soundex_map;
extern USED_MEM* my_once_root_block;
extern uint my_once_extra;
-#ifndef HAVE_TEMPNAM
+#if !defined(HAVE_TEMPNAM) || defined(HPUX11)
extern int _my_tempnam_used;
#endif
diff --git a/mysys/my_tempnam.c b/mysys/my_tempnam.c
index fdaf018af0d..d4979fcaa6e 100644
--- a/mysys/my_tempnam.c
+++ b/mysys/my_tempnam.c
@@ -24,6 +24,12 @@
#include "mysys_priv.h"
#include <m_string.h>
+
+/* HPUX 11.0 doesn't allow us to change the environ pointer */
+#ifdef HPUX11
+#undef HAVE_TEMPNAM
+#endif
+
#include "my_static.h"
#include "mysys_err.h"