]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: hpack: hpack-tbl-t.h uses VAR_ARRAY but does not include compiler.h
authorChristian Ruppert <idl0r@qasl.de>
Mon, 9 Nov 2020 08:15:21 +0000 (09:15 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 22 Dec 2020 09:18:07 +0000 (10:18 +0100)
This fixes building hpack from contrib, which failed because of the
undeclared VAR_ARRAY:

make -C contrib/hpack
...
cc -O2 -Wall -g -I../../include -fwrapv -fno-strict-aliasing   -c -o gen-enc.o gen-enc.c
In file included from gen-enc.c:18:
../../include/haproxy/hpack-tbl-t.h:105:23: error: 'VAR_ARRAY' undeclared here (not in a function)
  105 |  struct hpack_dte dte[VAR_ARRAY]; /* dynamic table entries */
...

As discussed in the thread below, let's redefine VAR_ARRAY in this file
so that it remains self-sustaining:

   https://www.mail-archive.com/haproxy@formilux.org/msg39212.html

include/haproxy/hpack-tbl-t.h

index 344f665dd067c32996aa90aca4e90d676ed7c54b..4e5d5367319b66d23e01e0bf6b9a89f5a612d91f 100644 (file)
  * data bytes, which is larger than the 4064 the protocol requires (4096 - 32).
  */
 
+/*
+ * Gcc before 3.0 needs [0] to declare a variable-size array
+ */
+#ifndef VAR_ARRAY
+#if defined(__GNUC__) && (__GNUC__ < 3)
+#define VAR_ARRAY      0
+#else
+#define VAR_ARRAY
+#endif
+#endif
+
 /* One dynamic table entry descriptor */
 struct hpack_dte {
        uint32_t addr;  /* storage address, relative to the dte address */