From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Joe Conway <mail(at)joeconway(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Mike Palmiotto <mike(dot)palmiotto(at)crunchydata(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: partitioned tables and contrib/sepgsql |
Date: | 2017-04-05 16:04:00 |
Message-ID: | 19727.1491408240@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Joe Conway <mail(at)joeconway(dot)com> writes:
> On 04/04/2017 09:58 PM, Tom Lane wrote:
>> Another issue is whether you won't get compiler complaints about
>> redefinition of the "true" and "false" macros. But those would
>> likely only be warnings, not flat-out errors.
> I have not been able to generate warnings or errors around "true" and
> "false".
Interesting. Poking at it on a Fedora 25 machine, I also see a
bool-type-related warning in sepgsql/label.c, but nothing around macro
redefinitions. In particular, I find that
#include "postgres.h"
#include <stdbool.h>
is completely silent. On the other hand,
#include "postgres.h"
#define bool _Bool
#define true 1
#define false 0
generates the warnings I expected about "true" and "false" being
redefined. Which is damn odd, because I copied-and-pasted those
lines out of
/usr/lib/gcc/x86_64-redhat-linux/6.3.1/include/stdbool.h
Conclusion: Fedora's gcc is playing fast and loose somehow with the
command "#include <stdbool.h>"; that does not include the file
you'd think it does, it does something magic inside the compiler.
The magic evidently includes not complaining about duplicate macro
definitions for true and false.
Anyway, I'd recommend that we do something like
#include <selinux/label.h>
+
+/*
+ * <selinux/label.h> includes <stdbool.h>, which creates an incompatible
+ * #define for bool. Get rid of that so we can use our own typedef.
+ * (For obscure reasons, the "true" and "false" macros don't cause issues.)
+ */
+ #undef bool
and call it good.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-04-05 16:05:48 | Re: [PATCH] Remove unused argument in btree_xlog_split |
Previous Message | Peter Eisentraut | 2017-04-05 15:56:31 | Re: partitioned tables and contrib/sepgsql |