Re: [U-Boot] [PATCH] script: Make the get_default_envs.sh script working with newest u-boot

2018-02-14 Thread Lukasz Majewski
Hi Tuomas,

> On Wed, 14 Feb 2018 09:50:17 +0100
> Lukasz Majewski  wrote:
> 
> > On Wed, 14 Feb 2018 03:25:58 +0200
> > Tuomas Tynkkynen  wrote:
> >   
> > > Hi,
> > > 
> > > On Tue, 13 Feb 2018 23:01:13 +0100
> > > Lukasz Majewski  wrote:
> > >   
> > > > This commit fixes several issues:
> > > > 
> > > > - After moving env related code to ./env directory the
> > > > env_common.o file is no longer present in the system (has been
> > > > replaced with built-in.o).
> > > > 
> > > > - Use ${OBJCOPY} if available, fallback to system default's
> > > > objcopy if not present.
> > > > 
> > > > - Extend the script to accept different build directory than
> > > > current one. It is extremely handy with OE usage, where source
> > > > code is separated from build.
> > > > 
> > > > Signed-off-by: Lukasz Majewski 
> > > > ---
> > > > 
> > > >  scripts/get_default_envs.sh | 19 ++-
> > > >  1 file changed, 14 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/scripts/get_default_envs.sh
> > > > b/scripts/get_default_envs.sh index 7955db60e5..bbb6d0a6ef
> > > > 100755 --- a/scripts/get_default_envs.sh
> > > > +++ b/scripts/get_default_envs.sh
> > > > @@ -6,16 +6,24 @@
> > > >  #
> > > >  
> > > >  # This file extracts default envs from built u-boot
> > > > -# usage: get_default_envs.sh > u-boot-env-default.txt
> > > > +# usage: get_default_envs.sh [build dir] >
> > > > u-boot-env-default.txt set -ue
> > > >  
> > > > -ENV_OBJ_FILE="env_common.o"
> > > > +: "${OBJCOPY:=objcopy}"
> > > 
> > > Maybe "${CROSS_COMPILE}objcopy" would be a better default as
> > > that's what the build system uses.  
> > 
> > Unfortunately not with OE builds. In OE, the OBJCOPY is set to arm
> > specific objcopy.
> > 
> > With fallback (objcopy) from your local machine - it depends if it
> > supports multi arch or not.  
> 
> No, I meant that instead of having a fallback of "objcopy", have a 
> fallback of "${CROSS_COMPILE}objcopy". I.e. squashing this change:
> 
> diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
> index 3e532d12c4..184cc19ab7 100755
> --- a/scripts/get_default_envs.sh
> +++ b/scripts/get_default_envs.sh
> @@ -9,7 +9,7 @@
>  # usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
>  set -ue
>  
> -: "${OBJCOPY:=objcopy}"
> +: "${OBJCOPY:=${CROSS_COMPILE:-}objcopy}"

Yes, you are obviously right. I've misunderstood you, sorry.

I will prepare v3 immediately.

Thanks.

>  
>  ENV_OBJ_FILE="built-in.o"
>  ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"
> 
> That way the script works out-of-the-box for people who do the usual
> 
> export CROSS_COMPILE=aarch64-linux-gnu- (or whatever)
> 
> when building U-Boot.




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de


pgpVcT1syEVjb.pgp
Description: OpenPGP digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] script: Make the get_default_envs.sh script working with newest u-boot

2018-02-14 Thread Tuomas Tynkkynen
On Wed, 14 Feb 2018 09:50:17 +0100
Lukasz Majewski  wrote:

