[{"id":1768937,"web_url":"http://patchwork.ozlabs.org/comment/1768937/","msgid":"<87mv5wppmd.fsf@redhat.com>","list_archive_url":null,"date":"2017-09-15T04:11:54","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":10371,"url":"http://patchwork.ozlabs.org/api/people/10371/","name":"Sergio Durigan Junior","email":"sergiodj@redhat.com"},"content":"Ping.\n\nOn Friday, September 01 2017, I wrote:\n\n> On Wednesday, August 23 2017, Pedro Alves wrote:\n>\n>> On 08/23/2017 05:17 AM, Sergio Durigan Junior wrote:\n>>> Hi there,\n>>> \n>>> This is a series of two patches, one for GDB and one for GCC, which aims\n>>> to improve the detection and handling of triplets present on compiler\n>>> names.  The motivation for this series was mostly the fact that GDB's\n>>> \"compile\" command is broken on Debian unstable, as can be seen here:\n>>> \n>>>   <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851146>\n>>> \n>>> The reason for the failure is the fact that Debian compiles GCC using\n>>> the --program-{prefix,suffix} options from configure in order to name\n>>> the compiler using the full triplet (i.e., Debian's GCC is not merely\n>>> named \"gcc\", but e.g. \"x86_64-linux-gnu-gcc-7\"), which end up naming the\n>>> C_COMPILER_NAME and CP_COMPILER_NAME defines with the specified prefix\n>>> and suffix.  Therefore, the regexp being used to match the compiler name\n>>> is wrong because it doesn't take into account the fact that the defines\n>>> may already contain the triplets.\n>>\n>> As discussed on IRC, I think the problem is that C_COMPILER_NAME\n>> in libcc1 includes the full triplet in the first place.  I think\n>> that it shouldn't.  I think that C_COMPILER_NAME should always\n>> be \"gcc\".\n>>\n>> The problem is in bootstrapping code, before there's a plugin\n>> yet -- i.e.., in the code that libcc1 uses to find the compiler (which\n>> then loads a plugin that libcc1 talks with).\n>>\n>> Please bear with me while I lay down my rationale, so that we're\n>> in the same page.\n>>\n>> C_COMPILER_NAME seems to include the prefix currently in an attempt\n>> to support cross debugging, or more generically, --enable-targets=all\n>> in gdb, but the whole thing doesn't really work as intended if\n>> C_COMPILER_NAME already includes a target prefix.\n>>\n>> IIUC the libcc1/plugin design, a single \"libcc1.so\" (what gdb loads,\n>> not the libcc1plugin compiler plugin) should work with any compiler in\n>> the PATH, in case you have several in the system.  E.g., one for\n>> each arch.\n>>\n>> Let me expand.\n>>\n>> The idea is that gdb always dlopens \"libcc1.so\", by that name exactly.\n>> Usually that'll open the libcc1.so installed in the system, e.g.,\n>> \"/usr/lib64/libcc1.so\", which for convenience was originally built from the\n>> same source tree as the systems's compiler was built.  You could force gdb to\n>> load some other libcc1.so, e.g., by tweaking LD_LIBRARY_PATH of course,\n>> but you shouldn't need to.\n>>\n>> libcc1.so is responsible for finding a compiler that targets the\n>> architecture of the inferior that the user is debugging in gdb.\n>> E.g., say you're cross debugging for arm-none-eabi, on a\n>> x86-64 Fedora host.  GDB knows the target inferior's architecture, and passes\n>> down to (the system) libcc1 a triplet regex like \"arm*-*eabi*\" or\n>> similar to libcc1,.  libcc1 appends \"-\" + C_COMPILER_NAME to that regex,\n>> generating something like \"arm*-*eabi*-gcc\", and then looks for binaries\n>> in PATH that match that regex.  When one is found, e.g., \"arm-none-eabi-gcc\",\n>> libcc1 forks/execs that compiler, passing it \"-fplugin=libcc1plugin\".\n>> libcc1 then communicates with that compiler's libcc1plugin plugin\n>> via a socket.\n>>\n>> In this scheme, \"libcc1.so\", the library that gdb loads, has no\n>> target-specific logic at all.  It should work with any compiler\n>> in the system, for any target/arch.  All it does is marshall the gcc/gdb\n>> interface between the gcc plugin and gdb, it is not linked against gcc.\n>> That boundary is versioned, and ABI-stable.  So as long as the\n>> libcc1.so that gdb loads understands the same API version of the gcc/gdb\n>> interface API as gdb understands, it all should work.  (The APIs\n>> are always extended keeping backward compatibility.)\n>>\n>> So in this scheme, having the \"C_COMPILER_NAME\" macro in libcc1\n>> include the target prefix for the --target that the plugin that\n>> libcc1 is built along with, seems to serve no real purpose, AFAICT.\n>> It's just getting in the way.\n>>\n>> I.e., something like:\n>>\n>>   \"$gdb_specified_triplet_re\" + \"-\" + C_COMPILER_NAME\n>>\n>> works if C_COMPILER_NAME is exactly \"gcc\", but not if C_COMPILER_NAME is already:\n>>\n>>   \"$whatever_triplet_libcc1_happened_to_be_built_with\" + \"-gcc\"\n>>\n>> because we end up with:\n>>\n>>   \"$gdb_specified_triplet_re\" + \"-\" \"$whatever_triplet_libcc1_happened_to_be_built_with\" +  \"-gcc\"\n>>\n>> which is the problem case.\n>>\n>> In sum, I think the libcc1.so (not the plugin) should _not_ have baked\n>> in target awareness, and thus C_COMPILER_NAME should always be \"gcc\", and\n>> then libcc1's regex should be adjusted to also tolerate a suffix in\n>> the final compiler binary name regex.\n>>\n>> WDYT?\n>\n> As I replied before, I agree with Pedro's rationale here and his idea\n> actually makes my initial patch much simpler.  By renaming\n> C_COMPILER_NAME (and the new CP_COMPILER_NAME) to just \"gcc\" (or \"g++\"),\n> the Debian bug I was fixing is solved and we don't have to bother with\n> breaking compatibility with older gdb's packaged by the distros, because\n> they will also keep working with this change.\n>\n> So I would like to propose this new patch, only for GCC, which makes\n> C_COMPILER_NAME and CP_COMPILER_NAME have \"gcc\" and \"g++\" as hardcoded\n> names, respectively.  In the commit log, I intend to include Pedro's\n> rationale (above).\n>\n> What do you guys think of this new version?  It doesn't need any GDB\n> patch, and works with both Fedora and Debian.\n>\n> Thanks,\n>\n> -- \n> Sergio\n> GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36\n> Please send encrypted e-mail if possible\n> http://sergiodj.net/\n>\n> libcc1/ChangeLog:\n> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n> \t    Pedro Alves  <palves@redhat.com>\n>\n> \t* Makefile.am: Remove references to c-compiler-name.h and\n> \tcp-compiler-name.h\n> \t* Makefile.in: Regenerate.\n> \t* compiler-name.hh: New file.\n> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n> \tcompiler-name.hh.\n> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n> \tcompiler-name.hh.\n>\n> diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am\n> index 5e61a92a26b..cdba5a50b23 100644\n> --- a/libcc1/Makefile.am\n> +++ b/libcc1/Makefile.am\n> @@ -45,24 +45,6 @@ plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la\n>  cc1lib_LTLIBRARIES = libcc1.la\n>  endif\n>  \n> -BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h\n> -MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h\n> -\n> -# Put this in a header so we don't run sed for each compilation.  This\n> -# is also simpler to debug as one can easily see the constant.\n> -# FIXME: compute it in configure.ac and output it in config.status, or\n> -# introduce timestamp files for some indirection to avoid rebuilding it\n> -# every time.\n> -c-compiler-name.h: Makefile\n> -\t-rm -f $@T\n> -\techo \"#define C_COMPILER_NAME \\\"`echo gcc | sed '$(transform)'`\\\"\" > $@T\n> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n> -\n> -cp-compiler-name.h: Makefile\n> -\t-rm -f $@T\n> -\techo \"#define CP_COMPILER_NAME \\\"`echo g++ | sed '$(transform)'`\\\"\" > $@T\n> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n> -\n>  shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \\\n>      marshall.cc marshall.hh rpc.hh status.hh\n>  \n> diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in\n> index 54babb02a49..47be10025ad 100644\n> --- a/libcc1/Makefile.in\n> +++ b/libcc1/Makefile.in\n> @@ -307,8 +307,6 @@ plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin\n>  cc1libdir = $(libdir)/$(libsuffix)\n>  @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la\n>  @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la\n> -BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h\n> -MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h\n>  shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \\\n>      marshall.cc marshall.hh rpc.hh status.hh\n>  \n> @@ -344,7 +342,7 @@ libcc1_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \\\n>  \t$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \\\n>  \t$(CXXFLAGS) $(libcc1_la_LDFLAGS) $(LTLDFLAGS) -o $@\n>  \n> -all: $(BUILT_SOURCES) cc1plugin-config.h\n> +all: cc1plugin-config.h\n>  \t$(MAKE) $(AM_MAKEFLAGS) all-am\n>  \n>  .SUFFIXES:\n> @@ -567,15 +565,13 @@ GTAGS:\n>  distclean-tags:\n>  \t-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags\n>  check-am: all-am\n> -check: $(BUILT_SOURCES)\n> -\t$(MAKE) $(AM_MAKEFLAGS) check-am\n> +check: check-am\n>  all-am: Makefile $(LTLIBRARIES) cc1plugin-config.h\n>  installdirs:\n>  \tfor dir in \"$(DESTDIR)$(cc1libdir)\" \"$(DESTDIR)$(plugindir)\"; do \\\n>  \t  test -z \"$$dir\" || $(MKDIR_P) \"$$dir\"; \\\n>  \tdone\n> -install: $(BUILT_SOURCES)\n> -\t$(MAKE) $(AM_MAKEFLAGS) install-am\n> +install: install-am\n>  install-exec: install-exec-am\n>  install-data: install-data-am\n>  uninstall: uninstall-am\n> @@ -595,7 +591,6 @@ install-strip:\n>  \t    \"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'\" install; \\\n>  \tfi\n>  mostlyclean-generic:\n> -\t-test -z \"$(MOSTLYCLEANFILES)\" || rm -f $(MOSTLYCLEANFILES)\n>  \n>  clean-generic:\n>  \n> @@ -606,7 +601,6 @@ distclean-generic:\n>  maintainer-clean-generic:\n>  \t@echo \"This command is intended for maintainers to use\"\n>  \t@echo \"it deletes files that may require special tools to rebuild.\"\n> -\t-test -z \"$(BUILT_SOURCES)\" || rm -f $(BUILT_SOURCES)\n>  clean: clean-am\n>  \n>  clean-am: clean-cc1libLTLIBRARIES clean-generic clean-libtool \\\n> @@ -681,7 +675,7 @@ ps-am:\n>  \n>  uninstall-am: uninstall-cc1libLTLIBRARIES uninstall-pluginLTLIBRARIES\n>  \n> -.MAKE: all check install install-am install-strip\n> +.MAKE: all install-am install-strip\n>  \n>  .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \\\n>  \tclean-cc1libLTLIBRARIES clean-generic clean-libtool \\\n> @@ -702,21 +696,6 @@ uninstall-am: uninstall-cc1libLTLIBRARIES uninstall-pluginLTLIBRARIES\n>  override CXXFLAGS := $(filter-out -fsanitize=address,$(CXXFLAGS))\n>  override LDFLAGS := $(filter-out -fsanitize=address,$(LDFLAGS))\n>  \n> -# Put this in a header so we don't run sed for each compilation.  This\n> -# is also simpler to debug as one can easily see the constant.\n> -# FIXME: compute it in configure.ac and output it in config.status, or\n> -# introduce timestamp files for some indirection to avoid rebuilding it\n> -# every time.\n> -c-compiler-name.h: Makefile\n> -\t-rm -f $@T\n> -\techo \"#define C_COMPILER_NAME \\\"`echo gcc | sed '$(transform)'`\\\"\" > $@T\n> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n> -\n> -cp-compiler-name.h: Makefile\n> -\t-rm -f $@T\n> -\techo \"#define CP_COMPILER_NAME \\\"`echo g++ | sed '$(transform)'`\\\"\" > $@T\n> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n> -\n>  # Tell versions [3.59,3.63) of GNU make to not export all variables.\n>  # Otherwise a system limit (for SysV at least) may be exceeded.\n>  .NOEXPORT:\n> diff --git a/libcc1/compiler-name.hh b/libcc1/compiler-name.hh\n> new file mode 100644\n> index 00000000000..30cdc41838b\n> --- /dev/null\n> +++ b/libcc1/compiler-name.hh\n> @@ -0,0 +1,29 @@\n> +/* The names of the compilers we use.\n> +   Copyright (C) 2017 Free Software Foundation, Inc.\n> +\n> +This file is part of GCC.\n> +\n> +GCC is free software; you can redistribute it and/or modify it under\n> +the terms of the GNU General Public License as published by the Free\n> +Software Foundation; either version 3, or (at your option) any later\n> +version.\n> +\n> +GCC is distributed in the hope that it will be useful, but WITHOUT ANY\n> +WARRANTY; without even the implied warranty of MERCHANTABILITY or\n> +FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n> +for more details.\n> +\n> +You should have received a copy of the GNU General Public License\n> +along with GCC; see the file COPYING3.  If not see\n> +<http://www.gnu.org/licenses/>.  */\n> +\n> +#ifndef COMPILER_NAME_H\n> +#define COMPILER_NAME_H\n> +\n> +// C compiler name.\n> +#define C_COMPILER_NAME \"gcc\"\n> +\n> +// C++ compiler name.\n> +#define CP_COMPILER_NAME \"g++\"\n> +\n> +#endif // ! COMPILER_NAME_H\n> diff --git a/libcc1/libcc1.cc b/libcc1/libcc1.cc\n> index 0ef6c112dae..1a20dd941a4 100644\n> --- a/libcc1/libcc1.cc\n> +++ b/libcc1/libcc1.cc\n> @@ -37,7 +37,7 @@ along with GCC; see the file COPYING3.  If not see\n>  #include \"libiberty.h\"\n>  #include \"xregex.h\"\n>  #include \"findcomp.hh\"\n> -#include \"c-compiler-name.h\"\n> +#include \"compiler-name.hh\"\n>  #include \"intl.h\"\n>  \n>  struct libcc1;\n> diff --git a/libcc1/libcp1.cc b/libcc1/libcp1.cc\n> index bbd8488af93..b4f9710e0e2 100644\n> --- a/libcc1/libcp1.cc\n> +++ b/libcc1/libcp1.cc\n> @@ -37,7 +37,7 @@ along with GCC; see the file COPYING3.  If not see\n>  #include \"libiberty.h\"\n>  #include \"xregex.h\"\n>  #include \"findcomp.hh\"\n> -#include \"cp-compiler-name.h\"\n> +#include \"compiler-name.hh\"\n>  #include \"intl.h\"\n>  \n>  struct libcp1;","headers":{"Return-Path":"<gcc-patches-return-462197-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462197-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"uSClLe0t\"; dkim-atps=neutral","sourceware.org; auth=none","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=sergiodj@redhat.com"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xthn70H3wz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 15 Sep 2017 14:12:09 +1000 (AEST)","(qmail 101365 invoked by alias); 15 Sep 2017 04:12:01 -0000","(qmail 101342 invoked by uid 89); 15 Sep 2017 04:12:00 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tFri, 15 Sep 2017 04:11:56 +0000","from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.14])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id 4729881DEA;\n\tFri, 15 Sep 2017 04:11:55 +0000 (UTC)","from localhost (unused-10-15-17-193.yyz.redhat.com\n\t[10.15.17.193])\tby smtp.corp.redhat.com (Postfix) with ESMTPS\n\tid EBA306D288; Fri, 15 Sep 2017 04:11:54 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=EUs5bZae/NlIrMOU\n\tBXZL572GG1nW/q4+Jdysb/YD84bSlWmYKQIB6PPes2IuELsYp5Zc3GI7pH6+RG+o\n\th9Znzo7IZP+vUD6elA4CjEMM0cxB2C8afGYLQiCywU4F/dW3CtM8cY7BYArEZy59\n\tlw5fdPk6K7ijiX/N9jfI0hOuVHM=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=ugfDcsYwTnwFmApx4A5v3Y\n\tn48Lg=; b=uSClLe0tYLDp8Omlsinw/dJsyVeI4OH6rpTXEUM13LIFVuOHgiJMcU\n\t0sh9qH3oywaQvKCqGVWiYG/jesW7q44Aj1rjIXtHJTiEsai7BVaL4dzAoJurZC0S\n\tSoTNDdbBt9Y/paQKq85M4AZftHXIJ9HemazuBB5hVZR2EDff/Tywc=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-25.9 required=5.0 tests=BAYES_00, GIT_PATCH_0,\n\tGIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tKAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mx1.redhat.com","DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 4729881DEA","From":"Sergio Durigan Junior <sergiodj@redhat.com>","To":"Pedro Alves <palves@redhat.com>","Cc":"GDB Patches <gdb-patches@sourceware.org>,\n\tGCC Patches <gcc-patches@gcc.gnu.org>,\n\tTom Tromey <tom@tromey.com>, Keith Seitz <keiths@redhat.com>,\n\tPhil Muldoon <pmuldoon@redhat.com>, Alexandre Oliva <aoliva@redhat.com>","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","References":"<87mv6qhq9u.fsf@redhat.com>\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\t<87ziae2rrp.fsf_-_@redhat.com>","Date":"Fri, 15 Sep 2017 00:11:54 -0400","In-Reply-To":"<87ziae2rrp.fsf_-_@redhat.com> (Sergio Durigan Junior's\n\tmessage\tof \"Fri, 01 Sep 2017 14:33:14 -0400\")","Message-ID":"<87mv5wppmd.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1775685,"web_url":"http://patchwork.ozlabs.org/comment/1775685/","msgid":"<87efqtieq4.fsf@redhat.com>","list_archive_url":null,"date":"2017-09-26T16:53:07","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":10371,"url":"http://patchwork.ozlabs.org/api/people/10371/","name":"Sergio Durigan Junior","email":"sergiodj@redhat.com"},"content":"Ping^2.\n\nOn Friday, September 15 2017, I wrote:\n\n> Ping.\n>\n> On Friday, September 01 2017, I wrote:\n>\n>> On Wednesday, August 23 2017, Pedro Alves wrote:\n>>\n>>> On 08/23/2017 05:17 AM, Sergio Durigan Junior wrote:\n>>>> Hi there,\n>>>> \n>>>> This is a series of two patches, one for GDB and one for GCC, which aims\n>>>> to improve the detection and handling of triplets present on compiler\n>>>> names.  The motivation for this series was mostly the fact that GDB's\n>>>> \"compile\" command is broken on Debian unstable, as can be seen here:\n>>>> \n>>>>   <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851146>\n>>>> \n>>>> The reason for the failure is the fact that Debian compiles GCC using\n>>>> the --program-{prefix,suffix} options from configure in order to name\n>>>> the compiler using the full triplet (i.e., Debian's GCC is not merely\n>>>> named \"gcc\", but e.g. \"x86_64-linux-gnu-gcc-7\"), which end up naming the\n>>>> C_COMPILER_NAME and CP_COMPILER_NAME defines with the specified prefix\n>>>> and suffix.  Therefore, the regexp being used to match the compiler name\n>>>> is wrong because it doesn't take into account the fact that the defines\n>>>> may already contain the triplets.\n>>>\n>>> As discussed on IRC, I think the problem is that C_COMPILER_NAME\n>>> in libcc1 includes the full triplet in the first place.  I think\n>>> that it shouldn't.  I think that C_COMPILER_NAME should always\n>>> be \"gcc\".\n>>>\n>>> The problem is in bootstrapping code, before there's a plugin\n>>> yet -- i.e.., in the code that libcc1 uses to find the compiler (which\n>>> then loads a plugin that libcc1 talks with).\n>>>\n>>> Please bear with me while I lay down my rationale, so that we're\n>>> in the same page.\n>>>\n>>> C_COMPILER_NAME seems to include the prefix currently in an attempt\n>>> to support cross debugging, or more generically, --enable-targets=all\n>>> in gdb, but the whole thing doesn't really work as intended if\n>>> C_COMPILER_NAME already includes a target prefix.\n>>>\n>>> IIUC the libcc1/plugin design, a single \"libcc1.so\" (what gdb loads,\n>>> not the libcc1plugin compiler plugin) should work with any compiler in\n>>> the PATH, in case you have several in the system.  E.g., one for\n>>> each arch.\n>>>\n>>> Let me expand.\n>>>\n>>> The idea is that gdb always dlopens \"libcc1.so\", by that name exactly.\n>>> Usually that'll open the libcc1.so installed in the system, e.g.,\n>>> \"/usr/lib64/libcc1.so\", which for convenience was originally built from the\n>>> same source tree as the systems's compiler was built.  You could force gdb to\n>>> load some other libcc1.so, e.g., by tweaking LD_LIBRARY_PATH of course,\n>>> but you shouldn't need to.\n>>>\n>>> libcc1.so is responsible for finding a compiler that targets the\n>>> architecture of the inferior that the user is debugging in gdb.\n>>> E.g., say you're cross debugging for arm-none-eabi, on a\n>>> x86-64 Fedora host.  GDB knows the target inferior's architecture, and passes\n>>> down to (the system) libcc1 a triplet regex like \"arm*-*eabi*\" or\n>>> similar to libcc1,.  libcc1 appends \"-\" + C_COMPILER_NAME to that regex,\n>>> generating something like \"arm*-*eabi*-gcc\", and then looks for binaries\n>>> in PATH that match that regex.  When one is found, e.g., \"arm-none-eabi-gcc\",\n>>> libcc1 forks/execs that compiler, passing it \"-fplugin=libcc1plugin\".\n>>> libcc1 then communicates with that compiler's libcc1plugin plugin\n>>> via a socket.\n>>>\n>>> In this scheme, \"libcc1.so\", the library that gdb loads, has no\n>>> target-specific logic at all.  It should work with any compiler\n>>> in the system, for any target/arch.  All it does is marshall the gcc/gdb\n>>> interface between the gcc plugin and gdb, it is not linked against gcc.\n>>> That boundary is versioned, and ABI-stable.  So as long as the\n>>> libcc1.so that gdb loads understands the same API version of the gcc/gdb\n>>> interface API as gdb understands, it all should work.  (The APIs\n>>> are always extended keeping backward compatibility.)\n>>>\n>>> So in this scheme, having the \"C_COMPILER_NAME\" macro in libcc1\n>>> include the target prefix for the --target that the plugin that\n>>> libcc1 is built along with, seems to serve no real purpose, AFAICT.\n>>> It's just getting in the way.\n>>>\n>>> I.e., something like:\n>>>\n>>>   \"$gdb_specified_triplet_re\" + \"-\" + C_COMPILER_NAME\n>>>\n>>> works if C_COMPILER_NAME is exactly \"gcc\", but not if C_COMPILER_NAME is already:\n>>>\n>>>   \"$whatever_triplet_libcc1_happened_to_be_built_with\" + \"-gcc\"\n>>>\n>>> because we end up with:\n>>>\n>>>   \"$gdb_specified_triplet_re\" + \"-\" \"$whatever_triplet_libcc1_happened_to_be_built_with\" +  \"-gcc\"\n>>>\n>>> which is the problem case.\n>>>\n>>> In sum, I think the libcc1.so (not the plugin) should _not_ have baked\n>>> in target awareness, and thus C_COMPILER_NAME should always be \"gcc\", and\n>>> then libcc1's regex should be adjusted to also tolerate a suffix in\n>>> the final compiler binary name regex.\n>>>\n>>> WDYT?\n>>\n>> As I replied before, I agree with Pedro's rationale here and his idea\n>> actually makes my initial patch much simpler.  By renaming\n>> C_COMPILER_NAME (and the new CP_COMPILER_NAME) to just \"gcc\" (or \"g++\"),\n>> the Debian bug I was fixing is solved and we don't have to bother with\n>> breaking compatibility with older gdb's packaged by the distros, because\n>> they will also keep working with this change.\n>>\n>> So I would like to propose this new patch, only for GCC, which makes\n>> C_COMPILER_NAME and CP_COMPILER_NAME have \"gcc\" and \"g++\" as hardcoded\n>> names, respectively.  In the commit log, I intend to include Pedro's\n>> rationale (above).\n>>\n>> What do you guys think of this new version?  It doesn't need any GDB\n>> patch, and works with both Fedora and Debian.\n>>\n>> Thanks,\n>>\n>> -- \n>> Sergio\n>> GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36\n>> Please send encrypted e-mail if possible\n>> http://sergiodj.net/\n>>\n>> libcc1/ChangeLog:\n>> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n>> \t    Pedro Alves  <palves@redhat.com>\n>>\n>> \t* Makefile.am: Remove references to c-compiler-name.h and\n>> \tcp-compiler-name.h\n>> \t* Makefile.in: Regenerate.\n>> \t* compiler-name.hh: New file.\n>> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n>> \tcompiler-name.hh.\n>> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n>> \tcompiler-name.hh.\n>>\n>> diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am\n>> index 5e61a92a26b..cdba5a50b23 100644\n>> --- a/libcc1/Makefile.am\n>> +++ b/libcc1/Makefile.am\n>> @@ -45,24 +45,6 @@ plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la\n>>  cc1lib_LTLIBRARIES = libcc1.la\n>>  endif\n>>  \n>> -BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h\n>> -MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h\n>> -\n>> -# Put this in a header so we don't run sed for each compilation.  This\n>> -# is also simpler to debug as one can easily see the constant.\n>> -# FIXME: compute it in configure.ac and output it in config.status, or\n>> -# introduce timestamp files for some indirection to avoid rebuilding it\n>> -# every time.\n>> -c-compiler-name.h: Makefile\n>> -\t-rm -f $@T\n>> -\techo \"#define C_COMPILER_NAME \\\"`echo gcc | sed '$(transform)'`\\\"\" > $@T\n>> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n>> -\n>> -cp-compiler-name.h: Makefile\n>> -\t-rm -f $@T\n>> -\techo \"#define CP_COMPILER_NAME \\\"`echo g++ | sed '$(transform)'`\\\"\" > $@T\n>> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n>> -\n>>  shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \\\n>>      marshall.cc marshall.hh rpc.hh status.hh\n>>  \n>> diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in\n>> index 54babb02a49..47be10025ad 100644\n>> --- a/libcc1/Makefile.in\n>> +++ b/libcc1/Makefile.in\n>> @@ -307,8 +307,6 @@ plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin\n>>  cc1libdir = $(libdir)/$(libsuffix)\n>>  @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la\n>>  @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la\n>> -BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h\n>> -MOSTLYCLEANFILES = c-compiler-name.h cp-compiler-name.h\n>>  shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \\\n>>      marshall.cc marshall.hh rpc.hh status.hh\n>>  \n>> @@ -344,7 +342,7 @@ libcc1_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \\\n>>  \t$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \\\n>>  \t$(CXXFLAGS) $(libcc1_la_LDFLAGS) $(LTLDFLAGS) -o $@\n>>  \n>> -all: $(BUILT_SOURCES) cc1plugin-config.h\n>> +all: cc1plugin-config.h\n>>  \t$(MAKE) $(AM_MAKEFLAGS) all-am\n>>  \n>>  .SUFFIXES:\n>> @@ -567,15 +565,13 @@ GTAGS:\n>>  distclean-tags:\n>>  \t-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags\n>>  check-am: all-am\n>> -check: $(BUILT_SOURCES)\n>> -\t$(MAKE) $(AM_MAKEFLAGS) check-am\n>> +check: check-am\n>>  all-am: Makefile $(LTLIBRARIES) cc1plugin-config.h\n>>  installdirs:\n>>  \tfor dir in \"$(DESTDIR)$(cc1libdir)\" \"$(DESTDIR)$(plugindir)\"; do \\\n>>  \t  test -z \"$$dir\" || $(MKDIR_P) \"$$dir\"; \\\n>>  \tdone\n>> -install: $(BUILT_SOURCES)\n>> -\t$(MAKE) $(AM_MAKEFLAGS) install-am\n>> +install: install-am\n>>  install-exec: install-exec-am\n>>  install-data: install-data-am\n>>  uninstall: uninstall-am\n>> @@ -595,7 +591,6 @@ install-strip:\n>>  \t    \"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'\" install; \\\n>>  \tfi\n>>  mostlyclean-generic:\n>> -\t-test -z \"$(MOSTLYCLEANFILES)\" || rm -f $(MOSTLYCLEANFILES)\n>>  \n>>  clean-generic:\n>>  \n>> @@ -606,7 +601,6 @@ distclean-generic:\n>>  maintainer-clean-generic:\n>>  \t@echo \"This command is intended for maintainers to use\"\n>>  \t@echo \"it deletes files that may require special tools to rebuild.\"\n>> -\t-test -z \"$(BUILT_SOURCES)\" || rm -f $(BUILT_SOURCES)\n>>  clean: clean-am\n>>  \n>>  clean-am: clean-cc1libLTLIBRARIES clean-generic clean-libtool \\\n>> @@ -681,7 +675,7 @@ ps-am:\n>>  \n>>  uninstall-am: uninstall-cc1libLTLIBRARIES uninstall-pluginLTLIBRARIES\n>>  \n>> -.MAKE: all check install install-am install-strip\n>> +.MAKE: all install-am install-strip\n>>  \n>>  .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \\\n>>  \tclean-cc1libLTLIBRARIES clean-generic clean-libtool \\\n>> @@ -702,21 +696,6 @@ uninstall-am: uninstall-cc1libLTLIBRARIES uninstall-pluginLTLIBRARIES\n>>  override CXXFLAGS := $(filter-out -fsanitize=address,$(CXXFLAGS))\n>>  override LDFLAGS := $(filter-out -fsanitize=address,$(LDFLAGS))\n>>  \n>> -# Put this in a header so we don't run sed for each compilation.  This\n>> -# is also simpler to debug as one can easily see the constant.\n>> -# FIXME: compute it in configure.ac and output it in config.status, or\n>> -# introduce timestamp files for some indirection to avoid rebuilding it\n>> -# every time.\n>> -c-compiler-name.h: Makefile\n>> -\t-rm -f $@T\n>> -\techo \"#define C_COMPILER_NAME \\\"`echo gcc | sed '$(transform)'`\\\"\" > $@T\n>> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n>> -\n>> -cp-compiler-name.h: Makefile\n>> -\t-rm -f $@T\n>> -\techo \"#define CP_COMPILER_NAME \\\"`echo g++ | sed '$(transform)'`\\\"\" > $@T\n>> -\tmv $@T $@ # $(SHELL) $(srcdir)/../move-if-change $@T $@\n>> -\n>>  # Tell versions [3.59,3.63) of GNU make to not export all variables.\n>>  # Otherwise a system limit (for SysV at least) may be exceeded.\n>>  .NOEXPORT:\n>> diff --git a/libcc1/compiler-name.hh b/libcc1/compiler-name.hh\n>> new file mode 100644\n>> index 00000000000..30cdc41838b\n>> --- /dev/null\n>> +++ b/libcc1/compiler-name.hh\n>> @@ -0,0 +1,29 @@\n>> +/* The names of the compilers we use.\n>> +   Copyright (C) 2017 Free Software Foundation, Inc.\n>> +\n>> +This file is part of GCC.\n>> +\n>> +GCC is free software; you can redistribute it and/or modify it under\n>> +the terms of the GNU General Public License as published by the Free\n>> +Software Foundation; either version 3, or (at your option) any later\n>> +version.\n>> +\n>> +GCC is distributed in the hope that it will be useful, but WITHOUT ANY\n>> +WARRANTY; without even the implied warranty of MERCHANTABILITY or\n>> +FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\n>> +for more details.\n>> +\n>> +You should have received a copy of the GNU General Public License\n>> +along with GCC; see the file COPYING3.  If not see\n>> +<http://www.gnu.org/licenses/>.  */\n>> +\n>> +#ifndef COMPILER_NAME_H\n>> +#define COMPILER_NAME_H\n>> +\n>> +// C compiler name.\n>> +#define C_COMPILER_NAME \"gcc\"\n>> +\n>> +// C++ compiler name.\n>> +#define CP_COMPILER_NAME \"g++\"\n>> +\n>> +#endif // ! COMPILER_NAME_H\n>> diff --git a/libcc1/libcc1.cc b/libcc1/libcc1.cc\n>> index 0ef6c112dae..1a20dd941a4 100644\n>> --- a/libcc1/libcc1.cc\n>> +++ b/libcc1/libcc1.cc\n>> @@ -37,7 +37,7 @@ along with GCC; see the file COPYING3.  If not see\n>>  #include \"libiberty.h\"\n>>  #include \"xregex.h\"\n>>  #include \"findcomp.hh\"\n>> -#include \"c-compiler-name.h\"\n>> +#include \"compiler-name.hh\"\n>>  #include \"intl.h\"\n>>  \n>>  struct libcc1;\n>> diff --git a/libcc1/libcp1.cc b/libcc1/libcp1.cc\n>> index bbd8488af93..b4f9710e0e2 100644\n>> --- a/libcc1/libcp1.cc\n>> +++ b/libcc1/libcp1.cc\n>> @@ -37,7 +37,7 @@ along with GCC; see the file COPYING3.  If not see\n>>  #include \"libiberty.h\"\n>>  #include \"xregex.h\"\n>>  #include \"findcomp.hh\"\n>> -#include \"cp-compiler-name.h\"\n>> +#include \"compiler-name.hh\"\n>>  #include \"intl.h\"\n>>  \n>>  struct libcp1;\n>\n> -- \n> Sergio\n> GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36\n> Please send encrypted e-mail if possible\n> http://sergiodj.net/","headers":{"Return-Path":"<gcc-patches-return-463010-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-463010-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"ihqqS/3/\"; dkim-atps=neutral","sourceware.org; auth=none","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=sergiodj@redhat.com"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y1n8T3hvcz9s7f\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 27 Sep 2017 02:53:29 +1000 (AEST)","(qmail 33419 invoked by alias); 26 Sep 2017 16:53:14 -0000","(qmail 33074 invoked by uid 89); 26 Sep 2017 16:53:14 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tTue, 26 Sep 2017 16:53:09 +0000","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.15])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id 65CE880465;\n\tTue, 26 Sep 2017 16:53:08 +0000 (UTC)","from localhost (unused-10-15-17-193.yyz.redhat.com\n\t[10.15.17.193])\tby smtp.corp.redhat.com (Postfix) with ESMTPS\n\tid 0D1D869435; Tue, 26 Sep 2017 16:53:07 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=wY0z1JauRaNVglY/\n\tn5WbHytwrff1Tlqf4QaGRxGf9NwNZaqibUttklwnxV3AkbxNgdxjOvQ77i8EUG3Z\n\tNdEA+3StlbEIW+14Cjmqaqq+LGOdQSwVa+dOHecVRqlAr0DXGIwK7IaTL3HjgUBp\n\t/khU/dDgSKgOfo40hJmGRPMhtEE=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=FfuB/PGB1ER1nya026nr+Q\n\tmcLuY=; b=ihqqS/3/3lu8Cc3v+Tn88BJyKLDmsXm3jCgkzst1B03BuBV+A80hlf\n\tIncdv/LNU7PEQidosvjRLlDJyP9nCNfUUduiQT3xYx5azx6YZqIzGSme0a2kgAS2\n\tpR1NVGLOCh3rYmDapRCTTd3h71fGbSNvgfMZgIq0782k0U/uo+eSg=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0,\n\tGIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=marshall","X-HELO":"mx1.redhat.com","DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 65CE880465","From":"Sergio Durigan Junior <sergiodj@redhat.com>","To":"Pedro Alves <palves@redhat.com>","Cc":"GDB Patches <gdb-patches@sourceware.org>,\n\tGCC Patches <gcc-patches@gcc.gnu.org>,\n\tTom Tromey <tom@tromey.com>, Keith Seitz <keiths@redhat.com>,\n\tPhil Muldoon <pmuldoon@redhat.com>, Alexandre Oliva <aoliva@redhat.com>","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","References":"<87mv6qhq9u.fsf@redhat.com>\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\t<87ziae2rrp.fsf_-_@redhat.com>\n\t<87mv5wppmd.fsf@redhat.com>","Date":"Tue, 26 Sep 2017 12:53:07 -0400","In-Reply-To":"<87mv5wppmd.fsf@redhat.com> (Sergio Durigan Junior's message\n\tof\t\"Fri, 15 Sep 2017 00:11:54 -0400\")","Message-ID":"<87efqtieq4.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1803968,"web_url":"http://patchwork.ozlabs.org/comment/1803968/","msgid":"<87mv3popez.fsf@redhat.com>","list_archive_url":null,"date":"2017-11-13T21:10:44","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":10371,"url":"http://patchwork.ozlabs.org/api/people/10371/","name":"Sergio Durigan Junior","email":"sergiodj@redhat.com"},"content":"On Tuesday, September 26 2017, I wrote:\n\n> Ping^2.\n\nPing^3.\n\nI'm sending the updated ChangeLog/patch.  I'm also removing gdb-patches\nfrom the Cc list.\n\nlibcc1/ChangeLog:\n2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n\t    Pedro Alves  <palves@redhat.com>\n\n\t* Makefile.am: Remove references to c-compiler-name.h and\n\tcp-compiler-name.h\n\t* Makefile.in: Regenerate.\n\t* compiler-name.hh: New file.\n\t* libcc1.cc: Don't include c-compiler-name.h.  Include\n\tcompiler-name.hh.\n\t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n\tcompiler-name.hh.\n\n\n> On Friday, September 15 2017, I wrote:\n>\n>> Ping.\n>>\n>> On Friday, September 01 2017, I wrote:\n>>\n>>> On Wednesday, August 23 2017, Pedro Alves wrote:\n>>>\n>>>> On 08/23/2017 05:17 AM, Sergio Durigan Junior wrote:\n>>>>> Hi there,\n>>>>> \n>>>>> This is a series of two patches, one for GDB and one for GCC, which aims\n>>>>> to improve the detection and handling of triplets present on compiler\n>>>>> names.  The motivation for this series was mostly the fact that GDB's\n>>>>> \"compile\" command is broken on Debian unstable, as can be seen here:\n>>>>> \n>>>>>   <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851146>\n>>>>> \n>>>>> The reason for the failure is the fact that Debian compiles GCC using\n>>>>> the --program-{prefix,suffix} options from configure in order to name\n>>>>> the compiler using the full triplet (i.e., Debian's GCC is not merely\n>>>>> named \"gcc\", but e.g. \"x86_64-linux-gnu-gcc-7\"), which end up naming the\n>>>>> C_COMPILER_NAME and CP_COMPILER_NAME defines with the specified prefix\n>>>>> and suffix.  Therefore, the regexp being used to match the compiler name\n>>>>> is wrong because it doesn't take into account the fact that the defines\n>>>>> may already contain the triplets.\n>>>>\n>>>> As discussed on IRC, I think the problem is that C_COMPILER_NAME\n>>>> in libcc1 includes the full triplet in the first place.  I think\n>>>> that it shouldn't.  I think that C_COMPILER_NAME should always\n>>>> be \"gcc\".\n>>>>\n>>>> The problem is in bootstrapping code, before there's a plugin\n>>>> yet -- i.e.., in the code that libcc1 uses to find the compiler (which\n>>>> then loads a plugin that libcc1 talks with).\n>>>>\n>>>> Please bear with me while I lay down my rationale, so that we're\n>>>> in the same page.\n>>>>\n>>>> C_COMPILER_NAME seems to include the prefix currently in an attempt\n>>>> to support cross debugging, or more generically, --enable-targets=all\n>>>> in gdb, but the whole thing doesn't really work as intended if\n>>>> C_COMPILER_NAME already includes a target prefix.\n>>>>\n>>>> IIUC the libcc1/plugin design, a single \"libcc1.so\" (what gdb loads,\n>>>> not the libcc1plugin compiler plugin) should work with any compiler in\n>>>> the PATH, in case you have several in the system.  E.g., one for\n>>>> each arch.\n>>>>\n>>>> Let me expand.\n>>>>\n>>>> The idea is that gdb always dlopens \"libcc1.so\", by that name exactly.\n>>>> Usually that'll open the libcc1.so installed in the system, e.g.,\n>>>> \"/usr/lib64/libcc1.so\", which for convenience was originally built from the\n>>>> same source tree as the systems's compiler was built.  You could force gdb to\n>>>> load some other libcc1.so, e.g., by tweaking LD_LIBRARY_PATH of course,\n>>>> but you shouldn't need to.\n>>>>\n>>>> libcc1.so is responsible for finding a compiler that targets the\n>>>> architecture of the inferior that the user is debugging in gdb.\n>>>> E.g., say you're cross debugging for arm-none-eabi, on a\n>>>> x86-64 Fedora host.  GDB knows the target inferior's architecture, and passes\n>>>> down to (the system) libcc1 a triplet regex like \"arm*-*eabi*\" or\n>>>> similar to libcc1,.  libcc1 appends \"-\" + C_COMPILER_NAME to that regex,\n>>>> generating something like \"arm*-*eabi*-gcc\", and then looks for binaries\n>>>> in PATH that match that regex.  When one is found, e.g., \"arm-none-eabi-gcc\",\n>>>> libcc1 forks/execs that compiler, passing it \"-fplugin=libcc1plugin\".\n>>>> libcc1 then communicates with that compiler's libcc1plugin plugin\n>>>> via a socket.\n>>>>\n>>>> In this scheme, \"libcc1.so\", the library that gdb loads, has no\n>>>> target-specific logic at all.  It should work with any compiler\n>>>> in the system, for any target/arch.  All it does is marshall the gcc/gdb\n>>>> interface between the gcc plugin and gdb, it is not linked against gcc.\n>>>> That boundary is versioned, and ABI-stable.  So as long as the\n>>>> libcc1.so that gdb loads understands the same API version of the gcc/gdb\n>>>> interface API as gdb understands, it all should work.  (The APIs\n>>>> are always extended keeping backward compatibility.)\n>>>>\n>>>> So in this scheme, having the \"C_COMPILER_NAME\" macro in libcc1\n>>>> include the target prefix for the --target that the plugin that\n>>>> libcc1 is built along with, seems to serve no real purpose, AFAICT.\n>>>> It's just getting in the way.\n>>>>\n>>>> I.e., something like:\n>>>>\n>>>>   \"$gdb_specified_triplet_re\" + \"-\" + C_COMPILER_NAME\n>>>>\n>>>> works if C_COMPILER_NAME is exactly \"gcc\", but not if C_COMPILER_NAME is already:\n>>>>\n>>>>   \"$whatever_triplet_libcc1_happened_to_be_built_with\" + \"-gcc\"\n>>>>\n>>>> because we end up with:\n>>>>\n>>>>   \"$gdb_specified_triplet_re\" + \"-\" \"$whatever_triplet_libcc1_happened_to_be_built_with\" +  \"-gcc\"\n>>>>\n>>>> which is the problem case.\n>>>>\n>>>> In sum, I think the libcc1.so (not the plugin) should _not_ have baked\n>>>> in target awareness, and thus C_COMPILER_NAME should always be \"gcc\", and\n>>>> then libcc1's regex should be adjusted to also tolerate a suffix in\n>>>> the final compiler binary name regex.\n>>>>\n>>>> WDYT?\n>>>\n>>> As I replied before, I agree with Pedro's rationale here and his idea\n>>> actually makes my initial patch much simpler.  By renaming\n>>> C_COMPILER_NAME (and the new CP_COMPILER_NAME) to just \"gcc\" (or \"g++\"),\n>>> the Debian bug I was fixing is solved and we don't have to bother with\n>>> breaking compatibility with older gdb's packaged by the distros, because\n>>> they will also keep working with this change.\n>>>\n>>> So I would like to propose this new patch, only for GCC, which makes\n>>> C_COMPILER_NAME and CP_COMPILER_NAME have \"gcc\" and \"g++\" as hardcoded\n>>> names, respectively.  In the commit log, I intend to include Pedro's\n>>> rationale (above).\n>>>\n>>> What do you guys think of this new version?  It doesn't need any GDB\n>>> patch, and works with both Fedora and Debian.\n>>>\n>>> Thanks,","headers":{"Return-Path":"<gcc-patches-return-466679-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-466679-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"OPej+Aui\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ybNbd4NZWz9s81\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 14 Nov 2017 08:11:06 +1100 (AEDT)","(qmail 4585 invoked by alias); 13 Nov 2017 21:10:55 -0000","(qmail 4572 invoked by uid 89); 13 Nov 2017 21:10:54 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tMon, 13 Nov 2017 21:10:46 +0000","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.11])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id 961F57653B;\n\tMon, 13 Nov 2017 21:10:45 +0000 (UTC)","from localhost (unused-10-15-17-193.yyz.redhat.com\n\t[10.15.17.193])\tby smtp.corp.redhat.com (Postfix) with ESMTPS\n\tid 5964B86614; Mon, 13 Nov 2017 21:10:45 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=vXizdNIVw6D/BcIR\n\toNgd8/nBGwuqCznTaJnsic6x3MrR65gljclvmrs5nj0jYCN1s94+sYbni4E2S2HJ\n\tPFE7DYdWoqBdKYcoYrXF5V0WIJhc0y+F79exj3r1L+o2vkkPtCFTI3sakHgL61un\n\tGgRwkCixzy0pwx63Dzk+pg3jQgE=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=ShgqBFt06CCra0lWkOY9xM\n\tIsmIs=; b=OPej+Aui/s/tEZpuaxElKx+UFRvHz3aQ5jtDrJ4dB7HSrUF26PpzIR\n\tXIqUW9YpDcybXSPJwkuuTpOfDYoUxz5bILJ5m3Ny4t+sop6abrbYRU7zFuXJ/089\n\tgTOUjp8T/PZek4znL9OInNOyM3O/21xUkruFco4zbHVxG7+O2v+Ys=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0,\n\tGIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=bear, thatll,\n\treplied, enable-targets","X-HELO":"mx1.redhat.com","From":"Sergio Durigan Junior <sergiodj@redhat.com>","To":"Pedro Alves <palves@redhat.com>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>, Tom Tromey <tom@tromey.com>,\n\tKeith Seitz <keiths@redhat.com>, Phil Muldoon <pmuldoon@redhat.com>,\n\tAlexandre Oliva <aoliva@redhat.com>","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","References":"<87mv6qhq9u.fsf@redhat.com>\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\t<87ziae2rrp.fsf_-_@redhat.com>\n\t<87mv5wppmd.fsf@redhat.com>\t<87efqtieq4.fsf@redhat.com>","Date":"Mon, 13 Nov 2017 16:10:44 -0500","In-Reply-To":"<87efqtieq4.fsf@redhat.com> (Sergio Durigan Junior's message\n\tof\t\"Tue, 26 Sep 2017 12:53:07 -0400\")","Message-ID":"<87mv3popez.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1804771,"web_url":"http://patchwork.ozlabs.org/comment/1804771/","msgid":"<orh8twyyy0.fsf@lxoliva.fsfla.org>","list_archive_url":null,"date":"2017-11-15T03:59:19","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":2058,"url":"http://patchwork.ozlabs.org/api/people/2058/","name":"Alexandre Oliva","email":"aoliva@redhat.com"},"content":"On Nov 13, 2017, Sergio Durigan Junior <sergiodj@redhat.com> wrote:\n\n> On Tuesday, September 26 2017, I wrote:\n>> Ping^2.\n\n> Ping^3.\n\n> I'm sending the updated ChangeLog/patch.  I'm also removing gdb-patches\n> from the Cc list.\n\n> libcc1/ChangeLog:\n> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n> \t    Pedro Alves  <palves@redhat.com>\n\n> \t* Makefile.am: Remove references to c-compiler-name.h and\n> \tcp-compiler-name.h\n> \t* Makefile.in: Regenerate.\n> \t* compiler-name.hh: New file.\n> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n> \tcompiler-name.hh.\n> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n> \tcompiler-name.hh.\n\nI agree with Pedro's rationale.\n\nI'm not sure I have authority to approve changes to libcc1, but since\nthis hasn't got a review for so long, and I'm the one who last touched\nit, I kind of feel responsible and able, so I suggest that, if nobody\nobjects till Thursday, this is ok to install.\n\nThanks!","headers":{"Return-Path":"<gcc-patches-return-466806-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-466806-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"Xfv7L/YD\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yc9cb2B45z9s74\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 15 Nov 2017 14:59:41 +1100 (AEDT)","(qmail 74820 invoked by alias); 15 Nov 2017 03:59:33 -0000","(qmail 74191 invoked by uid 89); 15 Nov 2017 03:59:32 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 15 Nov 2017 03:59:31 +0000","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.11])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id 568C38535D;\n\tWed, 15 Nov 2017 03:59:30 +0000 (UTC)","from freie.home (ovpn04.gateway.prod.ext.phx2.redhat.com\n\t[10.5.9.4])\tby smtp.corp.redhat.com (Postfix) with ESMTPS id\n\tEAB49E995C; Wed, 15 Nov 2017 03:59:27 +0000 (UTC)","from livre (livre.home [172.31.160.2])\tby freie.home\n\t(8.15.2/8.15.2) with ESMTP id vAF3xJgq012531;\n\tWed, 15 Nov 2017 01:59:19 -0200"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=b6GvI74GXXXhxOM2\n\tSd6g6BxMMCeR3gRq+F69emmDmM3fOrz8A+fpIpmYPITkKqBWse+63StwcziPO6Dy\n\tbwTqBuYJnOSwmHlD/4wmvy7Wi7sRRC6TC4S0tVfLYwo2dAl1iO9tccOCZXtPpEOM\n\t7iVOLrMn72ZgREJQsNFpd4WM/C0=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=TdRCuZpW5g9ztBAsm3oDqi\n\tooWNw=; b=Xfv7L/YDUYwc9Vf40uUBciz09muEGFB1fXSNW564NII9of25HLZpE5\n\togN5gzXkQz/b/HUo363XVbHmRylf503BOv9bCPENXGx2Za2qFfwOalDj9KfqVwIL\n\th9YfB3fWjdVooXe46yw+OOoR9tyV8XKecjr+B+cJZ2Hirxn3OAKdk=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-1.7 required=5.0 tests=BAYES_00,\n\tKB_WAM_FROM_NAME_SINGLEWORD, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=no version=3.3.2 spammy=H*o:Group,\n\tH*f:sk:87mv3po, H*i:sk:87mv3po, authority","X-HELO":"mx1.redhat.com","From":"Alexandre Oliva <aoliva@redhat.com>","To":"Sergio Durigan Junior <sergiodj@redhat.com>","Cc":"Pedro Alves <palves@redhat.com>, GCC Patches <gcc-patches@gcc.gnu.org>,\n\tTom Tromey <tom@tromey.com>, Keith Seitz <keiths@redhat.com>,\n\tPhil Muldoon <pmuldoon@redhat.com>","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","References":"<87mv6qhq9u.fsf@redhat.com>\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\t<87ziae2rrp.fsf_-_@redhat.com>\n\t<87mv5wppmd.fsf@redhat.com>\t<87efqtieq4.fsf@redhat.com>\n\t<87mv3popez.fsf@redhat.com>","Date":"Wed, 15 Nov 2017 01:59:19 -0200","In-Reply-To":"<87mv3popez.fsf@redhat.com> (Sergio Durigan Junior's message\n\tof\t\"Mon, 13 Nov 2017 16:10:44 -0500\")","Message-ID":"<orh8twyyy0.fsf@lxoliva.fsfla.org>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain"}},{"id":1805365,"web_url":"http://patchwork.ozlabs.org/comment/1805365/","msgid":"<60ea6922-52e9-bf53-9af5-75550828a047@sifive.com>","list_archive_url":null,"date":"2017-11-15T23:35:16","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":72714,"url":"http://patchwork.ozlabs.org/api/people/72714/","name":"Jim Wilson","email":"jimw@sifive.com"},"content":"On 11/13/2017 01:10 PM, Sergio Durigan Junior wrote:\n> On Tuesday, September 26 2017, I wrote:\n> \n>> Ping^2.\n> \n> Ping^3.\n> \n> I'm sending the updated ChangeLog/patch.  I'm also removing gdb-patches\n> from the Cc list.\n> \n> libcc1/ChangeLog:\n> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n> \t    Pedro Alves  <palves@redhat.com>\n> \n> \t* Makefile.am: Remove references to c-compiler-name.h and\n> \tcp-compiler-name.h\n> \t* Makefile.in: Regenerate.\n> \t* compiler-name.hh: New file.\n> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n> \tcompiler-name.hh.\n> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n> \tcompiler-name.hh.\n\nOK.\n\nThis is a gcc plugin for gdb, so it makes sense that gdb developers \nshould be allowed to decide how it should work.\n\nJim","headers":{"Return-Path":"<gcc-patches-return-466925-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-466925-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"ovbuoZl5\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ycgjJ6HPWz9s7B\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 16 Nov 2017 10:35:31 +1100 (AEDT)","(qmail 127370 invoked by alias); 15 Nov 2017 23:35:22 -0000","(qmail 127361 invoked by uid 89); 15 Nov 2017 23:35:21 -0000","from mail-pg0-f45.google.com (HELO mail-pg0-f45.google.com)\n\t(74.125.83.45) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 15 Nov 2017 23:35:20 +0000","by mail-pg0-f45.google.com with SMTP id 207so16351626pgc.12 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 15 Nov 2017 15:35:19 -0800 (PST)","from [10.17.0.120] ([12.206.222.5]) by smtp.gmail.com with ESMTPSA\n\tid u7sm41991092pfh.142.2017.11.15.15.35.17 (version=TLS1_2\n\tcipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 15 Nov 2017 15:35:17 -0800 (PST)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=IWEyl9X0AsXJZvsJlDqwrXCIiu+pwdYTsbo6x4n/5BLaCD6KJy7AT\n\tGovKRYMzQw0ykg6kqosPjL1n+953jM7warMokkoaNSLP7j56EodUip0ay0ZtvzuP\n\typnr0Xx1/r0rxPvROng1IUWn6zBWPe+AODbxmnNXEKXHTFB0WcJTeM=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=YIpacbyPw3Q4tXlwhFZp8bppwxo=; b=ovbuoZl5Wh7zRtzn4Ramui6/WHn+\n\tI0vziSyx4x1HSxMgTNVFT2F94xf6pEV05hy0VoVmC+yajhLX+arzM7W9wcecBZIH\n\tFyXw/L+N2l1fZjTS1lvmg276tpAe84kaACEOmRMXWjYaGCx5PM9X1xOiNeZxDa3w\n\t3MrvdUwdbBpijvg=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-3.5 required=5.0 tests=AWL, BAYES_00,\n\tKB_WAM_FROM_NAME_SINGLEWORD, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=no version=3.3.2 spammy=H*f:sk:87mv3po,\n\tH*i:sk:87mv3po","X-HELO":"mail-pg0-f45.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:subject:to:cc:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=/xlcw2fv8VbhnyDVKMjF+G2Bp2NTw2tXgqL+g00o+j4=;\n\tb=Ut/53gG4yh6Uze2vuxM5Y/r0kX76CfR48GTLZLmq1BgLP3ethE1dvp7Rw4nChzdHEw\n\thvKDP+dn7gxl+YTFGd55ISclDRYXfFFTm7sJZ0B5mnCbBz8iviQ+iIxG0ox92VlSw6T4\n\tJ/WLzAMPywdUNev/nAIpinjPUfL96zieyk8Z1IlfI4Y6LULP+rh0hgcNX7IUBERirORb\n\tnI3eFRxhE9HrQ9pQ7LLGve4MqCEBAgrktxgn8U4wqt5O7Iwe9HnJ7N6SifTOees65Wyj\n\tOUHAeDNSRVHEyPy72Nk1QcnH3DSjI8VxbQOmcThV9aH/4tAxa+hmw9WIZY/WigJbYFev\n\t1Q3g==","X-Gm-Message-State":"AJaThX7w8dwWLX7DsC1pmAK9wy9RxUsbHAxH68fr0ZKKQQOLja3PVBmR\tRX6TU8sUtFDGvq6nAjT/2yo9JQ==","X-Google-Smtp-Source":"AGs4zMYKo0/XBWHYNMWP0AFpplbsWFwe9inz2eoMN2VMvKlth5OPcaURDqAxjvYBnEPtVJLMGgmCWQ==","X-Received":"by 10.101.100.77 with SMTP id s13mr17238425pgv.15.1510788918501;\n\tWed, 15 Nov 2017 15:35:18 -0800 (PST)","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","To":"Sergio Durigan Junior <sergiodj@redhat.com>,\n\tPedro Alves <palves@redhat.com>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>, Tom Tromey <tom@tromey.com>,\n\tKeith Seitz <keiths@redhat.com>, Phil Muldoon <pmuldoon@redhat.com>,\n\tAlexandre Oliva <aoliva@redhat.com>","References":"<87mv6qhq9u.fsf@redhat.com>\n\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\n\t<87ziae2rrp.fsf_-_@redhat.com> <87mv5wppmd.fsf@redhat.com>\n\t<87efqtieq4.fsf@redhat.com> <87mv3popez.fsf@redhat.com>","From":"Jim Wilson <jimw@sifive.com>","Message-ID":"<60ea6922-52e9-bf53-9af5-75550828a047@sifive.com>","Date":"Wed, 15 Nov 2017 15:35:16 -0800","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.4.0","MIME-Version":"1.0","In-Reply-To":"<87mv3popez.fsf@redhat.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit"}},{"id":1805428,"web_url":"http://patchwork.ozlabs.org/comment/1805428/","msgid":"<87wp2qzwsd.fsf@redhat.com>","list_archive_url":null,"date":"2017-11-16T04:12:50","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":10371,"url":"http://patchwork.ozlabs.org/api/people/10371/","name":"Sergio Durigan Junior","email":"sergiodj@redhat.com"},"content":"On Wednesday, November 15 2017, Jim Wilson wrote:\n\n> On 11/13/2017 01:10 PM, Sergio Durigan Junior wrote:\n>> On Tuesday, September 26 2017, I wrote:\n>>\n>>> Ping^2.\n>>\n>> Ping^3.\n>>\n>> I'm sending the updated ChangeLog/patch.  I'm also removing gdb-patches\n>> from the Cc list.\n>>\n>> libcc1/ChangeLog:\n>> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n>> \t    Pedro Alves  <palves@redhat.com>\n>>\n>> \t* Makefile.am: Remove references to c-compiler-name.h and\n>> \tcp-compiler-name.h\n>> \t* Makefile.in: Regenerate.\n>> \t* compiler-name.hh: New file.\n>> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n>> \tcompiler-name.hh.\n>> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n>> \tcompiler-name.hh.\n>\n> OK.\n>\n> This is a gcc plugin for gdb, so it makes sense that gdb developers\n> should be allowed to decide how it should work.\n\nThanks Jim and Alex for the review.\n\nI don't have permission to push to the GCC repository, so if one of you\nguys could do it for me I'd appreciate.\n\nThank you,","headers":{"Return-Path":"<gcc-patches-return-466932-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-466932-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"xAIA/yur\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ycnsc1Vv1z9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 16 Nov 2017 15:13:04 +1100 (AEDT)","(qmail 97630 invoked by alias); 16 Nov 2017 04:12:54 -0000","(qmail 97616 invoked by uid 89); 16 Nov 2017 04:12:53 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tThu, 16 Nov 2017 04:12:52 +0000","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.15])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id 2E6C180467;\n\tThu, 16 Nov 2017 04:12:51 +0000 (UTC)","from localhost (unused-10-15-17-193.yyz.redhat.com\n\t[10.15.17.193])\tby smtp.corp.redhat.com (Postfix) with ESMTPS\n\tid BAEE2173D2; Thu, 16 Nov 2017 04:12:50 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=Z6m0Cm4Sg6te80P0\n\tmRrTJj62BVHZvo6XuM/EbOAwbXBzw3KgfzxnvxFYjlDxO/GX3G0Lwlm4217TzdlC\n\tG9DCQSArLHo4H14IXGCUCbNEOGg/zFNCp/JenTINHDxxV3E1DNiPj2pPvyqqnhCV\n\tVMgeUMm061LG9A8Pu7BTLTeLubk=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=Oi4EUrdLIha7wl9xSjcDnI\n\t5fEjQ=; b=xAIA/yur/FSloXsMgpRF4W7fxOxTxKrjziWxBSmwOseEq3SEdmudgy\n\tmKQLzHZh236HPYuJTbBgPn4TlfbluTL5ne0ZOtzZYWygBpQEo+SB/QUOt3B7j7xp\n\tLsy8I5wdvuSrG9TFC1Qf573UgXHHahT/RKRrN8Fn7B+SvEr/aDNC0=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-1.7 required=5.0 tests=BAYES_00,\n\tKB_WAM_FROM_NAME_SINGLEWORD, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=no version=3.3.2 spammy=H*f:sk:87mv3po","X-HELO":"mx1.redhat.com","From":"Sergio Durigan Junior <sergiodj@redhat.com>","To":"Jim Wilson <jimw@sifive.com>","Cc":"Pedro Alves <palves@redhat.com>, GCC Patches <gcc-patches@gcc.gnu.org>,\n\tTom Tromey <tom@tromey.com>, Keith Seitz <keiths@redhat.com>,\n\tPhil Muldoon <pmuldoon@redhat.com>, Alexandre Oliva <aoliva@redhat.com>","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","References":"<87mv6qhq9u.fsf@redhat.com>\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\t<87ziae2rrp.fsf_-_@redhat.com>\n\t<87mv5wppmd.fsf@redhat.com>\t<87efqtieq4.fsf@redhat.com>\n\t<87mv3popez.fsf@redhat.com>\t<60ea6922-52e9-bf53-9af5-75550828a047@sifive.com>","Date":"Wed, 15 Nov 2017 23:12:50 -0500","In-Reply-To":"<60ea6922-52e9-bf53-9af5-75550828a047@sifive.com> (Jim\n\tWilson's\tmessage of \"Wed, 15 Nov 2017 15:35:16 -0800\")","Message-ID":"<87wp2qzwsd.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1805885,"web_url":"http://patchwork.ozlabs.org/comment/1805885/","msgid":"<db3af37a-e01d-203a-d214-91487457e406@redhat.com>","list_archive_url":null,"date":"2017-11-16T18:15:03","subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","submitter":{"id":4400,"url":"http://patchwork.ozlabs.org/api/people/4400/","name":"Jeff Law","email":"law@redhat.com"},"content":"On 11/15/2017 09:12 PM, Sergio Durigan Junior wrote:\n> On Wednesday, November 15 2017, Jim Wilson wrote:\n> \n>> On 11/13/2017 01:10 PM, Sergio Durigan Junior wrote:\n>>> On Tuesday, September 26 2017, I wrote:\n>>>\n>>>> Ping^2.\n>>>\n>>> Ping^3.\n>>>\n>>> I'm sending the updated ChangeLog/patch.  I'm also removing gdb-patches\n>>> from the Cc list.\n>>>\n>>> libcc1/ChangeLog:\n>>> 2017-09-01  Sergio Durigan Junior  <sergiodj@redhat.com>\n>>> \t    Pedro Alves  <palves@redhat.com>\n>>>\n>>> \t* Makefile.am: Remove references to c-compiler-name.h and\n>>> \tcp-compiler-name.h\n>>> \t* Makefile.in: Regenerate.\n>>> \t* compiler-name.hh: New file.\n>>> \t* libcc1.cc: Don't include c-compiler-name.h.  Include\n>>> \tcompiler-name.hh.\n>>> \t* libcp1.cc: Don't include cp-compiler-name.h.  Include\n>>> \tcompiler-name.hh.\n>>\n>> OK.\n>>\n>> This is a gcc plugin for gdb, so it makes sense that gdb developers\n>> should be allowed to decide how it should work.\n> \n> Thanks Jim and Alex for the review.\n> \n> I don't have permission to push to the GCC repository, so if one of you\n> guys could do it for me I'd appreciate.\nDone.\njeff","headers":{"Return-Path":"<gcc-patches-return-467033-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-467033-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"Ca6vPrMc\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yd8Yp3dSQz9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 17 Nov 2017 05:15:42 +1100 (AEDT)","(qmail 124983 invoked by alias); 16 Nov 2017 18:15:33 -0000","(qmail 124950 invoked by uid 89); 16 Nov 2017 18:15:31 -0000","from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tThu, 16 Nov 2017 18:15:29 +0000","from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com\n\t[10.5.11.12])\t(using TLSv1.2 with cipher AECDH-AES256-SHA\n\t(256/256 bits))\t(No client certificate requested)\tby\n\tmx1.redhat.com (Postfix) with ESMTPS id B00AE61D0E;\n\tThu, 16 Nov 2017 18:15:28 +0000 (UTC)","from localhost.localdomain (ovpn-112-12.rdu2.redhat.com\n\t[10.10.112.12])\tby smtp.corp.redhat.com (Postfix) with ESMTP\n\tid A312E5C308; Thu, 16 Nov 2017 18:15:04 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=j9jOqpuX5rNq4B7swAZy+eYeGnd4SJTy9+eXdwIxFLuxWJgkf0kEy\n\tE1NziThOj5OTazI7cA4Xp1RG/bwUYGChQvznysQG9RP8g0PxjZZn4ycdzDOAVdRj\n\tUHePkGkuyp9xJKssE9JPUShk5a9+6/tq7L2mpaENNoZ1jWFWeeXBus=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=YLBVfuMdAWP1hUsiZdbXbUW4bw8=; b=Ca6vPrMc2HUAx7xm6n9nwkrGdrv2\n\tC6IWSccICU2pNx0tMlTDRyOnLehDNLsNe1e+F64H40+GW6ULAdiTtVyCE9cXfIl6\n\tGrn8gP4FFablh1Pzq9trsm5wcviRRSmDzQ2GZ8w+0otyEJuu5vXcNGlIk0+CORXJ\n\tMqEjLIOv69FzzTA=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-1.7 required=5.0 tests=BAYES_00,\n\tKB_WAM_FROM_NAME_SINGLEWORD, RP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=no version=3.3.2 spammy=H*f:sk:87mv3po","X-HELO":"mx1.redhat.com","Subject":"Re: [PATCH v2] [libcc1] Rename C{,\n\tP}_COMPILER_NAME and remove triplet from them","To":"Sergio Durigan Junior <sergiodj@redhat.com>, Jim Wilson <jimw@sifive.com>","Cc":"Pedro Alves <palves@redhat.com>, GCC Patches <gcc-patches@gcc.gnu.org>,\n\tTom Tromey <tom@tromey.com>, Keith Seitz <keiths@redhat.com>,\n\tPhil Muldoon <pmuldoon@redhat.com>, Alexandre Oliva <aoliva@redhat.com>","References":"<87mv6qhq9u.fsf@redhat.com>\n\t<af151878-0195-dd4b-06ea-9c1c05b6903e@redhat.com>\n\t<87ziae2rrp.fsf_-_@redhat.com> <87mv5wppmd.fsf@redhat.com>\n\t<87efqtieq4.fsf@redhat.com> <87mv3popez.fsf@redhat.com>\n\t<60ea6922-52e9-bf53-9af5-75550828a047@sifive.com>\n\t<87wp2qzwsd.fsf@redhat.com>","From":"Jeff Law <law@redhat.com>","Message-ID":"<db3af37a-e01d-203a-d214-91487457e406@redhat.com>","Date":"Thu, 16 Nov 2017 11:15:03 -0700","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.4.0","MIME-Version":"1.0","In-Reply-To":"<87wp2qzwsd.fsf@redhat.com>","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"7bit","X-IsSubscribed":"yes"}}]