Subject RE: [firebird-support] AIX
Author Paul Beach
> There will be any AIX binaries for 1.5+ releases ? The Aix binary is
> extremely old.
> That´s what´s missing for my company to choose Firebird over
> Postgres. Anybody can help ? the compile instructions are simply
> wrong and there´s no documentation regarding it.

Attached are details on how to buld 1.5 on HPUX 11, the process is
fundamentally the same, so these should help.

Paul

----------

1. We are going to need a number of GNU tools and install them on the HP 11 System

a, GNU GCC
http://hpux.connect.org.uk/ftp/hpux/Gnu/gcc-3.3.2/gcc-3.3.2-sd-11.00.depot.gz
Must use at least GCC 3.3, as there is a known bug in GCC 3.2 in the compiler optimiser that "screws" up string handling.
Runtime Depends on
GNU Make
http://hpux.connect.org.uk/ftp/hpux/Gnu/make-3.80/make-3.80-sd-11.00.depot.gz
GNU Flex
http://hpux.connect.org.uk/ftp/hpux/Gnu/flex-2.5.4a/flex-2.5.4a-sd-11.00.depot.gz
GNU Bison
http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.875/bison-1.875-sd-11.00.depot.gz

on HP11
as root:
# gunzip /depot_location/the_above_packages
# swinstall -s /depot_location/the_above_packages.depot

We are also going to need
GNU autoconf
http://hpux.connect.org.uk/ftp/hpux/Gnu/autoconf-2.59/autoconf-2.59-sd-11.00.depot.gz
Assuming you can get it, since it only just appeared. Seems previous 2.57 couldn't
handle gettimeofday properly. Jeez.

Runtime Depends on
GNU awk
http://hpux.connect.org.uk/ftp/hpux/Gnu/gawk-3.1.3/gawk-3.1.3-sd-11.00.depot.gz
Which itself depends on:
GNU gettext
http://hpux.connect.org.uk/ftp/hpux/Gnu/gettext-0.14.1/gettext-0.14.1-sd-11.00.depot.gz
GNU libiconv
http://hpux.connect.org.uk/ftp/hpux/Development/Libraries/libiconv-1.9.2/libiconv-1.9.2-sd-11.00.depot.gz
GNU m4
http://hpux.connect.org.uk/ftp/hpux/Languages/m4-1.4/m4-1.4-sd-11.00.depot.gz
perl
http://hpux.connect.org.uk/ftp/hpux/Languages/perl-5.8.3/perl-5.8.3-sd-11.00.depot.gz

# gunzip /depot_location/the_above_packages
# swinstall -s /depot_location/the_above_packages.depot

OK, that should take care of all the packages we need and their interelated dependencies.

create a top level directory for the Firebird source code...
e.g. /usr/firebird
Copy firebird-1.5.0.4290.tar to the top level directory and untar e.g.
# tar -xvf firebird-1.5.0.4290.tar
This will create a directory under /usr/firebird called firebird-1.5.0.4290
Lets call this something more convenient: mv firebird-1.5.0.4290 firebirdsrc
create a new user e.g. builder
make the owner and group of /usr/firebird the same as builder
# chown -R builder /usr/firebird
# chgrp -R users /usr/firebird

Login as builder and cd to usr/firebird/firebirdsrc

$ autoconf

Creates following error:
configure.in:143: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.in:144: error: possibly undefined macro: AC_LIBTOOL_DLOPEN
configure.in:145: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL

You need GNU Libtool..
http://hpux.connect.org.uk/ftp/hpux/Gnu/libtool-1.5/libtool-1.5-sd-11.00.depot.gz
And you also need
GNU Automake
http://hpux.connect.org.uk/ftp/hpux/Gnu/automake-1.7.4/automake-1.7.4-sd-11.00.depot.gz
Which itself depends on:
GNU texinfo
http://hpux.connect.org.uk/ftp/hpux/Gnu/texinfo-4.5/texinfo-4.5-sd-11.00.depot.gz
# gunzip /depot_location/the_above_packages
# swinstall -s /depot_location/the_above_packages.depot

run

#autoreconf -vif

It gives a number of autoheader: missing template:
errors, not sure how important they are now, but

# autoconf now works without the above error...


# ./configure

dies towards the end, because there is no builds/posix/prefix.hpux
Should look like this:



Also no

src/install/arch-specific/hpux/makefile.in
This is going to need super, classic and misc subdirectories
copy linux files?

