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