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

Reply via email to