Configuration Information [Automatically generated, do not change]: Machine: arm OS: linux-gnueabi Compiler: arm-cortex_a8-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mlittle-endian Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='arm' -DCONF_OSTYPE='linux-gnueabi' -DCONF_MACHTYPE='arm-cortex_a8-linux-gnueabi' -DCONF_VENDOR='cortex_a8' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I/home/dkehn/current/u/src/user/bash/bash-4.2-20-src.d -I/home/dkehn/current/u/src/user/bash/bash-4.2-20-src.d/include -I/home/dkehn/current/u/src/user/bash/bash-4.2-20-src.d/lib -Wall -I/opt/x-tools/arm-cortex_a8-linux-gnueabi-20111101/arm-cortex_a8-linux-gnueabi/sysroot/usr/include -I/home/dkehn/current/u/src/user/bash/../../build.d/0001-0001/build-root/usr/include uname output: Linux none 2.6.37 #1 Tue Feb 14 10:07:19 CST 2012 armv7l GNU/Linux Machine Type: arm-cortex_a8-linux-gnueabi
Bash Version: 4.2 Patch Level: 20 Release Status: release Description: When cross-compiling bash_cv_job_control_missing gets set to missing (bash_cv_job_control_missing=missing) because job control can't be validated. Without job control using '|' results in a unwind_frame_discard warning. # echo hello | grep hello hello -sh: warning: unwind_frame_discard: lastpipe-exec: frame not found Repeat-By: Compile bash without job control. Then execute: echo hello | grep hello Fix: When cross-compiling, passing bash_cv_job_control_missing=present to configure enables job control and prevents the warning from being emitted. In execute_cmd.c, execute_pipeline() calls begin_unwind_frame ("lastpipe-exec"). This call is wrapped by a #if defined (JOB_CONTROL). At the end of execute_pipeline(), a call is made to discard_unwind_frame ("lastpipe-exec"). This call is always executed. It should probably be wrapped by a #if defined (JOB_CONTROL).