configure.in is the main driver....if changed need to re-run autoconf

Generated Makefile to use for building individual elements of Firebird can be found
once generated in /src

Change hpux section SHRLIB_EXT=sl not SHRLIB_EXT=so


1. jrd/isc_ipc.cpp
In function void isc_signal2(int,void(*)(),void*,long unsigned int)
Line 727: Error invalid conversion from void(*)() to void(*)(int)

1.5 Line 217: static void isc_signal2(int, SIG_FPTR, void*, ULONG)
1.03 Line 317: static void isc_signal2(int, FPTR_VOID, void*, ULONG)


Common.h Line 466: typedef (*SIG_FPTR) ();
Within the #ifdef hpux
Should be:
Common.h Line 466: typedef (*SIG_FPTR) (int);


2. /usr/ccs/bin/ld: Unsatisfied symbols:
dlclose (code)
dlopen (code)
dlsym (code)
ISC_check_restart (code)

in gen/firebird/bin/gpre_boot

Need patch PHSS_30488 - a number of ld fixes including a number related to the above.
Get patch file from the HP IT Resource Center at http://www5.itrc.hp.com/service/home/home.do
Put the .tar file onto the HP system, untar, create a depot file and install.

/usr/ccs/bin/ld: Unsatisfied symbols:
dlclose (code)
dlopen (code)
dlsym (code)

Should now be gone.

3. /usr/ccs/bin/ld: Unsatisfied symbols:
ISC_check_restart (first referenced in ../temp/boot/.gpre/jrd/isc_ipc.o) (code)

Modify /builds/posix/prefix.hpux and add

JRDBOOT_Extra_Files=isc_sync.cpp thd.cpp

4.
../src/remote/inet.cpp In function 'port* INET_connect (TExT*, PACKET*, ISC_STATUS*, short unsigned int, SCHAR*, short int)
inet.cpp 1071: error invalid conversion from socklen_t* to int*
inet.cpp 1154: error invalid conversion from socklen_t* to int*
../src/remote/inet.cpp In function 'port* aux_connect (port*, PACKET*, int(*)())
inet.cpp 1611: error invalid conversion from socklen_t* to int*
../src/remote/inet.cpp In function 'port* aux_request (port*, PACKET*, int(*)())
inet.cpp 1722: error invalid conversion from socklen_t* to int*
inet.cpp 1742: error invalid conversion from socklen_t* to int*
../src/remote/inet.cpp In function 'int check_host (port*, TEXT*, TEXT*, passwd)
inet.cpp 1820: error invalid conversion from socklen_t* to int*
../src/remote/inet.cpp In function 'int parse_line (TEXT*, TEXT*, TEXT*, TEXT*)
inet.cpp 2411: error innetgr undeclared (first use this function)
inet.cpp 2411: error (each undeclared identifier is reported once for each function it appears in)
../src/remote/inet.cpp In function 'port* select_accept (port*)
inet.cpp 2590: error invalid conversion from socklen_t* to int*


Oh boy, is this a good one...
On HP-UX 11 <sys/socket.h> defines socklen_t but _uses_ it only when
_XOPEN_SOURCE_EXTENDED is defined. If not defined then the test fails,
defining socklen_t to 'int' aka BSD.

So use -D_XOPEN_SOURCE_EXTENDED in prefix.hpux....

5. ../src/remote/inet.cpp -o ../temp/libfbstatic/remote/inet.o
../src/remote/inet.cpp in function int parse_line (TEXT*, TEXT*, TEXT*, TEXT*)
inet.cpp 2411: error innetgr undeclared (first use this function)
inet.cpp 2411: error (each undeclared identifier is reported once for each function it appears in)


Line 101 inet.cpp
#ifdef DARWIN
extern "C" int innetgr(const char *, const char *, const char *, const char *);
#endif

Change to
#if (defined DARWIN || defined HPUX)
extern "C" int innetgr(const char *, const char *, const char *, const char *);
#endif


6.
../src/remote/xdr.cpp:46:2 #error Define SWAP_DOUBLE for your platform correctly!
../src/remote/xdr.cpp:962 error ntohl indeclared first use this function
../src/remote/xdr.cpp:962 Each undeclared identifier is reported only once for each function it appears in.
../src/remote/xdr.cpp in function int mem_putlong (XDR*, SLONG*)
../src/remote/xdr.cpp:1060 error htonl undeclared first use this function.

