Sun CC 5.8 fails with a strange error compiling diff-delta.c that looks like an error in Sun's compiler to me: $ cc -V cc: Sun C 5.8 Patch 121015-02 2006/03/29 $ cc -o diff-delta.o -c -I/opt/gnu/include -D__EXTENSIONS__ \ -DSHA1_HEADER='<openssl/sha.h>' -DNO_STRCASESTR -DNO_STRLCPY \ -DNO_SETENV -DNO_UNSETENV diff-delta.c "diff-delta.c", line 251: identifier redeclared: create_delta current : function(pointer to const struct delta_index \ {pointer to const void src_buf, unsigned long src_size, \ unsigned int hash_mask, array[-1] of pointer to struct index_entry {..} hash},\ pointer to const void, unsigned long, pointer to unsigned long, \ unsigned long) returning pointer to void previous: function(pointer to const struct delta_index \ {pointer to const void src_buf, unsigned long src_size, \ unsigned int hash_mask, array[-1] of pointer to struct index_entry {..} hash},\ pointer to const void, unsigned long, pointer to unsigned long, \ unsigned long) returning pointer to void : "delta.h", line 37 cc: acomp failed for diff-delta.c make: *** [diff-delta.o] Error 2 Yes, the two prototypes are identical. Seems like the compiler has problems with the opaque struct. When I played around with it, I was surprised when I found that Sun CC actually compiled this file after I removed the const qualifier from the first parameter of the create_delta() function. Does anybody have a better explanation than an error in the compiler? Regards, Dennis diff --git a/delta.h b/delta.h index 7b3f86d..ec9147c 100644 --- a/delta.h +++ b/delta.h @@ -34,11 +34,12 @@ extern void free_delta_index(struct delt * must be freed by the caller. */ extern void * -create_delta(const struct delta_index *index, +create_delta(struct delta_index *index, const void *buf, unsigned long bufsize, unsigned long *delta_size, unsigned long max_delta_size); -/* +/*l + * diff_delta: create a delta from source buffer to target buffer * * If max_delta_size is non-zero and the resulting delta is to be larger diff --git a/diff-delta.c b/diff-delta.c index 8b9172a..802be76 100644 --- a/diff-delta.c +++ b/diff-delta.c @@ -245,7 +245,7 @@ void free_delta_index(struct delta_index #define MAX_OP_SIZE (5 + 5 + 1 + RABIN_WINDOW + 7) void * -create_delta(const struct delta_index *index, +create_delta(struct delta_index *index, const void *trg_buf, unsigned long trg_size, unsigned long *delta_size, unsigned long max_size) { - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html