Fix for PHP compile error: size of symbol `hash_reset’ changed

When you compile php (5.0.4) with both mysql and imap (imap-2004a – imap-2004d), I found a small problem. It turns out that both applications define the function hash_reset. This causes the following linker error:

/usr/local/imap-2004d//lib/libc-client.a(misc.o)(.text+0x8a4): In function `hash_reset':
/var/source/php-tarballs/imap-2004d/c-client/misc.c:278: multiple definition of `hash_reset'
/usr/lib/mysql/libmysqlclient.a(hash.o)(.text+0x130): first defined here
/usr/bin/ld: Warning: size of symbol `hash_reset' changed from 94 in /usr/lib/mysql/libmysqlclient.a(hash.o) to 89 in /usr/lib/mysql/libmysqlclient.a(hash.o)
collect2: ld returned 1 exit status
make: *** [] Error 1
[root@gadgetwiz php-5.0.4]#

The fix is pretty simple. You can modify the imap-2004d source code to use the function name hash_reset2 instead of hash_reset. Just change all occurences of hash_reset to hash_reset2.

src/c-client/mail.c:  hash_reset2 (ht);         /* discard containers, reset ht */
src/c-client/misc.c:    hash_reset2 (*hashtab); /* reset hash table */
src/c-client/misc.c:void hash_reset2 (HASHTAB *hashtab)
src/c-client/misc.h:void hash_reset2 (HASHTAB *hashtab);