Line 45 xdr.cpp
#if !defined(sparc) && !defined (PowerPc)
#error "Define SWAP_DOUBLE for your platform correctly!"
#endif

Needs to be checked for all supported platforms: simplest way to check,
select abs(2.0/3.0) from rdb$database from correct client.

Modified to:
#if !defined(sparc) && !defined (PowerPc) && !defined(hpux)
#error "Define SWAP_DOUBLE for your platform correctly!"
#endif

7.
../src/remote/xdr.cpp in function int mem_getlong (XDR* SLONG*)
../src/remote/xdr.cpp:962 error ntohl undeclared first use this function
../src/remote/xdr.cpp:962 Each undeclared identifier is reported only once for each function it appears in.
../src/remote/xdr.cpp in function int mem_putlong (XDR* SLONG*)
../src/remote/xdr.cpp:1060 error htonl undeclared first use this function.

HP-UX header files for the ntohs and ntohl functions are different.
On Tru64 UNIX, the routines are defined in the following header file:
<arpa/inet.h>
On HP-UX, the routines are defined in the following header file:
<netinet/in.h>
For _XOPEN_SOURCE_EXTENDED only, the routines are defined in the following header file:
<arpa/inet.h>


Line 29
after #include <string.h>
#ifdef HP11
Add #include <arpa/inet.h>
#endif

8.
../src/burp/canonical.cpp in function int burp_getlong (XDR*, SLONG*)
../src/burp/canonical.cpp:326 error ntohl undeclared first use this function
../src/burp/canonical.cpp:326 Each undeclared identifier is reported only once for each function it appears in.
../src/burp/canonical.cpp in function int burp_putlong (XDR*, SLONG*)
../src/burp/canonical.cpp:420 error htonl undeclared first use this function.

See 7.
Line 36
after #include <string.h>
#ifdef HP11
Add #include <arpa/inet.h>
#endif

9.
Part of intl contains files as .c, and will try and compile using native cc, this is not wanted, since we have already set the compile flags to be for gcc and the native cc compiler is going to barf massively.
I can fix the cc issue by setting CC=gcc in prefix.hpux


However there seems to be something nastily wrong with the way that
gcc talks to the HPUX linker when you are creating shared libraries.

for example in Makefile.in.intl

libfbintl : $(LIBFBINTL_SO)

$(LIBFBINTL_SO): LINK_PROD=libintl.$(SHRLIB_EXT).1
$(LIBFBINTL_SO): $(INTL_Objects)
# $(LIB_LINK) -Wl,-soname,libintl.$(SHRLIB_EXT).1 -Wl,-rpath,/usr/lib -o $@ $^
$(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME_LINE) $(LIB_LINK_RPATH_LINE) -o $@ $^
# -$(LN) $(@F) $(LIBFBINTL_SOBASENAME)
# -$(LN) $(notdir $(LIBFBINTL_SOBASENAME)) $(LIBFBINTL_SONAME)

LIB_LINK translates to LIB_LINK= $(CC) if you are not using UseLibToolForLink

so CC=gcc

LIB_LINK_OPTIONS allow you to pass specific linker platform options for building a shared library
LIB_LINK_SONAME_LINE comes from make.rules whihc picks up LIB_LINK_SONAME which is the flag used to create an "internal" libray name i.e. give it a version number -soname for linux
LIB_LINK_RPATH_LINE comes from make.rules which picks up LIB_LINK_RPATH the runtime path specification -rpath for linux

so we need to set these up in prefix.hpux
e.g.
LIB_LINK_OPTIONS
if you are using gcc regardless of the platform using -shared should pass the approproate glag for shared libraries to the linker
on HPUX this would be -b
LIB_LINK_SONAME should be +h for HP
LIB_LINK_RPATH = -L

so one would expect
LIB_LINK_OPTIONS = -shared
LIB_LINK_SONAME = -Wl, +h
LIB_LINK_RPATH = - Wl, -L

Should work, not a chance, seems gcc has a major problem passing -Wl, +h properly to the linker and falls over quite happily...
I even tested this to the point where I was trying to build the intl shared library just using the output from the make.log and I still couldn't get it to handle the +h flag in any way shape or form. Maybe its me, maybe its gcc but...

So to link using th HP linker and use internal name I need to use the HP linker straight, and not via GCC
so

LIB_LINK_OPTIONS = -b
LIB_LINK_SONAME = +h
LIB_LINK_RPATH = -L

