From: Greg T. <gd...@le...> - 2024-07-10 00:22:55
|
I'm building on NetBSD 10 amd64. Building this is going much better than my memory of 5.3.4 (which I'm happy to ignore as superceded; I am seeing pre1 as sort of alpha, maybe before, to head to a release). But it may be exactly the same and I gave up earlier, even though this seems obviously fairly easy to resolve. I was able to drop multiple patches that removed bashisms (test ==, test [[), some of which I reported long ago and some of which I probably didn't. I'm so far down to 1 patch to find lpstat where pkgsrc puts it. I noticed configure looking for gnu11. I can't find in README where this is described, or if it's new. Most of the build was fine, and not even any warnings. There are a bunch of gtk deprecation warnings, but I'm guessing they are well known. If not happy to extract and send them. I have residual compile failures (make -k after previous make -k), and it looks like N instances of the same issue. tldr: It seems like the system endian defines are being overwritten. I'll look harder. gmake[3]: Entering directory '/tmp/work/print/gutenprint-lib/work/gutenprint-5.3.5-pre1/src/cups' CC gutenprint_5.3-gutenprint.o In file included from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/http.h:40, from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/ipp.h:19, from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/cups.h:28, from /tmp/work/print/gutenprint-lib/work/.buildlink/include/cups/raster.h:21, from genppd.h:56, from gutenprint.c:40: /usr/include/netinet/ip.h:57:15: error: duplicate member 'ip_v' 57 | unsigned int ip_v:4, /* version */ | ^~~~ /usr/include/netinet/ip.h:58:8: error: duplicate member 'ip_hl' 58 | ip_hl:4; /* header length */ | ^~~~~ /usr/include/netinet/ip.h:202:15: error: duplicate member 'ipt_oflw' 202 | unsigned int ipt_oflw:4, /* overflow counter */ | ^~~~~~~~ /usr/include/netinet/ip.h:203:8: error: duplicate member 'ipt_flg' 203 | ipt_flg:4; /* flags, see below */ | ^~~~~~~ In file included from /usr/include/stddef.h:37, from ../../include/gutenprint/gutenprint.h:44, from i18n.h:20, from genppd.h:36, from gutenprint.c:40: /usr/include/netinet/ip.h:252:1: error: negative width in bit-field '__ctassert1' 252 | __CTASSERT(sizeof(struct ip) == 20); | ^~~~~~~~~~ /usr/include/netinet/ip.h:253:1: error: negative width in bit-field '__ctassert2' 253 | __CTASSERT(sizeof(struct ip_timestamp) == 12); | ^~~~~~~~~~ gmake[3]: *** [Makefile:1619: gutenprint_5.3-gutenprint.o] Error 1 The header has struct ip { #if BYTE_ORDER == LITTLE_ENDIAN unsigned int ip_hl:4, /* header length */ ip_v:4; /* version */ #endif #if BYTE_ORDER == BIG_ENDIAN unsigned int ip_v:4, /* version */ ip_hl:4; /* header length */ #endif so I wonder if LITTLE_ENDIAN and BIG_ENDIAN are getting defined to the the same. On NetBSD (and perhaps other bsd): /usr/include/sys/endian.h:#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ /usr/include/sys/endian.h:#define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ and this is included by sys/types.h. Any clues appreciated. |