From patchwork Tue Nov 6 17:35:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 30041 Received: (qmail 8944 invoked by alias); 6 Nov 2018 17:35:41 -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 8828 invoked by uid 89); 6 Nov 2018 17:35:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=submodule, (unknown) X-HELO: mail-wm1-f68.google.com Received: from mail-wm1-f68.google.com (HELO mail-wm1-f68.google.com) (209.85.128.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Nov 2018 17:35:28 +0000 Received: by mail-wm1-f68.google.com with SMTP id l2-v6so13021472wmh.3 for ; Tue, 06 Nov 2018 09:35:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=Asmdfyotjg36fgm1KsCH+OiqZRVIYqvsvT3QXb4kNS0=; b=dRbTXvq7DYGNSMUZTBDZzEwnCHNvYrKO3namW+2mlQtX5OtgtulS5g61fP9F/Mb47W pes8+FAqFbQpZC1RGpuHohD2VtXLpB7SL6XqakL8prqKgwnVx5ouLQfbylOhuMFlkqcn EPg5fJKKiflmhKe+22FEZEyRcWVYLYKNIvTe8JWvBgm8m/JEDgmiPpBj+BznNorZQTcb ZVl9SdQ4RTMERYIpICSn3ymFW7oaD5xJ2zVBzlPht46xJLmN4p8mSY7JSsUq0bGG62XD xjuKctbh3GVvkXS5Ac3SNRUv2BIpl3pIh6QS0mMEaiziJAMZdbfBiTPMqb/8dfsUAVgy vANw== Return-Path: Received: from localhost (host81-148-252-35.range81-148.btcentralplus.com. [81.148.252.35]) by smtp.gmail.com with ESMTPSA id z7-v6sm13326671wrv.21.2018.11.06.09.35.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Nov 2018 09:35:24 -0800 (PST) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: vapier@gentoo.org, Andrew Burgess Subject: [PATCH 1/2] sim/opcodes: Allow use of out of tree cgen source directory Date: Tue, 6 Nov 2018 17:35:17 +0000 Message-Id: <0745ff244d76a8cd8ec7e7b9a53840f3773a139d.1541525137.git.andrew.burgess@embecosm.com> In-Reply-To: References: In-Reply-To: References: X-IsSubscribed: yes When configuring with '--enbale-cgen-maint' the default for both the opcodes/ and sim/ directories is to assume that the cgen source is within the binutils-gdb source tree as binutils-gdb/cgen/. In the old cvs days, this worked well, as cgen was just another sub-module of the single cvs repository and could easily be checked out within the binutils-gdb directory, and managed by cvs in the normal way. Now that binutils-gdb is in git, while cgen is still in cvs, placing the cgen respository within the binutils-gdb tree is more troublesome, and it would be nice if the two tools could be kept separate. Luckily there is already some initial code in the configure.ac files for both opcodes/ and sim/ to support having cgen be located outside of the binutils-gdb tree, however, this was speculative code written imagining a future where cgen would be built and installed to some location. Right now there is no install support for cgen, and so the configure code in opcodes/ and sim/ doesn't really do anything useful. In this commit I improve on this code slightly to allow binutils-gdb to be configured so that it can make use of a cgen source directory that is outside of the binutils-gdb tree. With this commit applied it is now possible to configure and build binutils-gdb like this: /path/to/binutils-gdb/src/configure --enable-cgen-maint=/path/to/cgen/src/cgen/ make all-opcodes make -C opcodes run-cgen-all Just in case anyone is still using cgen inside the binutils-gdb tree, I have left the default behaviour of '--enable-cgen-maint' (with no parameter) unchanged, that is it looks for the cgen directory as 'binutils-gdb/cgen/'. opcodes/ChangeLog: * configure.ac (enable-cgen-maint): Support passing path to cgen source tree. * configure: Regenerate. sim/ChangeLog: * common/acinclude.m4 (enable-cgen-maint): Support passing path to cgen source tree. * cris/configure: Regenerate. * frv/configure: Regenerate. * iq2000/configure: Regenerate. * lm32/configure: Regenerate. * m32r/configure: Regenerate. * or1k/configure: Regenerate. * sh64/configure: Regenerate. --- opcodes/ChangeLog | 6 ++++++ opcodes/configure | 18 ++++++++++++++---- opcodes/configure.ac | 18 ++++++++++++++---- sim/ChangeLog | 12 ++++++++++++ sim/common/acinclude.m4 | 20 +++++++++++++++----- sim/cris/configure | 20 +++++++++++++++----- sim/frv/configure | 20 +++++++++++++++----- sim/iq2000/configure | 20 +++++++++++++++----- sim/lm32/configure | 20 +++++++++++++++----- sim/m32r/configure | 20 +++++++++++++++----- sim/or1k/configure | 20 +++++++++++++++----- sim/sh64/configure | 20 +++++++++++++++----- 12 files changed, 166 insertions(+), 48 deletions(-) diff --git a/opcodes/configure b/opcodes/configure index 389e5513cf..28da5a6824 100755 --- a/opcodes/configure +++ b/opcodes/configure @@ -12574,11 +12574,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. cgen_maint=yes - cgendir=${cgen_maint}/lib/cgen + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/opcodes/configure.ac b/opcodes/configure.ac index 4c3698356b..9e48fedf9a 100644 --- a/opcodes/configure.ac +++ b/opcodes/configure.ac @@ -109,11 +109,21 @@ AC_ARG_ENABLE(cgen-maint, yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. cgen_maint=yes - cgendir=${cgen_maint}/lib/cgen + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac])dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} = xyes) diff --git a/sim/common/acinclude.m4 b/sim/common/acinclude.m4 index abc15a93ac..aa68e52d0d 100644 --- a/sim/common/acinclude.m4 +++ b/sim/common/acinclude.m4 @@ -851,11 +851,21 @@ AC_ARG_ENABLE(cgen-maint, yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac])dnl dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} != xno) diff --git a/sim/cris/configure b/sim/cris/configure index 8ef9155d82..3894a9586f 100755 --- a/sim/cris/configure +++ b/sim/cris/configure @@ -13912,11 +13912,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/frv/configure b/sim/frv/configure index 934afd06ca..a20a460abd 100755 --- a/sim/frv/configure +++ b/sim/frv/configure @@ -13681,11 +13681,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/iq2000/configure b/sim/iq2000/configure index 9486ef4a3d..f610141f72 100755 --- a/sim/iq2000/configure +++ b/sim/iq2000/configure @@ -13678,11 +13678,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/lm32/configure b/sim/lm32/configure index 9624db3d83..f400a956f5 100755 --- a/sim/lm32/configure +++ b/sim/lm32/configure @@ -13678,11 +13678,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/m32r/configure b/sim/m32r/configure index 43c25a621f..e17b3c2f62 100755 --- a/sim/m32r/configure +++ b/sim/m32r/configure @@ -13680,11 +13680,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/or1k/configure b/sim/or1k/configure index 93aeb8f50d..335ae8a542 100755 --- a/sim/or1k/configure +++ b/sim/or1k/configure @@ -13788,11 +13788,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi diff --git a/sim/sh64/configure b/sim/sh64/configure index 17a483329f..89612913f6 100755 --- a/sim/sh64/configure +++ b/sim/sh64/configure @@ -13678,11 +13678,21 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + # This code would handle a cgen install. For now we assume + # 'lib', but this is really just a place holder. Maybe + # having a `share' directory might be more appropriate for + # the .scm, .cpu, etc. files. + cgendir=${enableval}/lib/cgen + fi ;; esac fi