From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55334 invoked by alias); 4 May 2017 16:16:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 55277 invoked by uid 89); 4 May 2017 16:16:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=Ie, ripe X-HELO: mail-wm0-f54.google.com Received: from mail-wm0-f54.google.com (HELO mail-wm0-f54.google.com) (74.125.82.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 May 2017 16:16:37 +0000 Received: by mail-wm0-f54.google.com with SMTP id m123so510061wma.0 for ; Thu, 04 May 2017 09:16:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=FqPBj7Vb9L8jBKVflxV2M/snvzaD7e+tdHqV35Niqug=; b=YTpQo9mV/6iqP6GD5fqFkBOz0px93oBMlSBnugN5y5Pg631QNSLgr7VEZmeFr0SWA9 iTx8fU8NpIaVBPPNq2X5yQhROCNtLwrNhOyyc0PivDgJVzXbQ76U62cgZ01AWguKf2sp 5mvjw8ar6GwY5/3MPzcw0zg2XyPaUWS2Gqris+ESNNS255aKvkitcPp0FK42nYjbGLTR HaUJ07wrlz8mggC0A50O4w0/9EBMBaTuds7QfNvoaSuWbQSvtk1lPep1hX7Lzp6Sh2sj qv5VYKAZKrNVhPM6oDz7YM35vNOS7ZfefJqk88ELrFxnmBjVRu09N2LnDvf0mlGI43/C dszg== X-Gm-Message-State: AN3rC/4RgqbH/SltqVYdnxI/eveQp+3nlVRbuQyNJzVQxsYKzG9sWb0l 3bJr7OlnkRAtHGpo X-Received: by 10.28.70.129 with SMTP id t123mr2548795wma.98.1493914597809; Thu, 04 May 2017 09:16:37 -0700 (PDT) Received: from [192.168.0.102] ([37.189.166.198]) by smtp.gmail.com with ESMTPSA id k65sm1844961wmd.28.2017.05.04.09.16.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 May 2017 09:16:36 -0700 (PDT) Subject: Re: [PATCH v2 1/2] Introduce "gdb/configure.nat" (and delete "gdb/config/*/*.mh" files) To: Sergio Durigan Junior , GDB Patches References: <20170425202309.15771-1-sergiodj@redhat.com> <20170503034931.4515-1-sergiodj@redhat.com> <20170503034931.4515-2-sergiodj@redhat.com> Cc: Simon Marchi , John Baldwin From: Pedro Alves Message-ID: <9d941b3b-1b16-3c17-6cae-11940ade7477@redhat.com> Date: Thu, 04 May 2017 16:16:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20170503034931.4515-2-sergiodj@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2017-05/txt/msg00114.txt.bz2 On 05/03/2017 04:49 AM, Sergio Durigan Junior wrote: > diff --git a/gdb/Makefile.in b/gdb/Makefile.in > index b865b7c..e26079a 100644 > --- a/gdb/Makefile.in > +++ b/gdb/Makefile.in > @@ -903,7 +903,16 @@ ALL_TARGET_OBS = \ > xtensa-tdep.o > > # Host-dependent makefile fragment comes in here. Stale comment. Should say something about the variables being defined in configure.nat. > -@host_makefile_frag@ > +NAT_FILE = @NAT_FILE@ > +NATDEPFILES = @NATDEPFILES@ > +NAT_CDEPS = @NAT_CDEPS@ > +LOADLIBES = @LOADLIBES@ > +MH_CFLAGS = @MH_CFLAGS@ > +XM_CLIBS = @XM_CLIBS@ > +NAT_GENERATED_FILES = @NAT_GENERATED_FILES@ > +HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@ > + > +@NAT_EXTRA_FRAGS_FILE@ And this last line here is where we source the fragment, so that comment above should move here with s/Host/Native-target/ I think it should be "FRAG", singular. "makefile fragment file" is the term most often used. Also, I think "host_makefile_frag" was lowercase because that variable is not meant to be passed to make or any tool make invokes. > # End of host-dependent makefile fragment Likewise, mind the comments. > > -# Copyright (C) 2013-2017 Free Software Foundation, Inc. > -# > diff --git a/gdb/config/i386/i386gnu.mh b/gdb/config/i386/i386gnu-extra.mh > similarity index 58% > rename from gdb/config/i386/i386gnu.mh > rename to gdb/config/i386/i386gnu-extra.mh Why the "extra" rename ? If anything, I'd expect i386gnu.mh -> i386gnu.mn? > # Use our own user stubs for the msg rpcs, so we can make them time out, in > # case the program is fucked, or we guess the wrong signal thread. > -msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;' > +msg-MIGUFLAGS=-D'MSG_IMPORTS=waittime 1000;' > > # ick > -MIGCOM = $(MIG) -cc cat - /dev/null > +MIGCOM=$(MIG) -cc cat - /dev/null Simon recently went through all variables making sure there's a space around the "=". This goes in the other direction. > > # Reply servers need special massaging of the code mig generates, to make > # them work correctly for error returns in some cases. > @@ -33,9 +21,4 @@ MIGCOM = $(MIG) -cc cat - /dev/null > | $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h > > # MIG stubs are not yet ready for C++ compilation. > -%_S.o %_U.o : COMPILE.post += -x c > - > -NAT_GENERATED_FILES = notify_S.h notify_S.c \ > - process_reply_S.h process_reply_S.c \ > - msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \ > - exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c > +%_S.o %_U.o : COMPILE.post +=-x c" Was that quote char (") at the end added on purpose? Looks like a typo. Since most of the MIG related bits are left in the makefile fragment, I wonder whether it really makes sense to move the NAT_GENERATED_FILES setting far away from them. > diff --git a/gdb/configure.ac b/gdb/configure.ac > index 50f6f59..f9d8aac 100644 > --- a/gdb/configure.ac > +++ b/gdb/configure.ac > @@ -2199,29 +2199,22 @@ if test "${host}" != "${target}"; then > fi > AC_SUBST(target_subdir) > > -frags= > +# Importing nat definitions. s/Importing/Import/ > +NAT_EXTRA_FRAGS_FILE=/dev/null > if test "${gdb_native}" = "yes"; then > - host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh > - if test ! -f ${host_makefile_frag}; then > - AC_MSG_ERROR("*** Gdb does not support native target ${host}") > - fi > - frags="$frags $host_makefile_frag" > -else > - host_makefile_frag=/dev/null > + . ${srcdir}/configure.nat > + nativefile=$NAT_FILE > fi There's (at least) a related comment that would be good to update: # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link # to an empty version. as NAT_FILE now comes from configure.nat, not the .mh files. > +# Variables defined here: > +# > +# NAT_FILE - The header file with definitions for this native target. > +# > +# NATDEPFILES - Source files required for native debugging on this > +# native target. > +# > +# NAT_CDEPS - Dynamic symbols to be exported for libthread_db. > +# > +# LOADLIBES - Libraries against which GDB will be linked for this > +# native target. > +# > +# MH_CFLAGS - Additional CFLAGS for this native target. At least MH_CFLAGS above is host-specific, not related to the native target. See for example: # doublest.c currently assumes some properties of FP arithmetic # on the host which require this. MH_CFLAGS = -mieee # When compiled with cc, for debugging, this argument should be passed. # We have no idea who our current compiler is though, so we skip it. # MH_CFLAGS = -bnodelcsect These are clearly always needed to build gdb on this host, independently of whether native target is being built. I.e., when gdb is being built as a cross debugger, with --target=something-else-not-the-host. Hence the MH_ prefix. Some of those variables are ripe for a rename / normalization, but that's something that can always be done after, and will actually be simpler with your patchset in. Thanks, Pedro Alves