But that means I now have a problem with LIB_LINK and its definition, so this means changing Makefile.in.intl so that just before

$(LIBFBINTL_SO): LINK_PROD=libintl.$(SHRLIB_EXT).1
$(LIBFBINTL_SO): $(INTL_Objects)
$(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME_LINE) $(LIB_LINK_RPATH_LINE) -o $@ $^

I set LIB_LINK=ld

So it looks like:

LIB_LINK=ld
$(LIBFBINTL_SO): LINK_PROD=libintl.$(SHRLIB_EXT).1
$(LIBFBINTL_SO): $(INTL_Objects)
$(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME_LINE) $(LIB_LINK_RPATH_LINE) -o $@ $^

There has to be a better way. This was also how I got round
libfbembed too in Makefile.in.libfbembed... and
libfbclient in Make.in.libfbclient
libib_util in Make.in.extlib

10.

When using the native link command rather than linking through gcc, we get an error stating that that the stdc++ library can't be found. This is located in /usr/local/lib, so we can symbolically link this library into /usr/lib

e.g.
ln -s /usr/local/lib/libstdc++.a /usr/lib/libstdc++.a
ln -s /usr/local/lib/libstdc++.sl /usr/lib/libstdc++.sl

11.
src/utilities/drop.cpp in function void remove_resource (TEXT*, long int, long_int, TEXT*)
src/utilities/drop.cpp:241 error ISC_map_file undeclared, first use this function
src/utilities/drop.cpp:241 error each undeclared identifier is reported only once for each function it appears in.

drop.cpp needs the definition of ISC_map_file from ../jrd/isc_s_proto.h
so after
#include "../jrd/isc_proto.h add
#include "..../jrd/isc_s_proto.h"

You will now get an error that the call to the ISC_map_file function is wrong.
Defined in 1.5 in isc_s_proto.h as
extern UCHAR *DLL_EXPORT ISC_map_file(ISC_STATUS *,
TEXT *,
void (*)(void *, struct sh_mem *, int),
void *, SLONG, struct sh_mem *);
Being used as:
if (!ISC_map_file
(status_vector, expanded_filename, dummy_init, 0, shm_length, &shmem_data))
{
ib_printf("\n***Unable to access %s resources:\n", label);
gds__print_status(status_vector);
return;
}
Obviously the change to the function definition and its usage here wasn't picked up.
Try modifying the above to...
if (!ISC_map_file
(status_vector,
expanded_filename,
(void (*) (void *, sh_mem*, int)) dummy_init, 0, shm_length, &shmem_data))
{
ib_printf("\n***Unable to access %s resources:\n", label);
gds__print_status(status_vector);
return;
}

12.
g++ ../tmp/libfbclient/jrd/alt.cpp
In file included from ../src/common/classes/alloc.h:37,
from ../src/include/firebird.h:75,
from ../src/jrd/alt.cpp:33:
../src/common/classes/locks.h:83: error: 'pthread_spinlock_t' is used as a
type, but is not defined as a type.
../src/common/classes/locks.h: In constructor `Firebird::Spinlock::Spinlock()':
../src/common/classes/locks.h:86: error: `spinlock' undeclared (first use this
function)
../src/common/classes/locks.h:86: error: (Each undeclared identifier is
reported only once for each function it appears in.)
../src/common/classes/locks.h:86: error: `pthread_spin_init' undeclared (first
use this function)
../src/common/classes/locks.h: In destructor `Firebird::Spinlock::~Spinlock()':
../src/common/classes/locks.h:90: error: `pthread_spin_destroy' undeclared
(first use this function)
../src/common/classes/locks.h: In member function `void
Firebird::Spinlock::enter()':
../src/common/classes/locks.h:94: error: `pthread_spin_lock' undeclared (first
use this function)
../src/common/classes/locks.h: In member function `void
Firebird::Spinlock::leave()':
../src/common/classes/locks.h:98: error: `pthread_spin_unlock' undeclared
(first use this function)

in common/classes/locks.h line 80
if !defined(SOLARIS) && !defined(DARWIN) && !defined(FREEBSD)
Amend to
if !defined(SOLARIS) && !defined(DARWIN) && !defined(FREEBSD) && !defined(HP11)


13.
If you run gmake after a code modification, i.e. continue the build and you see the
error:
/usr/ccs/bin/ld: Can't create ../gen/firebird/bin/fb_lock_mgr
/usr/ccs/bin/ld: Text file busy
collect2: ld returned 1 exit status
su to root, run ps-eaf and look for the fb_lock_mgr process running.
kill -9 the process id.
then delete the file /gen/firebird/bin/fb_lock_mgr
re-run gmake.

14.
g++ ../src/jrd/isc_sync.cpp
../src/jrd/isc_sync.cpp: In function `SLONG ISC_event_clear(event*)':
../src/jrd/isc_sync.cpp:868: error: invalid conversion from `SCHAR*' to `int'

