From: Pedro Alves <palves@redhat.com>
To: Christian Biesinger <cbiesinger@google.com>
Cc: Tom Tromey <tom@tromey.com>, gdb-patches <gdb-patches@sourceware.org>
Subject: Re: [PATCH v2 0/6] Move gdbsupport to top level
Date: Thu, 16 Jan 2020 17:22:00 -0000 [thread overview]
Message-ID: <585a0731-74a2-7712-bb4f-8c69fdcecaf5@redhat.com> (raw)
In-Reply-To: <CAPTJ0XGX=xFL4Wx7842QJpNQMx+ss9yzpFkofJp9i6190wVH2g@mail.gmail.com>
On 1/16/20 2:54 AM, Christian Biesinger via gdb-patches wrote:
> On Wed, Jan 15, 2020 at 5:12 PM Pedro Alves <palves@redhat.com> wrote:
>>
>> On 1/15/20 9:46 PM, Pedro Alves wrote:
>>> On 1/15/20 9:35 PM, Pedro Alves wrote:
>>>> On 1/15/20 8:23 PM, Pedro Alves wrote:
>>>>> On 1/15/20 2:55 PM, Pedro Alves wrote:
>>>>>> On 1/15/20 2:41 PM, Pedro Alves wrote:
>>>>>>> Don't know what I think of gnulib headers including <config.h>.
>>>>>>> Maybe we should rename gdb's config.h to gdb-config.h too.
>>>>>>
>>>>>> Hit reply to soon. I meant to add,
>>>>>>
>>>>>> ... and then, add a manually-written config.h in the build
>>>>>> dir that does:
>>>>>>
>>>>>> #include <gdbsupport/support-config.h>
>>>>>> #include <gdb-config.h>
>>>>>>
>>>>>> We'd do the same to gdbsupport, add a config.h in its
>>>>>> build dir that does:
>>>>>>
>>>>>> #include "gnulib/config.h"
>>>>>> #include <support-config.h>
>>>>>>
>>>>>> Those config.h files would go in the build dirs so that
>>>>>> they're not picked by other build directories.
>>>>>>
>>>>>> With that, any "#include <config.h>" in any header ends up
>>>>>> picking the currently-being-built project's config.h, plus
>>>>>> the dependencies' config.h files.
>>>>>>
>>>>>> Just a half-baked thought. Not sure it's the best idea.
>>>>>
>>>>> I tried it and it seems to work OK. Fixes the build at least.
>>>>> Still not sure it's the best idea. WDYT?
>>>>>
>>>>> The patch is actually quite small, but since I've rename
>>>>> config.h -> gdb-config.h etc., and _then_ added new config.h
>>>>> files, git doesn't notice the renames.
>>>>>
>>>>> I wonder whether there's anything could do to stop gnulib and
>>>>> gdbsupport's configure from defining PACKAGE_NAME etc. in their
>>>>> generated config.h files.
>>>>>
>>>> Here's an improved version, which fixes gdbserver's standalone
>>>> build, simplifies gdbsupport's config.h (there's no need for
>>>> #ifdef GDBSERVER stuff since gdbserver doesn't use gdbsupport
>>>> as a library yet), and adds copyright/intro comments.
>>>>
>>>
>>> I put this in users/palves/config.h if you want to play with it.
>>
>> I've also pushed a patch there to fix the missing -std=gnu++11 issue.
>
> For that patch, why not just use AM_CFLAGS/AM_CXXFLAGS?
I was mainly following what GDB does, with:
COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT)
I guess I was the one who did that, so that's not going to be
a strong explanation. :-)
It's just that I feel like the compiler mode is more about
picking a different compiler than about picking some flags
like warnings flags or compilation levels. I think that
in practice the only difference is that you see the
-std=gnu++11 next to the compiler command:
$ rm -f selftest.o && make V=1 selftest.o
/opt/gcc-4.8/bin/g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I/home/pedro/gdb/binutils-gdb/src/gdbsupport -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/config.h -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../include -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../gdb -I../gnulib/import -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../gnulib/import -I.. -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/.. -I../bfd -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../bfd -g3 -O0 -MT selftest.o -MD -MP -MF .deps/selftest.Tpo -c -o selftest.o /home/pedro/gdb/binutils-gdb/src/gdbsupport/selftest.c
mv -f .deps/selftest.Tpo .deps/selftest.Po
vs, with AM_CFLAGS:
$ rm -f selftest.o && make V=1 selftest.o
/opt/gcc-4.8/bin/g++ -DHAVE_CONFIG_H -I. -I/home/pedro/gdb/binutils-gdb/src/gdbsupport -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/config.h -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../include -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../gdb -I../gnulib/import -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../gnulib/import -I.. -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/.. -I../bfd -I/home/pedro/gdb/binutils-gdb/src/gdbsupport/../bfd -std=gnu++11 -g3 -O0 -MT selftest.o -MD -MP -MF .deps/selftest.Tpo -c -o selftest.o /home/pedro/gdb/binutils-gdb/src/gdbsupport/selftest.c
mv -f .deps/selftest.Tpo .deps/selftest.Po
AFAICT, overriding CXXFLAGS or CXX in the make invocation works
the same in either case.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2020-01-16 16:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-09 0:58 Tom Tromey
2020-01-09 0:58 ` [PATCH v2 6/6] Don't link gdb twice against libiberty Tom Tromey
2020-01-09 0:58 ` [PATCH v2 4/6] Remove use of <config.h> from gdb/nat/ Tom Tromey
2020-01-09 0:58 ` [PATCH v2 1/6] Consolidate definition of USE_WIN32API Tom Tromey
2020-01-09 0:58 ` [PATCH v2 5/6] Add gdbsupport check-defines script Tom Tromey
2020-01-11 16:58 ` [PATCH v2 0/6] Move gdbsupport to top level Tom Tromey
2020-01-12 2:48 ` Simon Marchi
2020-01-14 23:25 ` Tom Tromey
2020-01-15 0:36 ` Tom Tromey
2020-01-15 21:27 ` Christian Biesinger via gdb-patches
2020-01-17 18:02 ` Tom Tromey
2020-01-15 14:30 ` Pedro Alves
[not found] ` <8a8de6a9-37b8-cad3-c818-be903037fe48@redhat.com>
2020-01-15 16:07 ` Pedro Alves
[not found] ` <87c733a2-2b25-a954-88a1-9bfb1a7eca12@redhat.com>
2020-01-15 21:46 ` Pedro Alves
2020-01-15 22:12 ` Pedro Alves
2020-01-16 0:48 ` Pedro Alves
2020-01-16 2:57 ` Christian Biesinger via gdb-patches
2020-01-16 17:22 ` Pedro Alves [this message]
2020-01-16 18:01 ` Christian Biesinger via gdb-patches
2020-01-16 18:28 ` Pedro Alves
2020-01-16 19:21 ` Christian Biesinger via gdb-patches
2020-01-16 9:02 ` Simon Marchi
2020-01-16 15:24 ` Pedro Alves
2020-01-17 12:20 ` Simon Marchi
2020-01-17 13:37 ` Pedro Alves
2020-01-17 14:40 ` Simon Marchi
2020-01-17 15:32 ` Pedro Alves
2020-01-17 18:13 ` Tom Tromey
2020-01-16 4:23 ` Simon Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=585a0731-74a2-7712-bb4f-8c69fdcecaf5@redhat.com \
--to=palves@redhat.com \
--cc=cbiesinger@google.com \
--cc=gdb-patches@sourceware.org \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox