[yocto] [meta-mingw][PATCH] classes/toolchain-scripts-mingw32: Fix bad cmd flag

Burton, Ross ross.burton at intel.com
Thu Feb 21 03:29:39 PST 2019


+1, feel free to push.

Ross

On Wed, 20 Feb 2019 at 21:35, Joshua Watt <jpewhacker at gmail.com> wrote:
>
> The command to properly set the exit code at the end of the toolchain
> environment was using the correct flag delimiter '/', but the code to
> coerce all the unix-style paths to windows paths was incorrectly
> changing this to a '\'. This worked find in wines cmd, but on an actual
> Windows host, this caused cmd to wait indefinitely. Fix this by
> appending the command after the path separators are coerced.
>
> Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
> ---
>  classes/toolchain-scripts-mingw32.bbclass | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/classes/toolchain-scripts-mingw32.bbclass b/classes/toolchain-scripts-mingw32.bbclass
> index 32493d7..0afbf7d 100644
> --- a/classes/toolchain-scripts-mingw32.bbclass
> +++ b/classes/toolchain-scripts-mingw32.bbclass
> @@ -38,6 +38,17 @@ toolchain_create_sdk_env_script_sdkmingw32 () {
>         # Change unix '/' to Win32 '\'
>         sed -e 's,/,\\,g' -i $script
>
> +       # set has some annoying properties:
> +       # 1) If it is successful %ERRORLEVEL% is unchanged (as opposed to being set
> +       #        to 0 to indicate success)
> +       # 2) Making an assignment like "set A=" is considered an error and sets
> +       #        %ERRORLEVEL% to 1.
> +       #
> +       # Practically, this means that if any of the set calls make an empty
> +       # assignment that error will be propagated. To prevent this, a command is
> +       # run to ensure that the "exit code" of this script is 0
> +       echo "@%COMSPEC% /C exit 0 > NUL" >> $script
> +
>         # Make the file windows friendly...
>         awk 'sub("$", "\r")' $script > $script.new
>         mv $script.new $script
> @@ -81,17 +92,6 @@ toolchain_shared_env_script_sdkmingw32 () {
>     FOR %%x IN (%OECORE_NATIVE_SYSROOT%\\environment-setup.d\\*.bat) DO call "%%x"
>  )
>  EOF
> -
> -       # set has some annoying properties:
> -       # 1) If it is successful %ERRORLEVEL% is unchanged (as opposed to being set
> -       #        to 0 to indicate success)
> -       # 2) Making an assignment like "set A=" is considered an error and sets
> -       #        %ERRORLEVEL% to 1.
> -       #
> -       # Practically, this means that if any of the set calls make an empty
> -       # assignment that error will be propagated. To prevent this, a command is
> -       # run to ensure that the "exit code" of this script is 0
> -       echo "@%COMSPEC% /C exit 0 > NUL" >> $script
>  }
>
>  toolchain_create_sdk_siteconfig_append_sdkmingw32 () {
> --
> 2.20.1
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto


More information about the yocto mailing list