isc_EVENT_CLEAR UNIX (not NeXt, Not Solaris, Not Posix Threads)
ret = semctl(event->event_semid, event->event_emnum, SETVAL, arg);

../src/jrd/isc_sync.cpp: In function `int ISC_event_init(event*, int, int)':
../src/jrd/isc_sync.cpp:913: error: incompatible types in assignment of `int'
to `SCHAR[1]'

ISC_event_init UNIX (not NeXt, Not Solaris, Not Posix Threads)
event->event_semnum = 0;

../src/jrd/isc_sync.cpp:917: error: incompatible types in assignment of `int'
to `SCHAR[1]'

event->event_semnum = semnum;

../src/jrd/isc_sync.cpp: In function `int ISC_event_post(event*)':
../src/jrd/isc_sync.cpp:947: error: invalid conversion from `SCHAR*' to `int'

ISC_event_post UNIX (not NeXt, Not Solaris, Not Posix Threads)
ret = semctl(event->event_semid,event->event_event_semnum, SETVAL,arg);

../src/jrd/isc_sync.cpp: In function `int ISC_event_wait(short int, event**,
SLONG*, long int, void (*)(), void*)':
../src/jrd/isc_sync.cpp:1034: error: invalid conversion from `SCHAR*' to `int'

ISC_event_wait UNIX (not NeXt, Not Solaris, Not Posix Threads)
*semnum++ =(*event++)->event_semnum;


../src/jrd/isc_sync.cpp: In function `int ISC_mutex_init(mtx*, long int)':
../src/jrd/isc_sync.cpp:3401: error: 'struct mtx' has no member named '
mtx_semid'
../src/jrd/isc_sync.cpp:3402: error: 'struct mtx' has no member named '
mtx_semnum'
../src/jrd/isc_sync.cpp: In function `int ISC_mutex_lock(mtx*)':
../src/jrd/isc_sync.cpp:3431: error: 'struct mtx' has no member named '
mtx_semnum'
../src/jrd/isc_sync.cpp:3436: error: 'struct mtx' has no member named '
mtx_semid'
../src/jrd/isc_sync.cpp: In function `int ISC_mutex_lock_cond(mtx*)':
../src/jrd/isc_sync.cpp:3465: error: 'struct mtx' has no member named '
mtx_semnum'
../src/jrd/isc_sync.cpp:3470: error: 'struct mtx' has no member named '
mtx_semid'
../src/jrd/isc_sync.cpp: In function `int ISC_mutex_unlock(mtx*)':
../src/jrd/isc_sync.cpp:3499: error: 'struct mtx' has no member named '
mtx_semnum'
../src/jrd/isc_sync.cpp:3504: error: 'struct mtx' has no member named '
mtx_semid'

firebird.h defines MULTI_THREAD 1 within a macro specific to check if
thread synchronisation is needed...

SUPERSERVER, SUPERCLIENT, WIN_NT, SOLARIS_MT, VMS

in thd.h
#ifdef MULTI_THREAD
#define ANY_THREADING 1
#endif
#ifdef V4_THREADING
#define ANY_THREADING 1
#endif

Thats it...


isc.h defines two structures based on ANY_THREADING

#ifdef ANY_THREADING
typedef struct mtx {
THD_MUTEX_STRUCT mtx_mutex[1];
} MTX_T, *MTX;
#else
typedef struct mtx {
SLONG mtx_semid;
SSHORT mtx_semnum;
SCHAR mtx_use_count;
SCHAR mtx_wait;
} MTX_T, *MTX;
#endif /* ANY_THREADING */


#ifdef ANY_THREADING
typedef struct event
{
SLONG event_semid;
SLONG event_count;
THD_MUTEX_STRUCT event_mutex[1];
THD_COND_STRUCT event_semnum[1];
} EVENT_T, *EVENT;
#else
typedef struct event
{
SLONG event_semid;
SLONG event_count;
SSHORT event_semnum;
} EVENT_T, *EVENT;
#endif /* ANY_THREADING */