> On Wed, 14 Feb 2018 03:25:58 +0200
> Tuomas Tynkkynen  wrote:
> 
> > Hi,
> > 
> > On Tue, 13 Feb 2018 23:01:13 +0100
> > Lukasz Majewski  wrote:
> > 
> > > This commit fixes several issues:
> > > 
> > > - After moving env related code to ./env directory the env_common.o
> > > file is no longer present in the system (has been replaced with
> > > built-in.o).
> > > 
> > > - Use ${OBJCOPY} if available, fallback to system default's objcopy
> > > if not present.
> > > 
> > > - Extend the script to accept different build directory than
> > > current one. It is extremely handy with OE usage, where source code
> > > is separated from build.
> > > 
> > > Signed-off-by: Lukasz Majewski 
> > > ---
> > > 
> > >  scripts/get_default_envs.sh | 19 ++-
> > >  1 file changed, 14 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/scripts/get_default_envs.sh
> > > b/scripts/get_default_envs.sh index 7955db60e5..bbb6d0a6ef 100755
> > > --- a/scripts/get_default_envs.sh
> > > +++ b/scripts/get_default_envs.sh
> > > @@ -6,16 +6,24 @@
> > >  #
> > >  
> > >  # This file extracts default envs from built u-boot
> > > -# usage: get_default_envs.sh > u-boot-env-default.txt
> > > +# usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
> > >  set -ue
> > >  
> > > -ENV_OBJ_FILE="env_common.o"
> > > +: "${OBJCOPY:=objcopy}"  
> > 
> > Maybe "${CROSS_COMPILE}objcopy" would be a better default as that's
> > what the build system uses.
> 
> Unfortunately not with OE builds. In OE, the OBJCOPY is set to arm
> specific objcopy.
> 
> With fallback (objcopy) from your local machine - it depends if it
> supports multi arch or not.

No, I meant that instead of having a fallback of "objcopy", have a 
fallback of "${CROSS_COMPILE}objcopy". I.e. squashing this change:

diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
index 3e532d12c4..184cc19ab7 100755
--- a/scripts/get_default_envs.sh
+++ b/scripts/get_default_envs.sh
@@ -9,7 +9,7 @@
 # usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
 set -ue
 
-: "${OBJCOPY:=objcopy}"
+: "${OBJCOPY:=${CROSS_COMPILE:-}objcopy}"
 
 ENV_OBJ_FILE="built-in.o"
 ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"

That way the script works out-of-the-box for people who do the usual

export CROSS_COMPILE=aarch64-linux-gnu- (or whatever)

when building U-Boot.
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] script: Make the get_default_envs.sh script working with newest u-boot

2018-02-14 Thread Lukasz Majewski
On Wed, 14 Feb 2018 03:25:58 +0200
Tuomas Tynkkynen  wrote:

> Hi,
> 
> On Tue, 13 Feb 2018 23:01:13 +0100
> Lukasz Majewski  wrote:
> 
> > This commit fixes several issues:
> > 
> > - After moving env related code to ./env directory the env_common.o
> > file is no longer present in the system (has been replaced with
> > built-in.o).
> > 
> > - Use ${OBJCOPY} if available, fallback to system default's objcopy
> > if not present.
> > 
> > - Extend the script to accept different build directory than
> > current one. It is extremely handy with OE usage, where source code
> > is separated from build.
> > 
> > Signed-off-by: Lukasz Majewski 
> > ---
> > 
> >  scripts/get_default_envs.sh | 19 ++-
> >  1 file changed, 14 insertions(+), 5 deletions(-)
> > 
> > diff --git a/scripts/get_default_envs.sh
> > b/scripts/get_default_envs.sh index 7955db60e5..bbb6d0a6ef 100755
> > --- a/scripts/get_default_envs.sh
> > +++ b/scripts/get_default_envs.sh
> > @@ -6,16 +6,24 @@
> >  #
> >  
> >  # This file extracts default envs from built u-boot
> > -# usage: get_default_envs.sh > u-boot-env-default.txt
> > +# usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
> >  set -ue
> >  
> > -ENV_OBJ_FILE="env_common.o"
> > +: "${OBJCOPY:=objcopy}"  
> 
> Maybe "${CROSS_COMPILE}objcopy" would be a better default as that's
> what the build system uses.

Unfortunately not with OE builds. In OE, the OBJCOPY is set to arm
specific objcopy.

With fallback (objcopy) from your local machine - it depends if it
supports multi arch or not.

