Can you do the inline change with an ifdef #define __inline inline?
Not sure about asprintf, there used to be another version too but I took
it out.
closefrom() came from OpenSSH, how does it deal with the dirfd() thing?
INFINITY has gone in tmux SVN already.
Cheers
On Mon, Sep 19, 2011 at 03:09:44PM +1000, Peter Jeremy wrote:
> I have been trying to build tmux-1.5 on Solaris 8, Solaris 9 and
> Solaris 10 using SunStudio 11 and SunStudio 12 and have run into a
> number of issues:
>
> 1) Neither SunStudio 11 nor SunStudio 12 support __inline
> The following patch changes them back to "inline":
> --- compat/tree.h~ 2011-07-09 19:42:38.000000000 +1000
> +++ compat/tree.h 2011-08-11 10:16:24.000000000 +1000
> @@ -119,7 +119,7 @@
> struct type *name##_SPLAY_REMOVE(struct name *, struct type *);
> \
> \
> /* Finds the node with the same key as elm */
> \
> -static __inline struct type *
> \
> +static inline struct type * \
> name##_SPLAY_FIND(struct name *head, struct type *elm)
> \
> { \
> if (SPLAY_EMPTY(head)) \
> @@ -130,7 +130,7 @@
> return (NULL); \
> } \
> \
> -static __inline struct type *
> \
> +static inline struct type * \
> name##_SPLAY_NEXT(struct name *head, struct type *elm)
> \
> { \
> name##_SPLAY(head, elm); \
> @@ -144,7 +144,7 @@
> return (elm); \
> } \
> \
> -static __inline struct type *
> \
> +static inline struct type * \
> name##_SPLAY_MIN_MAX(struct name *head, int val) \
> { \
> name##_SPLAY_MINMAX(head, val); \
>
> 2) All versions of Solaris need '-lsocket -lnsl' to resolve symbol
> references. I added "LIBS='-lsocket -lnsl'" to the configure
> environment but it would be nicer if this was automatic.
>
>
> 3) "INFINITY" is not found on Solaris 8 or Solaris 9
> Since if just needs a large number, I used the following patch:
> --- colour.c~ 2011-07-09 19:42:38.000000000 +1000
> +++ colour.c 2011-08-11 10:27:56.000000000 +1000
> @@ -113,7 +113,7 @@
> colour_rgb_generate256();
>
> colour = 16;
> - lowest = INFINITY;
> + lowest = 1e308;
> for (i = 0; i < 240; i++) {
> distance = colour_rgb_distance(&colour_rgb_256[i], rgb);
> if (distance < lowest) {
>
> 4) On Solaris 8, there is no closefrom() or dirfd(), requiring the
> following patch (this should be wrapped in #if/#endif):
> --- compat/closefrom.c~ 2011-07-09 19:42:38.000000000 +1000
> +++ compat/closefrom.c 2011-09-16 14:50:46.000000000 +1000
> @@ -52,6 +52,7 @@
> #ifndef OPEN_MAX
> # define OPEN_MAX 256
> #endif
> +#define dirfd(d) ((d)->d_fd)
>
> #if 0
> __unused static const char rcsid[] = "$Sudo: closefrom.c,v 1.11 2006/08/17
> 15:26:54 millert Exp $";
>
> 5) Prior to Solaris 10, passing a size of 0 to [v]snprintf() resulted
> in -1 being returned with errno unaffected (this is documented in
> Solaris 10). This breaks the asprintf() in compat/asprintf.c (which
> is used on Solaris 8 but not Solaris 9), causing tmux to just exit
> with nothing being reported (since all error messages pass through
> that code). The fix is to pass a non-zero size (and I've verified
> that this gives the correct results using a separate test tool):
> --- compat/asprintf.c~ 2011-07-09 19:42:38.000000000 +1000
> +++ compat/asprintf.c 2011-09-19 11:20:50.000000000 +1000
> @@ -44,8 +44,9 @@
> vasprintf(char **ret, const char *fmt, va_list ap)
> {
> int n;
> + char buf[4];
>
> - if ((n = vsnprintf(NULL, 0, fmt, ap)) < 0)
> + if ((n = vsnprintf(buf, sizeof(buf), fmt, ap)) < 0)
> goto error;
>
> *ret = xmalloc(n + 1);
>
> The above fixes are sufficient to get tmux running on all 3 versions
> but I haven't done any stress testing.
>
> --
> Peter Jeremy
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> tmux-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users