From patchwork Wed Sep 26 13:57:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 29551 Received: (qmail 101037 invoked by alias); 26 Sep 2018 13:57:48 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 100643 invoked by uid 89); 26 Sep 2018 13:57:47 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: gateway24.websitewelcome.com Received: from gateway24.websitewelcome.com (HELO gateway24.websitewelcome.com) (192.185.51.209) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 26 Sep 2018 13:57:45 +0000 Received: from cm10.websitewelcome.com (cm10.websitewelcome.com [100.42.49.4]) by gateway24.websitewelcome.com (Postfix) with ESMTP id 19D0F470A1 for ; Wed, 26 Sep 2018 08:57:44 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id 5AJKgHcQtBcCX5AJigeAPG; Wed, 26 Sep 2018 08:57:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=7f5H+OrF3rkBGTNVJ8bmW/vrDyBh3C2OiI9dTPc+l5k=; b=Iov013UQehOkD8DesV0qdw1HzW /dyLhgxx9vfAyN1Z4SMOeQpmJzsiiNwAGxIT787bMS0NsaN3wMid1Wg5Iw5+fJ9AsOUOOXOOPFpdX ZMzmBEoShjyyj6VcQ3+P0cP4m; Received: from 97-122-190-66.hlrn.qwest.net ([97.122.190.66]:46240 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1g5AJJ-001nfz-U1; Wed, 26 Sep 2018 08:57:02 -0500 From: Tom Tromey To: Andreas Schwab Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH] Do not accidentally include in-tree readline headers References: <20180926125834.8845-1-tom@tromey.com> Date: Wed, 26 Sep 2018 07:57:00 -0600 In-Reply-To: (Andreas Schwab's message of "Wed, 26 Sep 2018 15:12:06 +0200") Message-ID: <87r2hgjr9v.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.50 (gnu/linux) MIME-Version: 1.0 >>>>> "Andreas" == Andreas Schwab writes: Andreas> On Sep 26 2018, Tom Tromey wrote: >> This patch fixes the problem in a mildly hacky way: remove the >> offending -I option, and change gdb to use #include "../opcodes/..." >> instead. This continues to make it clear where the header comes from, >> without allowing incorrect behavior. Andreas> Most of these headers are "opcode/...", not "opcodes/...". Whoops, I made the patch via perl and didn't really read it. Here's a better one. Tom commit d6df2198c8b7b42a351b00507f089de9e087ac6c Author: Tom Tromey Date: Wed Sep 26 06:54:17 2018 -0600 Do not accidentally include in-tree readline headers PR build/17077 points out that when --with-system-readline is given, gdb will still pick up the in-tree readline headers. Normally this is not a big problem, because readline is very stable and so the ABI does not change much; but it is clearly a bug to do this, and could bite at some point. The basic problem is that OPCODES_CFLAGS uses -I$(OPCODES_SRC)/.. so that #include "opcodes/..." works. However, this also makes it so the srcdir. This patch fixes the problem in a mildly hacky way: remove the offending -I option, and change gdb to use #include "../opcodes/..." instead. This continues to make it clear where the header comes from, without allowing incorrect behavior. Tested by rebuilding and then looking at the *.Po files. gdb/ChangeLog 2018-09-26 Tom Tromey PR build/17077: * Makefile.in (OPCODES_CFLAGS): Remove "-I$(OPCODES_SRC)/..". * arc-tdep.c, frv-tdep.c, lm32-tdep.c, mep-tdep.c, microblaze-tdep.c, or1k-tdep.h: Use ../opcodes, not opcodes, in #include. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fa1ca59cc0..7f13a1ceb4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2018-09-26 Tom Tromey + + PR build/17077: + * Makefile.in (OPCODES_CFLAGS): Remove "-I$(OPCODES_SRC)/..". + * arc-tdep.c, frv-tdep.c, lm32-tdep.c, mep-tdep.c, + microblaze-tdep.c, or1k-tdep.h: Use ../opcodes, not opcodes, in + #include. + 2018-09-26 Tom Tromey * valops.c (auto_abandon): Remove dead code. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 3b158fa1db..3d28120fb8 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -446,8 +446,7 @@ OPCODES = $(OPCODES_DIR)/libopcodes.a # Where are the other opcode tables which only have header file # versions? OP_INCLUDE = $(INCLUDE_DIR)/opcode -# Some source files like to use #include "opcodes/file.h" -OPCODES_CFLAGS = -I$(OP_INCLUDE) -I$(OPCODES_SRC)/.. +OPCODES_CFLAGS = -I$(OP_INCLUDE) # The simulator is usually nonexistent; targets that include one # should set this to list all the .o or .a files to be linked in. diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index fad9170978..b9dcbbc1e5 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -33,7 +33,7 @@ /* ARC header files. */ #include "opcode/arc.h" -#include "opcodes/arc-dis.h" +#include "../opcodes/arc-dis.h" #include "arc-tdep.h" /* Standard headers. */ diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 1eed441f2b..dafab75654 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -29,7 +29,7 @@ #include "dis-asm.h" #include "sim-regno.h" #include "gdb/sim-frv.h" -#include "opcodes/frv-desc.h" /* for the H_SPR_... enums */ +#include "../opcodes/frv-desc.h" /* for the H_SPR_... enums */ #include "symtab.h" #include "elf-bfd.h" #include "elf/frv.h" diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c index 942852140d..694d30ee1c 100644 --- a/gdb/lm32-tdep.c +++ b/gdb/lm32-tdep.c @@ -35,7 +35,7 @@ #include "regcache.h" #include "trad-frame.h" #include "reggroups.h" -#include "opcodes/lm32-desc.h" +#include "../opcodes/lm32-desc.h" #include /* Macros to extract fields from an instruction. */ diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c index 69e7fdda59..e8ceec9288 100644 --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c @@ -48,8 +48,8 @@ /* Get the user's customized MeP coprocessor register names from libopcodes. */ -#include "opcodes/mep-desc.h" -#include "opcodes/mep-opc.h" +#include "../opcodes/mep-desc.h" +#include "../opcodes/mep-opc.h" /* The gdbarch_tdep structure. */ diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c index 9bac8643c4..63095d3ede 100644 --- a/gdb/microblaze-tdep.c +++ b/gdb/microblaze-tdep.c @@ -34,8 +34,8 @@ #include "dwarf2-frame.h" #include "osabi.h" #include "target-descriptions.h" -#include "opcodes/microblaze-opcm.h" -#include "opcodes/microblaze-dis.h" +#include "../opcodes/microblaze-opcm.h" +#include "../opcodes/microblaze-dis.h" #include "microblaze-tdep.h" #include "remote.h" diff --git a/gdb/or1k-tdep.h b/gdb/or1k-tdep.h index 4a93540c3a..b630c77053 100644 --- a/gdb/or1k-tdep.h +++ b/gdb/or1k-tdep.h @@ -24,8 +24,8 @@ #define TARGET_OR1K #endif -#include "opcodes/or1k-desc.h" -#include "opcodes/or1k-opc.h" +#include "../opcodes/or1k-desc.h" +#include "../opcodes/or1k-opc.h" /* General Purpose Registers */ #define OR1K_ZERO_REGNUM 0