The Classic build is picking up the ANY_THREADING structures.
And I don't think it should be....

I think I have found it... its not SUPERSERVER thats causing
the problem, but a definition of SUPERCLIENT...

In ../jrd/thd.h

There are the following declarations:

#If (defined(HPUX) && defined(SUPERSERVER))
#define POSIX_THREADS 1
#endif

That should be fine for HPUX 11 (not for HP10.20) but we won't go into
HP's faltering attempts to implement POSIX threads...

Under it we have a

#if (defined(PLATFORM) && defined(SUPERCLIENT))
#define POSIX_THREADS 1
#endif

To build a thread safe gds shared library (client) for Linux...

This was also in 1.03, but somewhere in the new autoconf / configure
rebuild, a number of Makefile.in's for example:

define CFLAGS:= -DSUPERCLIENT as a prerequisite for building them...
Makefile.in.client.gdef
Makefile.in.client.gpre
Makefile.in.client.isql
Makefile.in.client.qli
Makefile.in.client.util
Makefile.in.client.intl
Makefile.in.libfbclient

Not someting that was required in 1.03... i.e. you could, or could not
choose posix threads for the client....

So we can amend thd.h to support POSIX_THREADS for HPUX for the client

#if (defined(HPUX) && defined(SUPERCLIENT))
#define POSIX_THREADS 1
#endif

This should get the right definitions to call isc_sync.cpp with the
correct event and mutex definitions for POSIX rather than for non POSIX (UNIX) for example...

Or we can whack -DSUPERCLIENT from the relevant makefiles....

I am going to try and see what happens if I build the client with posix threads enabled
on a classic build :-)

15.
gmake -f ../gen/Makefile.extlib
gmake[2] Entering directory /usr/firebirdsrc/src
../gen/Makefile.extlib:94 *** commands commence before first target. Stop.
LIB_LINK=ld was in the wrong place... in Makefile.extlib should be after
lib_ib_itil: $(LIBIBUTIL_SO)

16.
g++ ../src/extlib/fbudf/fbudf.cpp
/usr/include/sys/time.h: in function ISC_TIMESTAMP* getExactTimestamp(IS_TIMESTAMP*)
/usr/include/sys/time.h:485 error too few arguments to function int gettimeofday (timeval* void*)
src/extlib/fbudf/fbudf.cpp:537 error at this point in file

in prefix.hpux add -D_HPUX_SOURCE to pick up the correct gettimeofday function that supports timezones.
Still doesn't work, although a useful flag to add. Seems that
http://hpux.connect.org.uk/ftp/hpux/Gnu/autoconf-2.57/autoconf-2.57-sd-11.00.depot.gz
is fundamentally flawed when it comes to handling gettimeofday on HP11 download
http://hpux.connect.org.uk/ftp/hpux/Gnu/autoconf-2.59/autoconf-2.59-sd-11.00.depot.gz


Now lets work out, how to build an installable version of the software...
src/install/arch-specific
Needs a hpux for classic and superserver,
so we need
src/install/arch-specific/hpux/classic
src/install/arch-specific/hpux/super
so copy
src/install/arch-specific/linux to src/install/arch-specific/hpux

Modify LINUX, to hpux in the configure.in install section for testing.
amend linux lines to hpux e.g.
arch-specific/linux -> arch_specific/hpux
Dump the rpm stuff, and specific linux xinetd stuff too.
We want a plain vanilla tar install

autoconf
./configure


make install

makeInstallImage.sh
1. cp: illegal option --d
Change src/install/arch-specific/hpux/classic/makeInstallImage.sh.in
references to cp -df
e.g.
cp -df $BuiltFBDir/lib/libfbembed.so* $DestDir/lib
cp -df $BuiltFBDir/lib/libfbclient.so* $DestDir/lib

to
cp -f $BuiltFBDir/lib/libfbembed.sl* $DestDir/lib
cp -f $BuiltFBDir/lib/libfbclient.sl* $DestDir/lib

2.
Cannot access firebird/lib/libib_util.so: No such file or directory
Cannot access firebird/lib/libfbintl.so: No such file or directory
Cannot access firebird/UDF/ib_udf.so: No such file or directory
Cannot access firebird/UDF/fb_udf.so: No such file or directory

change the library extension in src/install/arch-specific/hpux/classic/makeInstallImage.sh.in
from so to HP's sl









.



















[Non-text portions of this message have been removed]