This is the mail archive of the
mailing list for the GDB project.
[pushed] Define __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS again (Re: GDB AIX build broken)
On 10/25/2016 02:22 AM, Pedro Alves wrote:
> On 10/25/2016 02:08 AM, David Edelsohn wrote:
>> On Mon, Oct 24, 2016 at 8:50 PM, Pedro Alves <email@example.com> wrote:
>>> On 10/25/2016 01:31 AM, Pedro Alves wrote:
>>>> On 10/25/2016 01:13 AM, David Edelsohn wrote:
>>>>> On Mon, Oct 24, 2016 at 7:00 PM, Pedro Alves <firstname.lastname@example.org> wrote:
>>>>>> That's a hint, but it can't be the fix. common-defs.h must be the
>>>>>> first file included. I suspect that gnulib's inttypes.h
>>>>>> replacement logic is broken on AIX.
>>>>> The gnulib import definitely is the commit that caused the breakage.
>>> Could it be it's the commit after the import? The one
>>> that removes __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS from
>> common-defs.h needs __STDC_FORMAT_MACROS defined before stdio.h is
>> included, as one possible solution.
> I'll do this tomorrow.
I've pushed the patch below to master.
>From 28fe4f87e0b815f4c0d9b80e0a9f3e6a53c649b3 Mon Sep 17 00:00:00 2001
From: Pedro Alves <email@example.com>
Date: Tue, 25 Oct 2016 11:47:18 +0100
Subject: [PATCH] Define __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS again.
Revert commit f6abaf7a4088 (gdb: no longer define
__STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS), with the tweak suggested
in that commit's log: the macros are now defined before any system
header is included.
This should fix AIX:
2016-10-25 Pedro Alves <firstname.lastname@example.org>
* common/common-defs.h (__STDC_CONSTANT_MACROS)
gdb/ChangeLog | 5 +++++
gdb/common/common-defs.h | 13 +++++++++++++
2 files changed, 18 insertions(+)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5541086..40fab9b 100644
@@ -1,3 +1,8 @@
+2016-10-25 Pedro Alves <email@example.com>
+ * common/common-defs.h (__STDC_CONSTANT_MACROS)
+ (__STDC_LIMIT_MACROS): Define.
2016-10-25 Yao Qi <firstname.lastname@example.org>
diff --git a/gdb/common/common-defs.h b/gdb/common/common-defs.h
index 9b5d853..3d5ff18 100644
@@ -27,6 +27,19 @@
+ "On some hosts that predate C++11, when using C++ one must define
+ __STDC_CONSTANT_MACROS to make visible the definitions of constant
+ macros such as INTMAX_C, and one must define __STDC_LIMIT_MACROS to
+ make visible the definitions of limit macros such as INTMAX_MAX.".
+ Must do this before including any system header, since system
+ headers may include stdint.h. */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1