On Fri, Jul 02, 2021 at 04:47:27PM +0100, Stuart Henderson wrote: > On 2021/07/02 16:46, Theo Buehler wrote: > > zlib 1.2.9 added an uncompress2 function that clashes with swish's > > internal compress2 function. The build is fixed by the following > > mechanical diff that renames the internal function to swish_uncompress2 > > as was done in alpine: > > > > https://git.alpinelinux.org/aports/tree/main/swish-e/zlib-shadowing.patch?h=3.14-stable > > > > I couldn't come up with a preprocessor trick that would allow avoiding > > the bulk rename, but hopefully there's something cleverer that would > > avoid a big diff. > > > > HOMEPAGE is broken, so I removed it. > > here's the trick :) the actual symbol in libz is z_uncompress2, we can > just get rid of the macro then there's no more conflict.
Unfortunately that doesn't work. It's not a linking problem (which your trick could have solved potentially) but a problem of conflicting prototypes in "compress.h" and <zlib.h>: In file included from compress.c:54: /usr/include/zlib.h:1283:21: error: conflicting types for 'uncompress2' ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, ^ ./compress.h:39:5: note: previous declaration is here int uncompress2(unsigned char **buffer); (The second problem is that I wrote compress2 by accident. You'd need "#undef uncompress2" in your compress.c patch, and the patch for docprop_write.c is not necessary) Unless you have another clever idea, I suggest to go with my original diff, pointing to your hosted tarball and with 'make update-plist'.