From bf8c5e674fb84611f744a953d638415eca553c49 Mon Sep 17 00:00:00 2001 From: Marcin Cieslak Date: Mon, 13 Aug 2012 04:01:47 +0200 Subject: [PATCH] Compile ToolTalk on FreeBSD Fix const correctness problems with OPT_CONST_CORRECT: tt_xdr_utils.C: In constructor '_Tt_xdr_size_stream::_Tt_xdr_size_stream()': tt_xdr_utils.C:150: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, long int*)' to 'bool_t (*)(__rpc_xdr*, const long int*)' tt_xdr_utils.C:151: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, char*, unsigned int)' to 'bool_t (*)(__rpc_xdr*, const char*, u_int)' tt_xdr_utils.C:159: error: invalid conversion from 'bool_t (*)(__rpc_xdr*, char*, unsigned int)' to 'bool_t (*)(__rpc_xdr*, const char*, u_int)' tt_entry_pt.C: In function '_Tt_string _tt_entrypt_to_string(_Tt_entry_pt)': tt_entry_pt.C:455: error: conversion from 'long int' to '_Tt_string' is ambiguous ../../lib/util/tt_string.h:104: note: candidates are: _Tt_string::_Tt_string(int) ../../lib/util/tt_string.h:102: note: _Tt_string::_Tt_string(const char*) --- cde/lib/tt/bin/dbck/options.C | 2 +- cde/lib/tt/bin/tt_type_comp/mp_type_comp.C | 2 +- cde/lib/tt/bin/ttauth/ttauth.h | 3 +- .../tt/bin/ttdbserverd/db_server_globals.h | 2 +- cde/lib/tt/bin/ttdbserverd/db_server_svc.C | 2 +- cde/lib/tt/bin/ttsession/mp_server.C | 2 +- cde/lib/tt/lib/tt_options.h | 34 +++++++++++++++++++ cde/lib/tt/lib/util/tt_entry_pt.C | 2 ++ cde/lib/tt/lib/util/tt_xdr_utils.C | 8 +++++ 9 files changed, 51 insertions(+), 6 deletions(-) diff --git a/cde/lib/tt/bin/dbck/options.C b/cde/lib/tt/bin/dbck/options.C index 6108e9c9..930d6adc 100644 --- a/cde/lib/tt/bin/dbck/options.C +++ b/cde/lib/tt/bin/dbck/options.C @@ -37,7 +37,7 @@ #include #include #include "util/copyright.h" -#if defined(linux) || defined(sgi) +#if defined(linux) || defined(sgi) || defined(__FreeBSD__) #include #endif #include "dbck.h" diff --git a/cde/lib/tt/bin/tt_type_comp/mp_type_comp.C b/cde/lib/tt/bin/tt_type_comp/mp_type_comp.C index 21378d39..3737fa1b 100644 --- a/cde/lib/tt/bin/tt_type_comp/mp_type_comp.C +++ b/cde/lib/tt/bin/tt_type_comp/mp_type_comp.C @@ -42,7 +42,7 @@ #if defined(linux) #include #endif -#if defined(sgi) +#if defined(sgi) || defined(__FreeBSD__) #include #endif #if defined(USL) || defined(__uxp__) diff --git a/cde/lib/tt/bin/ttauth/ttauth.h b/cde/lib/tt/bin/ttauth/ttauth.h index 5e1b27f5..32ccf1a2 100644 --- a/cde/lib/tt/bin/ttauth/ttauth.h +++ b/cde/lib/tt/bin/ttauth/ttauth.h @@ -46,6 +46,7 @@ in this Software without prior written authorization from The Open Group. */ #include +#include #include #include @@ -57,7 +58,7 @@ typedef int Bool; extern char *ProgramName; -#if !defined(linux) +#if !defined(linux) && !defined(CSRG_BASED) extern char *malloc(), *realloc(); #endif int process_command(), auth_initialize(), auth_finalize(); diff --git a/cde/lib/tt/bin/ttdbserverd/db_server_globals.h b/cde/lib/tt/bin/ttdbserverd/db_server_globals.h index ae3181ca..4ea174da 100644 --- a/cde/lib/tt/bin/ttdbserverd/db_server_globals.h +++ b/cde/lib/tt/bin/ttdbserverd/db_server_globals.h @@ -45,7 +45,7 @@ extern uid_t _tt_uid; extern gid_t _tt_gid; -extern gid_t _tt_gidlist [NGROUPS_MAX]; +extern gid_t _tt_gidlist [NGROUPS]; extern int _tt_gidlen; extern int _tt_auth_level; diff --git a/cde/lib/tt/bin/ttdbserverd/db_server_svc.C b/cde/lib/tt/bin/ttdbserverd/db_server_svc.C index 67b1ce0a..c2560821 100644 --- a/cde/lib/tt/bin/ttdbserverd/db_server_svc.C +++ b/cde/lib/tt/bin/ttdbserverd/db_server_svc.C @@ -63,7 +63,7 @@ #include #include -#if defined(sgi) +#if defined(sgi) || defined(__FreeBSD__) #include #endif diff --git a/cde/lib/tt/bin/ttsession/mp_server.C b/cde/lib/tt/bin/ttsession/mp_server.C index 746ba3b8..1afa0576 100644 --- a/cde/lib/tt/bin/ttsession/mp_server.C +++ b/cde/lib/tt/bin/ttsession/mp_server.C @@ -53,7 +53,7 @@ #include #include -#if defined(sgi) +#if defined(sgi) || defined(__FreeBSD__) #include #endif diff --git a/cde/lib/tt/lib/tt_options.h b/cde/lib/tt/lib/tt_options.h index e6f8c393..fef3512d 100644 --- a/cde/lib/tt/lib/tt_options.h +++ b/cde/lib/tt/lib/tt_options.h @@ -590,6 +590,40 @@ # define OPT_BUG_RPCINTR # undef OPT_XTHREADS +#elif defined(__FreeBSD__) +# undef OPT_UNIX_SOCKET_RPC +# undef OPT_TLI +# undef OPT_DLOPEN_X11 +# undef OPT_DLOPEN_CE +# undef OPT_ADDMSG_DIRECT +# undef OPT_SECURE_RPC +# undef OPT_CLASSING_ENGINE +# undef OPT_PATCH +# define OPT_POSIX_SIGNAL +# undef OPT_BSD_WAIT +# undef OPT_DGETTEXT +# define OPT_CATGETS +# undef OPT_GETDTABLESIZE +# undef OPT_SYSINFO +# if defined(OSMAJORVERSION) && (OSMAJORVERSION >= 5) +# define OPT_CPP_PATH "/usr/bin/cpp" +# else +# define OPT_CPP_PATH "/usr/libexec/cpp" +# endif +# define OPT_CPP_OPTIONS "" +# define OPT_STRERROR +# undef OPT_SVR4_GETMNTENT +# undef OPT_LOCKF_MNTENT +# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_UFS +# undef OPT_OLD_RPC +# define OPT_DEFINE_SIG_PF +# define OPT_TAR_HAS_EXCLUDE_OPTION +# define OPT_HAS_REALPATH +# define OPT_AUTOMOUNT_PATH_FIX +# define OPT_BUG_RPCINTR +# undef OPT_XTHREADS +# define OPT_CONST_CORRECT + #else /* Unknown configuration, complain */ }}}} You must edit lib/tt_options.h and add a section defining the options for your configuration. diff --git a/cde/lib/tt/lib/util/tt_entry_pt.C b/cde/lib/tt/lib/util/tt_entry_pt.C index 9f70aa4a..c084ad7c 100644 --- a/cde/lib/tt/lib/util/tt_entry_pt.C +++ b/cde/lib/tt/lib/util/tt_entry_pt.C @@ -451,6 +451,8 @@ _Tt_string _tt_entrypt_to_string(_Tt_entry_pt fun) return "tt_feature_required"; #if defined(__osf__) || defined(linux) case TT_API_CALL_LAST: return (char *) NULL; +#elif defined(OPT_CONST_CORRECT) + case TT_API_CALL_LAST: return (const char *) NULL; #else case TT_API_CALL_LAST: return NULL; #endif diff --git a/cde/lib/tt/lib/util/tt_xdr_utils.C b/cde/lib/tt/lib/util/tt_xdr_utils.C index ea814f67..833c1193 100644 --- a/cde/lib/tt/lib/util/tt_xdr_utils.C +++ b/cde/lib/tt/lib/util/tt_xdr_utils.C @@ -47,8 +47,12 @@ typedef bool_t (*local_xdrproc_t)(XDR *, caddr_t *); #ifndef OPT_XDR_LONG_TYPE +#if defined(OPT_CONST_CORRECT) +# define OPT_XDR_LONG_TYPE const long +#else # define OPT_XDR_LONG_TYPE long #endif +#endif static bool_t tt_x_putlong(XDR *xp, OPT_XDR_LONG_TYPE *) { @@ -63,7 +67,11 @@ static bool_t * expect int instead of u_int. */ #if defined(CSRG_BASED) +#if defined(OPT_CONST_CORRECT) +tt_x_putbytes(XDR *xp, const char *, unsigned int len) +#else tt_x_putbytes(XDR *xp, caddr_t, unsigned int len) +#endif #else tt_x_putbytes(XDR *xp, caddr_t, int len) #endif -- 2.25.1