PING: Re: [PATCH] sim/opcodes: Allow use of out of tree cgen source directory
Andrew Burgess
andrew.burgess@embecosm.com
Tue Oct 23 10:15:00 GMT 2018
Ping! For the sim/ parts (Thanks Nick for the opcodes/ review).
Andrew
* Andrew Burgess <andrew.burgess@embecosm.com> [2018-10-10 17:02:46 +0100]:
> 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
> --
> 2.14.4
>
More information about the Binutils
mailing list