This is an automated email from Gerrit. Andy Pomfret ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/3381
-- gerrit commit 67d9a70347269003517eaef2ea3693f810b23f38 Author: Andy Pomfret <[email protected]> Date: Tue Mar 8 13:52:36 2016 +0000 Removed reliance on chSysInit symbol for the detection of ChibiOS (#121) Using the presence of the 'chSysInit' symbol for detection of ChibiOS is dangerous because this symbol may not be available if link-time optimisation is used. Patch removes this reliance, so the symbols 'ch' and 'ch_debug' are the only things required for ChibiOS detection. If 'ch' is present but 'ch_debug' is not, an info message suggests that Chibios might be present without its registry being enabled. This message has been reworded a little to make it slightly more equivocal because the chances of a false positive message are increased. Addresses bug #121, "ChibiOS rtos detection fails with LTO enabled". Change-Id: I5ef224735c06446751adee010ce75be4f30f0403 Signed-off-by: Andy Pomfret <[email protected]> diff --git a/src/rtos/ChibiOS.c b/src/rtos/ChibiOS.c index 8439386..ce820cb 100644 --- a/src/rtos/ChibiOS.c +++ b/src/rtos/ChibiOS.c @@ -130,15 +130,13 @@ struct rtos_type ChibiOS_rtos = { enum ChibiOS_symbol_values { ChibiOS_VAL_rlist = 0, ChibiOS_VAL_ch = 1, - ChibiOS_VAL_ch_debug = 2, - ChibiOS_VAL_chSysInit = 3 + ChibiOS_VAL_ch_debug = 2 }; static symbol_table_elem_t ChibiOS_symbol_list[] = { { "rlist", 0, true}, /* Thread ready list */ { "ch", 0, true}, /* System data structure */ { "ch_debug", 0, false}, /* Memory Signature containing offsets of fields in rlist */ - { "chSysInit", 0, false}, /* Necessary part of API, used for ChibiOS detection */ { NULL, 0, false} }; @@ -520,12 +518,11 @@ static int ChibiOS_detect_rtos(struct target *target) { if ((target->rtos->symbols != NULL) && ((target->rtos->symbols[ChibiOS_VAL_rlist].address != 0) || - (target->rtos->symbols[ChibiOS_VAL_ch].address != 0)) && - (target->rtos->symbols[ChibiOS_VAL_chSysInit].address != 0)) { + (target->rtos->symbols[ChibiOS_VAL_ch].address != 0))) { if (target->rtos->symbols[ChibiOS_VAL_ch_debug].address == 0) { - LOG_INFO("It looks like the target is running ChibiOS without " - "ch_debug."); + LOG_INFO("It looks like the target may be running ChibiOS " + "without ch_debug."); return 0; } -- ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://makebettercode.com/inteldaal-eval _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
