Actions:
|
2005-08-15 17:33 AEST by Arthur Barrett - See BUG 4549 for generic information on how to compile GNU software on Tru64,
and in particular the do-configure2.sh and use-gcc3.sh files which set the
environment for configure and make.
You may have difficulties compiling HOWL on Tru64 if your pthread is not
correctly patched with the GCC patch. If it is not patched then you can copy
it to the howl-1.0.0/include directory and manually patch it.
HOWL requires getopt_long which TRU64 does not have. Use the getopt_long()
function defined by GNU TAR. Download and build it (I used 1.15.1), from any
GNU mirror (remember to keep running configure until the Makefile is created):
ftp://mirror.aarnet.edu.au/pub/gnu/tar/
Steps to compile howl 1.0.0 on Tru64 V5.1 gcc version 3.3.2
ungzip and untar
put the scripts "cc" and "do-configure2.sh" in the directory howl-1.0.0 and set
the executable "chmod 755"
run the script use-gcc3.sh ". ./use-gcc3.sh"
change to the howl source directory "cd howl-1.0.0"
** fix include/salt/platform.h
** fix src/lib/mDNSResponder/mDNSClientAPI.h
** fix src/mDNSResponder/Posix/posix_main.c
** copy these files from tar-1.15.1/lib/ to howl-1.0.0/src/mDNSResponder/
getopt.h
getopt.o
getopt1.o
** edit the src/mDNSResponder/Posix/Makefile
mDNSResponder_LDADD = $(LDADD)
mDNSResponder_DEPENDENCIES = \
$(top_builddir)/src/lib/mDNSResponder/libmDNSResponder.la \
$(top_builddir)/src/lib/howl/libhowl.la
- mDNSResponder_LDFLAGS =
+ mDNSResponder_LDFLAGS = getopt.o getopt1.o
posix_main.c
static int verbose_flag = 0;
+ #ifdef __digital
+ int daemon (int nochdir, int noclose)
+ {
+ printf("Cannot DAEMON on TRU64 Unix");
+ }
+ #endif
mDNSClientAPI.h:
typedef signed short mDNSs16;
typedef unsigned short mDNSu16;
- #if _LP64
+ #if defined (_LP64)||(__alpha)
typedef signed int mDNSs32;
typedef unsigned int mDNSu32;
#else
platform.h:
# define u_int64_t uint64_t
#endif
+ #ifdef __alpha
+ #ifndef __FreeBSD__
+ #define __digital
+
+ #define SW_LOG_INFO "howl_log.log"
+
+ #include <gssapi/compat.h>
+ #include <db.h>
+ #include <inttypes.h>
+ #include <signal.h>
+ typedef __sigfp __sighandler_t;
+ #define no_argument 0
+ #define required_argument 1
+ #define getopt_long(a,b,c,d,e) _getopt_long_r(a,b,c,d,e)
+ int daemon (int nochdir, int noclose)
+ {
+ printf("Cannot DAEMON on TRU64 Unix");
+ }
+
+ #endif
+ #endif
+
typedef void * sw_opaque;
pthread.h (patched):
#if defined (__DECCXX)
# define _PTHREAD_ENV_CXX
# define _PTHREAD_ENV_DECCXX
#elif defined (__cplusplus)
# define _PTHREAD_ENV_CXX
#elif defined (__DECC) || defined (__decc)
# define _PTHREAD_ENV_DECC
#elif defined (__INTEL_COMPILER)
# define _PTHREAD_ENV_INTELC
#elif defined (__GNUC__)
# define _PTHREAD_ENV_GCC
#else
# error <pthread.h>: unrecognized compiler.
#endif |
|
2005-08-16 10:56 AEST by Arthur Barrett - The configure script does not correctly understand the CFLAGS= parameter (too
long for autoconf 1.96?) that the do-configure2.sh script passes it, so you
need to edit "configure" and append the CFLAGS to the line from:
DEFS=-DHAVE_CONFIG_H
to:
DEFS="-DHAVE_CONFIG_H -mcpu=ev56 -mtune=ev56 -D__digital -D_XOPEN_SOURCE=500 -D_
OSF_SOURCE=1 -D_POSIX_C_SOURCE=199506 -D_POSIX_SOURCE=1 -D_ANSI_C_SOURCE=1 -D_AE
S_SOURCE=1 -D_ISO_C_SOURCE=1 -D_LIBC_POLLUTION_H_ "
This will also mean that include/salt/platform.h will no longer have to define
the symbol __digital (if you leave it there you will get a warning).
The Makefile to fix is listed incorrectly in the original description (above),
it should be (this version avoids having to copy the .o and .h files from tar):
src/mDNSResponder/Makefile:
mDNSResponder_LDADD = $(LDADD)
mDNSResponder_DEPENDENCIES = \
$(top_builddir)/src/lib/mDNSResponder/libmDNSResponder.la \
$(top_builddir)/src/lib/howl/libhowl.la
- mDNSResponder_LDFLAGS =
+ mDNSResponder_LDFLAGS = $(top_builddir)/../tar-1.15.1/lib/getopt.o \
+ $(top_builddir)/../tar-1.15.1/lib/getopt1.o
DEFS = -DHAVE_CONFIG_H
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include \
+ -I$(top_builddir)/../tar-1.15.1/lib
CPPFLAGS =
LDFLAGS =
|