unwind_frame_discard lastpipe-exec warning
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-2001/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).
Re: unwind_frame_discard lastpipe-exec warning
On 2/23/12 12:20 PM, Doug Kehn wrote: > 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). Thanks for the report. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/