[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Arm machine does not execute background statement correctly
From: |
Lakshman Garlapati |
Subject: |
Arm machine does not execute background statement correctly |
Date: |
Wed, 28 Feb 2018 16:01:28 +0530 |
Hi all,
I am facing problem in bash 4.4 . In a function if first line is ‘If
condition‘ and the function is called in background then the bash does not
evaluate it properly
Following are the cross compiled machine details.
MACHINE="arm"
OS="linux-gnueabi"
CC="arm-cortex_a9_v004-linux-gnueabi-gcc"
CFLAGS=" -DPROGRAM='bash' -DCONF_HOSTTYPE='arm'
-DCONF_OSTYPE='linux-gnueabi'
-DCONF_MACHTYPE='arm-cortex_a9_v004-linux-gnuea
bi' -DCONF_VENDOR='cortex_a9_v004' -DLOCALEDIR='/usr/local/share/locale'
-DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I.
-I./include -I./lib -O2 -Wno-parentheses -Wno-format-security"
RELEASE="4.4"
PATCHLEVEL="19"
RELSTATUS="release"
MACHTYPE="arm-cortex_a9_v004-linux-gnueabi"
file bash
=========
bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 3.4.0, not stripped
bash --version
===============
GNU bash, version 4.4.19(1)-release (arm-cortex_a9_v004-linux-gnueabi)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law
The following snippet is working fine in x86 processor machine not working
in arm processor machine from bash 4.3 version onwards.
test.sh
=====
#!/bin/bash
rm out.txt
function abc() {
if [ 2 -eq 1 ]; then
echo "TRUE"
else
echo "FALSE"
fi
}
abc &
bash -x test.sh
===========
+ rm -f out.txt
+ abc
+ '[' 2 -eq 1 ']'
+ echo TRUE <---- Here we are expecting FALSE
TRUE
please provide some guidance on how to resolve the problem, let me know if
problem statement is not clear.
--
Lakshman
- Arm machine does not execute background statement correctly,
Lakshman Garlapati <=