A side note:

I do use this script with /tools/mkenvimage to generate default main
and redundant envs.


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de


pgp2jh2E4jqzx.pgp
Description: OpenPGP digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] script: Make the get_default_envs.sh script working with newest u-boot

2018-02-13 Thread Tuomas Tynkkynen
Hi,

On Tue, 13 Feb 2018 23:01:13 +0100
Lukasz Majewski  wrote:

> This commit fixes several issues:
> 
> - After moving env related code to ./env directory the env_common.o file
> is no longer present in the system (has been replaced with built-in.o).
> 
> - Use ${OBJCOPY} if available, fallback to system default's objcopy if not
> present.
> 
> - Extend the script to accept different build directory than current one.
> It is extremely handy with OE usage, where source code is separated from
> build.
> 
> Signed-off-by: Lukasz Majewski 
> ---
> 
>  scripts/get_default_envs.sh | 19 ++-
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
> index 7955db60e5..bbb6d0a6ef 100755
> --- a/scripts/get_default_envs.sh
> +++ b/scripts/get_default_envs.sh
> @@ -6,16 +6,24 @@
>  #
>  
>  # This file extracts default envs from built u-boot
> -# usage: get_default_envs.sh > u-boot-env-default.txt
> +# usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
>  set -ue
>  
> -ENV_OBJ_FILE="env_common.o"
> +: "${OBJCOPY:=objcopy}"

Maybe "${CROSS_COMPILE}objcopy" would be a better default as that's what
the build system uses.
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] script: Make the get_default_envs.sh script working with newest u-boot

2018-02-13 Thread Alex Kiernan
On Tue, Feb 13, 2018 at 10:01 PM, Lukasz Majewski  wrote:
> This commit fixes several issues:
>
> - After moving env related code to ./env directory the env_common.o file
> is no longer present in the system (has been replaced with built-in.o).
>
> - Use ${OBJCOPY} if available, fallback to system default's objcopy if not
> present.
>
> - Extend the script to accept different build directory than current one.
> It is extremely handy with OE usage, where source code is separated from
> build.
>
> Signed-off-by: Lukasz Majewski 
> ---
>
>  scripts/get_default_envs.sh | 19 ++-
>  1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
> index 7955db60e5..bbb6d0a6ef 100755
> --- a/scripts/get_default_envs.sh
> +++ b/scripts/get_default_envs.sh
> @@ -6,16 +6,24 @@
>  #
>
>  # This file extracts default envs from built u-boot
> -# usage: get_default_envs.sh > u-boot-env-default.txt
> +# usage: get_default_envs.sh [build dir] > u-boot-env-default.txt
>  set -ue
>
> -ENV_OBJ_FILE="env_common.o"
> +: "${OBJCOPY:=objcopy}"
> +
> +ENV_OBJ_FILE="built-in.o"
>  ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"
>
>  echoerr() { echo "$@" 1>&2; }
>
> -path=$(readlink -f $0)
> -env_obj_file_path=$(find ${path%/scripts*} -not -path "*/spl/*" \
> +if [ "$#" -eq 1 ]; then
> +path=${1}
> +else
> +path=$(readlink -f $0)
> +path=${path%/scripts*}
> +fi
> +
> +env_obj_file_path=$(find ${path} -path "*/env/*" -not -path "*/spl/*" \
>  -name "${ENV_OBJ_FILE}")
>  [ -z "${env_obj_file_path}" ] && \
>  { echoerr "File '${ENV_OBJ_FILE}' not found!"; exit 1; }
> @@ -24,7 +32,8 @@ cp ${env_obj_file_path} ${ENV_OBJ_FILE_COPY}
>
>  # NOTE: objcopy saves its output to file passed in
>  # (copy_env_common.o in this case)
> -objcopy -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY}
> +
> +${OBJCOPY} -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY}
>
>  # Replace default '\0' with '\n' and sort entries
>  tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort -u

Tested-by: Alex Kiernan 

-- 
Alex Kiernan
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot