The vendor compilers on both IRIX and HP-UX object to three spots in header.c, where a void * is cast to some other type and then a change is made to the pointer (in two cases, pointer addition) Reproducible: Always Steps to Reproduce: 1. configure; make on IRIX or HP-UX, with the vendor compiler on either. The IRIX compiler spake thusly: cc-1133 cc: ERROR File = header.c, Line = 263 Expression must be a modifiable lvalue. for (; ie.info.count > 0; ie.info.count--, ((int_32 *)t) += 1) ^ cc-1133 cc: ERROR File = header.c, Line = 267 Expression must be a modifiable lvalue. for (; ie.info.count > 0; ie.info.count--, ((int_16 *)t) += 1) ^ cc-1133 cc: ERROR File = header.c, Line = 302 Expression must be a modifiable lvalue. ei = (int_32 *) *p = xmalloc(count); ^ The HP-UX compiler says: cc: "header.c", line 263: warning 524: Cast (non-lvalue) appears on left-hand side of assignment. cc: "header.c", line 263: error 1549: Modifiable lvalue required for assignment operator. cc: "header.c", line 267: warning 524: Cast (non-lvalue) appears on left-hand side of assignment. cc: "header.c", line 267: error 1549: Modifiable lvalue required for assignment operator. cc: "header.c", line 302: warning 524: Cast (non-lvalue) appears on left-hand side of assignment. cc: "header.c", line 302: error 1549: Modifiable lvalue required for assignment operator. The Compaq compiler on Tru64 also points out those three lines as questionable, but it lets them off with just a warning.
Fixed in rpm CVS, should be in rpm-4.0.3-0.4 and later.