Bug #14402 fail to build on HP-UX 11.0
Submitted: 27 Oct 2005 17:19 Modified: 2 Aug 2006 11:06
Reporter: Francois Genolini Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Administrator Severity:S3 (Non-critical)
Version: OS:
Assigned to: Alfredo Kojima CPU Architecture:Any
Tags: Engineering

[27 Oct 2005 17:19] Francois Genolini
Description:
mysql-administrator-1.1.4/mysql-gui-common fails to build on HP-UX 11.0

How to repeat:
download software on your HP-UX 11.0 computer and configure / make

Suggested fix:
go to mysql-administrator-1.1.4/mysql-gui-common

kludge as follows (did not have time to look into real port to this platform):

line 34 of library/source/myx_aux_functions.c

#include <sys/select.h> should not be allowed on that platform
configure should detect this and guard against it with an #ifdef

during link:

libmysqlclient_r.sl not present on system, created sym link, allowed build to progress

line 42 source/linux/MGTableBrowserList.cc
latest install of gcc on this platform as a different /usr/include/string.h thus not declaring strtok_r
fixed by creating dummy include file containing extern "C" { extern char *strtok_r(char*,const char*,char**);};

etc... ad lib
[1 Aug 2006 19:11] Alfredo Kojima
I've wrapped #include <sys/select.h> inside #ifdefs and also fixed the strtok_r problem. Unfortunately we have no resources to build and test the tools 
and their dependencies in a HP-UX machine by ourselves, but if you send a 
patch or at least a list of things that need to be fixed, we'll gladly include
them.
[2 Aug 2006 11:01] Francois Genolini
with gcc 4.1.1 on HP-UX 11.11
with version
mysql-administrator-1.1.10
in mysql-gui-common/source/linux/MGTableBrowserList.cc:42 in function 'bool MGTableFromSchemaObjectName()'
still same problem with strtok_r
easily fixed by adding an extern declaration 

also in mysql-administrator/source/linux/MInstanceInfo.cc:888 in function 'bool go_get_info()'
there should be an ifdef for hpux (just like there is one for sun above) that includes
#include <sys/vfs.h>
that defines FSTAB to be
#define FSTAB_FILE "/etc/mnttab"

this seems to compile OK with these mods

also in mysql-administrator/source/linux/MABackupPanel.cc:500 in member function 'void MABackupPanel::add_schema_to_list()'
atoll() is used but not guarded by #ifdefs from configure (atoll is not a function defined in any of HP-UX's include files)
using atol() instead seems to compile OK
[2 Aug 2006 11:06] Francois Genolini
Also uses strtoll() in MACatalogsPanel.cc which is not defined in any of HP-UX's include files, but strtol() compiles fine
[3 Aug 2006 2:44] Alfredo Kojima
Hi 

Thanks for the tips. I've looked at some HPUX headers and it seems 
it defines strtok_r() if __RENTRANT is #defined and __strtoll() in inttypes.h
It can't be replaced with strtol() because that only converts to long (32bits in 
32bit machines) while strtoll() converts to long long (64bits anywhere).

Can you confirm that these exist in your machine as well?

Also, the changes I'm making are in our subversion repository and not in any
release yet. If you want to build from it, please look at:
http://forge.mysql.com/wiki/Building_MySQL_GUI_Tools_on_Linux