This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Broken backtrace


Hi Yann, all,

I'm not sure if it was already the case with previous Ubuntus, but CT-NG's
backtrace is broken at least with Ubuntu 11.10 (using bash):

[INFO ]  Installing PPL: done in 7912.66s (at 198:02)
[INFO ]  Saving state to restart at step 'cloog'...
[INFO ]  =================================================================
[INFO ]  Installing CLooG/ppl
[ERROR]    make[2]: *** [cloog] Error 1
[ERROR]    make[1]: *** [check-recursive] Error 1
[ERROR]
[ERROR]    >>
[ERROR]    >>  Error happened in: main[scripts/crosstool-NG.sh]
[ERROR]    >>
[ERROR]    >>  For more info on this error, look at the file: 'build.log'
[ERROR]    >>  There is a list of known issues, some with workarounds, in:
[ERROR]    >>      '/Toolchains/crosstool-ng/build/share/doc/ct-ng-hg+default-69cfd6e0f1d1/B - Known issues.txt'
[ERROR]
[ERROR]    Build failed in step 'Extracting and patching toolchain components'
[ERROR]
[ERROR]    (elapsed: 198:20.71)

The step should have been 'Installing CLooG/ppl', and the calls should have been
backtraced.

I've performed some tests, which show that this issue is caused by the following
lines:

    14     # Bail out early in subshell, the upper level shell will act accordingly.
    15     [ ${BASH_SUBSHELL} -eq 0 ] || exit $ret

http://crosstool-ng.org/hg/crosstool-ng/file/096845dbd877/scripts/functions#l14

The trace should be displayed for the deepest subshell, not for the top one.

For this example, I end up with subshells 2 to 0, and the trace variables
CT_STEP_COUNT and CT_STEP_MESSAGE are correct only for subshells 2 and 1. For
subshell 0, these variables are like before do_cloog() is called, i.e. 1 for
${CT_STEP_COUNT}, "<none>" for ${CT_STEP_MESSAGE[1]} and "Extracting and
patching toolchain components" for ${CT_STEP_MESSAGE[2]}. CT_OnError() sets
CT_STEP_COUNT to 2 before logging ${CT_STEP_MESSAGE[${CT_STEP_COUNT}]}, hence
the result.

Notes regarding CT_OnError() (nothing to do with this issue):
 - The step variable (already used in main()) could be defined as local to be
cleaner, even if it does not really matter when exiting.
 - "offset=1" seems to be a spurious line.

As to the error itself of my example, I'm testing a patch I've just cooked.

Best regards,
BenoÃt ThÃbaudeau

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]