From patchwork Mon Apr 17 21:07:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manoj Gupta X-Patchwork-Id: 67850 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E2241385772E for ; Mon, 17 Apr 2023 21:07:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E2241385772E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1681765679; bh=cqazuSyZde3onhH50lriK2k+HFWE2p8D70ay6YM1OOs=; h=Date:Subject:To:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=e+elQ9TSJhAN9qST1YxmqnOMOVJS/raZSyoxbpozPiBddIcAHnuBFbMALmZi/Qlu+ cgtsCGyfpzJIaNJUYbrxI3Qjy/EUad/c9cZal4HOGhobZPJhX11lIdfMnrg59A/k0Y hXAmF8fjSH02d/CUBNwHYz7st9xjDjU5q7OakkmQ= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id 5A08D3858D28 for ; Mon, 17 Apr 2023 21:07:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5A08D3858D28 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-54f3e30726cso206416717b3.22 for ; Mon, 17 Apr 2023 14:07:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681765654; x=1684357654; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cqazuSyZde3onhH50lriK2k+HFWE2p8D70ay6YM1OOs=; b=EEd0/USNZRdHzzqSsAUMolXFXMBQsBdc4n+teebmpZBlPbUcgn2mqwce7LkkiIpeVG O8wgW348cnQQDGuq7OOAZ+4llSh5Wk+r06ro/q/Ksxh0OyMDfmqTrusPZgEhfOdxO2GQ qCY7GK8E3hSvpfA+Hzw6Jjyz6OLQVSFH1TC3tnsbCUWwpSRflc7nlEZJJAyjJdrt4hU5 TR7KFCLSrfp+UlQbhcP69+DD34ULFVzWftYC5B4PLe+V2YyanPiSpOrVFMMC8/gTweH5 KQvOJ+SAEku6w4ZvmSLCWK6/dNO4tmoAJasPaE2s9YUOILgtsr34jioAW4XeHV7o3aHn ZoCw== X-Gm-Message-State: AAQBX9f55d3d/Abxip/iD64mem5w0Gjd3sMRMJOZjIlduF1CuUeUb/qA oz7uAV5sC0l9b2Khny1LjVr94c8aFo9pJxwMeSWPB1J2pC3xyruxSxgl+2gFlE1EV/7wY53IURD WS5tjWfMSiW9oTyvMuTcaeSmo1Rs07AWmtspYFkcaBNOxmPHzqbja2q6r+TkX5Qfff6mjAoJEBq xu8w== X-Google-Smtp-Source: AKy350ajXmsECXVlS0yHBLl/KrDZIQy647l6I//oHtyguTjUVrZ4O07FDgNjSZRHN5OZoylnaCp7sBrqrlwpSM9Y X-Received: from manojg.c.googlers.com ([fda3:e722:ac3:cc00:24:72f4:c0a8:3eb7]) (user=manojgupta job=sendgmr) by 2002:a25:cc07:0:b0:b8b:fe5f:2eaa with SMTP id l7-20020a25cc07000000b00b8bfe5f2eaamr8420853ybf.2.1681765654659; Mon, 17 Apr 2023 14:07:34 -0700 (PDT) Date: Mon, 17 Apr 2023 14:07:30 -0700 Mime-Version: 1.0 X-Mailer: git-send-email 2.40.0.634.g4ca3ef3211-goog Message-ID: <20230417210730.3571996-1-manojgupta@google.com> Subject: [PATCH v2] gdb: Fix building with latest libc++ To: gdb-patches@sourceware.org Cc: manojgupta@google.com X-Spam-Status: No, score=-21.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Manoj Gupta via Gdb-patches From: Manoj Gupta Reply-To: Manoj Gupta Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" Latest libc++[1] causes transitive include to when or header is included. This causes gdb to not build[2] since defines isupper/islower etc. functions that are explicitly macroed-out in safe-ctype.h to prevent their use. Use the suggestion from libc++ to include internally when building in C++ mode to avoid build errors. Use safe-gdb-ctype.h as the include instead of "safe-ctype.h" to keep this isolated to gdb since rest of binutils does not seem to use much C++. [1]: https://reviews.llvm.org/D144331 [2]: https://issuetracker.google.com/issues/277967395 --- gdb/cp-name-parser.y | 2 +- gdb/cp-support.c | 2 +- gdb/dictionary.c | 2 +- gdb/disasm.c | 2 +- gdb/dwarf2/cooked-index.c | 2 +- gdb/mi/mi-cmd-stack.c | 2 +- gdb/minsyms.c | 2 +- gdb/or1k-tdep.c | 2 +- gdb/printcmd.c | 2 +- gdb/riscv-tdep.c | 2 +- gdb/tui/tui-layout.c | 2 +- gdb/tui/tui-winsource.c | 2 +- gdb/xml-support.c | 2 +- gdbsupport/common-utils.cc | 2 +- gdbsupport/gdb-safe-ctype.h | 8 +++++++- 15 files changed, 21 insertions(+), 15 deletions(-) diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index 175e763a423..80188074202 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -40,7 +40,7 @@ #include "defs.h" #include -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "demangle.h" #include "cp-support.h" #include "c-support.h" diff --git a/gdb/cp-support.c b/gdb/cp-support.c index f39c5d051dd..e804024c08f 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -36,7 +36,7 @@ #include "namespace.h" #include #include "gdbsupport/gdb_setjmp.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/selftest.h" #include "gdbsupport/gdb-sigmask.h" #include diff --git a/gdb/dictionary.c b/gdb/dictionary.c index 403508adfdc..4f8df240a3e 100644 --- a/gdb/dictionary.c +++ b/gdb/dictionary.c @@ -26,7 +26,7 @@ #include "symtab.h" #include "buildsym.h" #include "dictionary.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include #include "language.h" diff --git a/gdb/disasm.c b/gdb/disasm.c index 03cd4b7ee02..e6b31bf3633 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -27,7 +27,7 @@ #include "gdbcmd.h" #include "dis-asm.h" #include "source.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include #include "gdbsupport/gdb_optional.h" #include "valprint.h" diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index 1b1a16b1ae2..25635d9b72e 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -29,7 +29,7 @@ #include "observable.h" #include "run-on-main-thread.h" #include -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/selftest.h" #include #include diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index 4c4662ab5d7..b8169a67e44 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -35,7 +35,7 @@ #include #include "mi-parse.h" #include "gdbsupport/gdb_optional.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "inferior.h" #include "observable.h" diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 3fa07f47b9f..e269420e87f 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -52,7 +52,7 @@ #include "cli/cli-utils.h" #include "gdbsupport/symbol.h" #include -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/parallel-for.h" #include "inferior.h" diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c index 0d520661f09..5cef1fa279c 100644 --- a/gdb/or1k-tdep.c +++ b/gdb/or1k-tdep.c @@ -29,7 +29,7 @@ #include "gdbtypes.h" #include "target.h" #include "regcache.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "reggroups.h" #include "arch-utils.h" #include "frame-unwind.h" diff --git a/gdb/printcmd.c b/gdb/printcmd.c index dd92e31d31b..d732c6d704d 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -53,7 +53,7 @@ #include "source.h" #include "gdbsupport/byte-vector.h" #include "gdbsupport/gdb_optional.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/rsp-low.h" /* Chain containing all defined memory-tag subcommands. */ diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 144eb7e0132..500279e1ae9 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -56,7 +56,7 @@ #include "prologue-value.h" #include "arch/riscv.h" #include "riscv-ravenscar-thread.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" /* The stack must be 16-byte aligned. */ #define SP_ALIGNMENT 16 diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 01d243ba9a1..50c568fb7d7 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -43,7 +43,7 @@ #include "tui/tui-layout.h" #include "tui/tui-source.h" #include "gdb_curses.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" static void extract_display_start_addr (struct gdbarch **, CORE_ADDR *); diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 84f9d97c554..3c4ce501e5e 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -28,7 +28,7 @@ #include "source.h" #include "objfiles.h" #include "filenames.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "tui/tui.h" #include "tui/tui-data.h" diff --git a/gdb/xml-support.c b/gdb/xml-support.c index 255c10864c5..0c98dc7e6b4 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -22,7 +22,7 @@ #include "xml-builtin.h" #include "xml-support.h" #include "gdbsupport/filestuff.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include #include diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc index 4a96f2c0e11..a2dde636011 100644 --- a/gdbsupport/common-utils.cc +++ b/gdbsupport/common-utils.cc @@ -20,7 +20,7 @@ #include "common-defs.h" #include "common-utils.h" #include "host-defs.h" -#include "safe-ctype.h" +#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/gdb-xfree.h" void * diff --git a/gdbsupport/gdb-safe-ctype.h b/gdbsupport/gdb-safe-ctype.h index f9743ba26f1..ed522dc72dd 100644 --- a/gdbsupport/gdb-safe-ctype.h +++ b/gdbsupport/gdb-safe-ctype.h @@ -23,7 +23,9 @@ /* After safe-ctype.h is included, we can no longer use the host's ctype routines. Trying to do so results in compile errors. Code that uses safe-ctype.h that wants to refer to the locale-dependent - ctype functions must call these wrapper versions instead. */ + ctype functions must call these wrapper versions instead. + When compiling in C++ mode, aldo include before "safe-ctype.h" + which also defines is* functions. */ static inline int gdb_isprint (int ch) @@ -41,6 +43,10 @@ gdb_isprint (int ch) #undef ISUPPER #undef ISXDIGIT +#ifdef __cplusplus +#include +#endif + #include "safe-ctype.h" #endif