bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

problems building GNULIB allocsa.c on HP/UX 11.0


From: Mark D. Baushke
Subject: problems building GNULIB allocsa.c on HP/UX 11.0
Date: Thu, 04 Nov 2004 00:27:58 -0800

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Attempts to build allocsa.c on HP-UX 11.0 using the native compiler are
running into some problems:

> HP-UX hp186 B.11.00 A 9000/785 2002119839 two-user license

source='/u/scjones/cvs-nightly/lib/allocsa.c' object='allocsa.o' libtool=no \
DEPDIR=.deps depmode=hp /bin/sh /u/scjones/cvs-nightly/depcomp \
cc -DHAVE_CONFIG_H -I. -I/u/scjones/cvs-nightly/lib -I..   -Ino/include  -g -c 
/u/scjones/cvs-nightly/lib/allocsa.c
cc: "/u/scjones/cvs-nightly/lib/allocsa.h", line 96: error 1509: Enumeration 
value must be constant.
cc: "/u/scjones/cvs-nightly/lib/allocsa.h", line 106: warning 551: Integer 
division by zero.
cc: "/u/scjones/cvs-nightly/lib/allocsa.c", line 54: warning 551: Integer 
division by zero.
cc: line 54: error 2162: Size of "room" exceeds compiler limits.

This is using the top-of-tree GNULIB version of allocsa.c and allocsa.h
where the allocasa.h enum with 

  sa_alignment_max =  ((sa_alignment_long - 1) | (sa_alignment_double - 1)

on it is the line 96 problem. Line 106 is here:

  sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * 
sa_alignment_max

and line 54 of allocsa.c is

struct header { void *next; char room[HEADER_SIZE - sizeof (struct 
preliminary_header) + MAGIC_SIZE]; };

Is there another (more portable) method of setting up this enum that
will work for the HP/UX native compiler?

        Thanks,
        -- Mark

 --------------- extract from allocsa.h ---------------
enum
{
/* The desired alignment of memory allocations is the maximum alignment
   among all elementary types.  */
  sa_alignment_long = sa_alignof (long),
  sa_alignment_double = sa_alignof (double),
#ifdef HAVE_LONG_LONG
  sa_alignment_longlong = sa_alignof (long long),
#endif
#ifdef HAVE_LONG_DOUBLE 
  sa_alignment_longdouble = sa_alignof (long double),
#endif
  sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1)
#ifdef HAVE_LONG_LONG
                      | (sa_alignment_longlong - 1)
#endif
#ifdef HAVE_LONG_DOUBLE 
                      | (sa_alignment_longdouble - 1)
#endif
                     ) + 1,
/* The increment that guarantees room for a magic word must be >= sizeof (int)
   and a multiple of sa_alignment_max.  */
  sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * 
sa_alignment_max
};
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFBiegO3x41pRYZE/gRAtrqAJ9Po3ZExP+xiv4017lTzBt6Z/g29ACfZCfe
T1QRrD9czLNCZ0065eENGzY=
=J3nJ
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]