esp-now icon indicating copy to clipboard operation
esp-now copied to clipboard

Heap overflow in ESP-IDF's `wifi/espnow` example (AEGHB-604)

Open 0xjmux opened this issue 10 months ago • 10 comments

EDIT: this post was originally titled "Minor modifications to esp-idf espnow example causes intermittent crashes (AEGHB-604)"

Hi all, I'm trying to ingest messages from the Wizmote (which uses ESP-IDF to send messages) into an esp-idf program as part of a larger project. Something similar has been done before in the WLED project, albeit using arduino.

I modified the espnow example to remove the sending code and to parse the data in the wizmote format, and it works - some of the time. For unknown reasons, after receiving a few (it's not usually the same amount) packets, the program will panic. I've seen a few errors, but the most common has been a stack overflow, which makes me think it's likely a memory issue. I've been trying to use JTAG with an ESP32-S3 to debug it, but because of FreeRTOS's threading having a useful backtrace on a crash is a bit of a coin toss. Where I've been able to locate a crash back to in my code, I've left a comment indicating so.

I've gone about as far as I can, but I'm tearing my hair out trying to figure out what's causing the crash, and none of the heap tracing or core dump features of the SDK have been working for

If you'd be able to take a quick look at my test program and see if you can spot any obvious errors, I'd greatly appreciate it.

Thanks!

Code

Expand here for code!

To duplicate my project structure, create an instance of the espnow example program in ESP-IDF, add the two files to the directory, and comment out app_main() from the original espnow_example_main.c.

espnow_remote_test.c

/**
 * Test code for ingesting messages from the Wizmote ESP-NOW remote
 * espnow_remote_test.c
*/

// this include block copied from espnow_example_main.c
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <assert.h>
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/timers.h"
#include "nvs_flash.h"
#include "esp_random.h"
#include "esp_event.h"
#include "esp_netif.h"
#include "esp_wifi.h"
#include "esp_log.h"
#include "esp_mac.h"
#include "esp_now.h"
#include "esp_crc.h"

#include "esp_app_trace.h"


#include "espnow_remote_test.h"

////////////////////////////////////////
// TEMPORARY DEFS
#define ESPNOW_WIFI_MODE WIFI_MODE_STA

static uint8_t s_example_broadcast_mac[ESP_NOW_ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
// static uint16_t s_example_espnow_seq[EXAMPLE_ESPNOW_DATA_MAX] = { 0, 0 };

////////////////////////////////////////

static const char *TAG = "espnow_wizmote_example";

static uint32_t last_msg_seq = 0;      // seq number of last message
// static espnow_msg_structure incoming;           // holds incoming message data
static QueueHandle_t s_example_espnow_queue;    // semaphore for espnow handling

/* WiFi should start before using ESPNOW */
static void example_wifi_init(void)
{
    ESP_ERROR_CHECK(esp_netif_init());
    ESP_ERROR_CHECK(esp_event_loop_create_default());
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
    ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
    ESP_ERROR_CHECK( esp_wifi_set_mode(ESPNOW_WIFI_MODE) );
    ESP_ERROR_CHECK( esp_wifi_start());
    ESP_ERROR_CHECK( esp_wifi_set_channel(CONFIG_ESPNOW_CHANNEL, WIFI_SECOND_CHAN_NONE));

#if CONFIG_ESPNOW_ENABLE_LONG_RANGE
    ESP_ERROR_CHECK( esp_wifi_set_protocol(ESPNOW_WIFI_IF, WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N|WIFI_PROTOCOL_LR) );
#endif
}


// FROM EXAMPLE
static void example_espnow_recv_cb(const esp_now_recv_info_t *recv_info, const uint8_t *data, int len)
{
    // example_espnow_event_t evt;
    example_espnow_event_recv_cb_t recv_cb; 
    uint8_t *mac_addr = recv_info->src_addr;

    // check for invalid packet
    if (mac_addr == NULL || data == NULL || len <= 0) {
        ESP_LOGE(TAG, "Receive cb arg error");
        //  return;     // these functions arent't ever supposed to return
        
    }

    // set id to indicate recv packet
    // copy MAC addr and copy data for recv_cb
    // recv_cb.id = EXAMPLE_ESPNOW_RECV_CB;        // not used
    memcpy(recv_cb.mac_addr, mac_addr, ESP_NOW_ETH_ALEN);
    
    // this line causes fault????
    recv_cb.data = malloc(len);
    if (recv_cb.data == NULL) {
        ESP_LOGE(TAG, "Malloc receive data fail");
        // return;      // these  functions aren't ever supposed to return
    }
    memcpy(recv_cb.data, data, len);

    // add packet to queue to be processed
    recv_cb.data_len = len;
    if (xQueueSend(s_example_espnow_queue, &recv_cb, ESPNOW_MAXDELAY) != pdTRUE) {
        ESP_LOGW(TAG, "Send receive queue fail");
        free(recv_cb.data);
    }


}

// FROM EXAMPLE
/* Parse received ESPNOW data. */
uint8_t example_espnow_data_parse(uint8_t *data, uint16_t data_len, uint8_t *program, \
    uint32_t *seq, uint8_t *button)
{
    espnow_msg_structure *buf = (espnow_msg_structure *)data;
    // uint16_t crc, crc_cal = 0;

    if (data_len < sizeof(espnow_msg_structure)) {
    // if (data_len < DEBUG_LEN_ESPNOW_MESSGE) {
        ESP_LOGE(TAG, "Receive ESPNOW data too short, len:%d ; expected=%d", data_len, sizeof(espnow_msg_structure));

        panic_stat_led_on();

        return DATA_PARSE_ERR;
        // return -1;
    }

// possible null dereference here??
    *program = buf->program;
    *seq = buf->seq;
    *button = buf->button;

    // if we've already seen this msg before
    if (*seq <= last_msg_seq) {
        return DATA_PARSE_STALE;
    }

    last_msg_seq = *seq;

    ESP_LOGI(TAG, "completed espnow_data_parse()");

    return DATA_PARSE_OK;
}


/**
 * FreeRTOS task to handle data reception
*/
static void espnow_recv_task(void *pvParameter)
{

    example_espnow_event_recv_cb_t recv_cb;
    uint8_t program = 0;
    // uint8_t seq[4] = { 0 };
    uint32_t seq = 0;
    uint8_t button = 0;
    int ret;

    vTaskDelay(1000 / portTICK_PERIOD_MS);

    while (xQueueReceive(s_example_espnow_queue, &recv_cb, portMAX_DELAY) == pdTRUE) {
        // example_espnow_event_recv_cb_t *recv_cb = &evt.info.recv_cb;

        // ret = example_espnow_data_parse(recv_cb.data, recv_cb.data_len, &recv_state, &recv_seq, &recv_magic);
        // SEQ MIGHT NOT NEED & 
        ret = example_espnow_data_parse(recv_cb.data, recv_cb.data_len, &program, &seq, &button);

        // original data not needed since we've parsed out the parts we want
        free(recv_cb.data);

        if (ret == DATA_PARSE_OK) {
            ESP_LOGI(TAG, "Receive seq=%ld data from: "MACSTR", len: %d\n", \
                seq, MAC2STR(recv_cb.mac_addr), recv_cb.data_len);

            /* If MAC address does not exist in peer list, add it to peer list. */
            // CRASH HAPPENED HERE WITH IF STATEMENT
            if (esp_now_is_peer_exist(recv_cb.mac_addr) == false) {
                ESP_LOGI(TAG, "peer not already present in peer list, adding now");
                esp_now_peer_info_t *peer = malloc(sizeof(esp_now_peer_info_t));
                if (peer == NULL) {
                    ESP_LOGE(TAG, "Malloc peer information fail");
                    panic_stat_led_on();
                    espnow_remote_recv_deinit();
                    vTaskDelete(NULL);
                }

                memset(peer, 0, sizeof(esp_now_peer_info_t));
                peer->channel = CONFIG_ESPNOW_CHANNEL;
                peer->ifidx = ESPNOW_WIFI_IF;
                peer->encrypt = false;
                memcpy(peer->lmk, CONFIG_ESPNOW_LMK, ESP_NOW_KEY_LEN);
                // SAME PTR THING HERE WITH & 
                memcpy(peer->peer_addr, &recv_cb.mac_addr, ESP_NOW_ETH_ALEN);
                
                ESP_LOGI(TAG, "attempting to add peer: %p", peer);
                // PANIC THROWN HERE
                ESP_ERROR_CHECK( esp_now_add_peer(peer) );
                ESP_LOGI(TAG, "Peer added successfully");
                free(peer);
            }
            ESP_LOGI(TAG, "Incoming ESP-NOW Packet [SEQ=%ld, button=%d] \n", seq, button);


        }
        else if (ret == DATA_PARSE_STALE) {
            ESP_LOGI(TAG, "Received stale packet from "MACSTR" [SEQ=%ld, button=%d], last_seq=%ld \n", \
                MAC2STR(recv_cb.mac_addr), seq, button, last_msg_seq);

        }
        else {
            ESP_LOGI(TAG, "Receive error data from: "MACSTR"", MAC2STR(recv_cb.mac_addr));
        }

        // break;
    }
}

// a lot of this copied from espnow_example_main.c
static esp_err_t espnow_remote_recv_init(void) {
 
    s_example_espnow_queue = xQueueCreate(ESPNOW_QUEUE_SIZE, sizeof(example_espnow_event_recv_cb_t));
    if (s_example_espnow_queue == NULL) {
        ESP_LOGE(TAG, "Create mutex fail");
        return ESP_FAIL;
    }    
    
    ESP_ERROR_CHECK(esp_now_init()); // must be called to set up ESP-NOW, but after wifi

    ESP_ERROR_CHECK( esp_now_register_recv_cb(example_espnow_recv_cb) );
    // ESP_ERROR_CHECK( esp_now_register_recv_cb(on_data_recv) );

    /* Set primary master key. (not used in my sketch )*/
    ESP_ERROR_CHECK( esp_now_set_pmk((uint8_t *)CONFIG_ESPNOW_PMK) );

    /* Add broadcast peer information to peer list. */
    esp_now_peer_info_t *peer = malloc(sizeof(esp_now_peer_info_t));
    if (peer == NULL) {
        ESP_LOGE(TAG, "Malloc peer information fail");
        panic_stat_led_on();
        vSemaphoreDelete(s_example_espnow_queue);
        esp_now_deinit();
        return ESP_FAIL;
    }
    memset(peer, 0, sizeof(esp_now_peer_info_t));
    peer->channel = CONFIG_ESPNOW_CHANNEL;
    peer->ifidx = ESPNOW_WIFI_IF;
    peer->encrypt = false;
    memcpy(peer->peer_addr, s_example_broadcast_mac, ESP_NOW_ETH_ALEN);
    ESP_ERROR_CHECK( esp_now_add_peer(peer) );
    free(peer);

    // task params aren't used rn
    uint8_t *recv_task_params = 0;
    TaskHandle_t recv_task_handle = NULL;
    xTaskCreate(espnow_recv_task, "espnow_recv_task",2048, recv_task_params, 4, &recv_task_handle);
    ESP_LOGI(TAG, "Successfully finished remote_recv_init()");

    return ESP_OK;
}

void espnow_remote_recv_deinit(void) {
    vSemaphoreDelete(s_example_espnow_queue);
    esp_now_deinit();
}

void app_main(void)
{
    ESP_LOGI(TAG, "Starting main");

    // Initialize NVS
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
        ESP_ERROR_CHECK( nvs_flash_erase() );
        ret = nvs_flash_init();
    }
    ESP_ERROR_CHECK( ret );

    example_wifi_init();
    // set up esp-now functionality

    ESP_LOGI(TAG, "Starting remote: prior vals last_seq=%ld", last_msg_seq);
    espnow_remote_recv_init();


}

espnow_remote_test.h

#ifndef ESPNOW_REMOTE_H
#define ESPNOW_REMOTE_H

#include <stdint.h>

// temporary constants (bc there has to be defaults in esp-idf, right?)
#define STR_MAX_LEN 256
#define ESPNOW_MAXDELAY 512

// important global variables
char linked_remote[13] = "";
char last_signal_src[13] = "";

/* ESPNOW can work in both station and softap mode. It is configured in menuconfig. */
#if CONFIG_ESPNOW_WIFI_MODE_STATION
#define ESPNOW_WIFI_MODE WIFI_MODE_STA
#define ESPNOW_WIFI_IF   ESP_IF_WIFI_STA
#else
#define ESPNOW_WIFI_MODE WIFI_MODE_AP
#define ESPNOW_WIFI_IF   ESP_IF_WIFI_AP
#endif

#define ESPNOW_QUEUE_SIZE           6

#define WIZMOTE_BUTTON_ON          1
#define WIZMOTE_BUTTON_OFF         2
#define WIZMOTE_BUTTON_NIGHT       3
#define WIZMOTE_BUTTON_ONE         16
#define WIZMOTE_BUTTON_TWO         17
#define WIZMOTE_BUTTON_THREE       18
#define WIZMOTE_BUTTON_FOUR        19
#define WIZMOTE_BUTTON_BRIGHT_UP   9
#define WIZMOTE_BUTTON_BRIGHT_DOWN 8

// data parsing return function enum
enum {DATA_PARSE_OK, DATA_PARSE_STALE, DATA_PARSE_ERR};


#define DEBUG_LEN_ESPNOW_MESSGE 13
// wizmote data structure (thanks wled)
typedef struct espnow_msg_structure {
  uint8_t program;      // 0x91 for ON button, 0x81 for all others
//   uint8_t seq[4];       // Incremental sequence number 32 bit unsigned integer LSB first
  uint32_t seq;       // Incremental sequence number 32 bit unsigned integer LSB first
  uint8_t byte5;        // Unknown
  uint8_t button;       // Identifies which button is being pressed
  uint8_t byte8;        // Unknown, but always 0x01
  uint8_t byte9;        // Unknown, but always 0x64

  uint8_t byte10;  // Unknown, maybe checksum
  uint8_t byte11;  // Unknown, maybe checksum    // received packet has len 13 instead of 16 - gonan try commenting these
  uint8_t byte12;  // Unknown, maybe checksum
  uint8_t byte13;  // Unknown, maybe checksum
} __attribute__((packed)) espnow_msg_structure;

const espnow_msg_structure DEFAULT_MSG = {
    // .program
    // .seq[4],
    .byte5 = 32,
    // .button,
    .byte8 = 1,
    .byte9 = 100,
    .byte10 = 0,
    .byte11 = 0,
    .byte12 = 0,
    .byte13 = 0,
};

typedef enum {
    EXAMPLE_ESPNOW_SEND_CB,
    EXAMPLE_ESPNOW_RECV_CB,
} example_espnow_event_id_t;


    /**
     * @param uint8_t mac_addr[ESP_NOW_ETH_ALEN];
     * @param uint8_t *data;
     * @param int data_len;
     * @param example_espnow_event_id_t id;
     * 
    */
typedef struct example_espnow_event_recv_cb_t {
    uint8_t mac_addr[ESP_NOW_ETH_ALEN];
    uint8_t *data;
    int data_len;
    example_espnow_event_id_t id;
} example_espnow_event_recv_cb_t;

enum {
    EXAMPLE_ESPNOW_DATA_BROADCAST,
    EXAMPLE_ESPNOW_DATA_UNICAST,
    EXAMPLE_ESPNOW_DATA_MAX,
};


// FUNCTIONS

static void example_wifi_init(void);

uint8_t example_espnow_data_parse(uint8_t *data, uint16_t data_len, uint8_t *program, \
    uint32_t *seq, uint8_t *button);
static void espnow_recv_task(void *pvParameter);
static esp_err_t espnow_remote_recv_init(void);
void espnow_remote_recv_deinit(void);

#endif

0xjmux avatar Mar 31 '24 21:03 0xjmux

I forgot to include an example of a stack trace, so here's one of the more helpful ones I got: image

I really want to see the internals of esp_now_is_peer_exist(), but I can't seem to find it anywhere - I doubt that the issue is there and not in my code, but it'd still be helpful to have increased visibility into what its doing.

~~I've attempted to use the "Start Heap Trace" feature in ESP-IDF - the button in the vscode extension doesn't give me any result under "Application Trace Archives", and as far as I can see no files are created in the repository directory. When I run it manually, (with heap_trace_start() as the first line of example_espnow_recv_cb() and heap_trace_stop() and dump at the end of espnow_recv_task(), this is the result I get:~~

After enabling comprehensive heap debugging in SDKCONFIG like so: image

I no longer get the messages about crashes - I just get a stack overflow crash. After a lot of trying I was finally able to extract an .elf core dump that can be opened with idf.py coredump-debug -c crash-coredump.elf. In the interest of speeding up the debugging process, I've attached it to this comment. If someone would be able to help me with taking a look at it, I'd greatly appreciate it. Thanks!

crash-coredump.elf.zip

0xjmux avatar Apr 01 '24 19:04 0xjmux

After many more hours of attempted debugging, not much progress has been made. I've spent nearly 6 hours at this point trying to get the App and heap debugging features in ESP-IDF to work as intended, have read all the docs I can find, and have tried everything i can think of. My attempts to use SystemView have completely failed, and no matter what I do (including attaching an ESP-Prog to get an additional UART for just the core dump) nothing works. The ESP crashes and just stops printing data, and GDB gives me not super helpful backtraces like those seen above.

Whenever I run the App/heap traces the log files end up empty; I have the libraries included in my code and have tried manually init'ing the functionality. I've tried both through the CLI and through the VScode extension - neither work.

This is becoming extremely frustrating - If I can't even get minor modifications to the provided example to work without causing disastrous overflows, how am I supposed to be confident about using it in production?

Here's an info_coredump I was able to extract. This is about all the information I've been able to extract from the chip since the debugging tools refuse to work properly
Executing action: coredump-info
===============================================================
==================== ESP32 CORE DUMP START ====================

Crashed task handle: 0x3fcb2048, name: 'espnow_recv_tas', GDB name: 'process 1070276680'
Panic reason: ***ERROR*** A stack overflow in task espnow_recv_tas has been detected.

================== CURRENT THREAD REGISTERS ===================
exccause       0x1d (StoreProhibitedCause)
excvaddr       0x0
epc1           0x4037b2a3
epc2           0x0
epc3           0x0
epc4           0x0
epc5           0x0
epc6           0x0
eps2           0x0
eps3           0x0
eps4           0x0
eps5           0x0
eps6           0x0
pc             0x40375759          0x40375759 <panic_abort+33>
lbeg           0x400570e8          1074098408
lend           0x400570f3          1074098419
lcount         0x0                 0
sar            0x9                 9
ps             0x60f23             397091
threadptr      <unavailable>
br             <unavailable>
scompare1      <unavailable>
acclo          <unavailable>
acchi          <unavailable>
m0             <unavailable>
m1             <unavailable>
m2             <unavailable>
m3             <unavailable>
expstate       <unavailable>
f64r_lo        <unavailable>
f64r_hi        <unavailable>
f64s           <unavailable>
fcr            <unavailable>
fsr            <unavailable>
a0             0x8037c97c          -2143827588
a1             0x3fcb1760          1070274400
a2             0x3fcb17ac          1070274476
a3             0x3fcb17f3          1070274547
a4             0x3fc99118          1070174488
a5             0x3fcb1860          1070274656
a6             0x3fca5a44          1070225988
a7             0xffffffff          -1
a8             0x0                 0
a9             0x3fcb1720          1070274336
a10            0x0                 0
a11            0x0                 0
a12            0x4037b0f8          1077391608
a13            0x0                 0
a14            0xff                255
a15            0x60021             393249

==================== CURRENT THREAD STACK =====================
#0  0x40375759 in panic_abort (details=0x3fcb17ac "***ERROR*** A stack overflow in task espnow_recv_tas has been detected.") at /home/jmux/Documents/esp/esp-idf/components/esp_system/panic.c:452
#1  0x4037c97c in esp_system_abort (details=0x3fcb17ac "***ERROR*** A stack overflow in task espnow_recv_tas has been detected.") at /home/jmux/Documents/esp/esp-idf/components/esp_system/port/esp_system_chip.c:84
#2  0x4037efbd in vApplicationStackOverflowHook (xTask=<optimized out>, pcTaskName=0x3fcb207c "espnow_recv_tas") at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:581
#3  0x4037e2b7 in vTaskSwitchContext () at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
#4  0x4037f0cb in _frxt_dispatch () at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:450
Backtrace stopped: Cannot access memory at address 0xa5a5a599

======================== THREADS INFO =========================
  Id   Target Id          Frame 
* 1    process 1070276680 0x40375759 in panic_abort (details=0x3fcb17ac "***ERROR*** A stack overflow in task espnow_recv_tas has been detected.") at /home/jmux/Documents/esp/esp-idf/components/esp_system/panic.c:452
  2    process 1070246436 0x4037d48e in xQueueReceive (xQueue=0x3fca8900, pvBuffer=0x3fcaa870, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
  3    process 1070225552 0x4037b282 in esp_cpu_wait_for_intr () at /home/jmux/Documents/esp/esp-idf/components/esp_hw_support/cpu.c:121
  4    process 1070232004 0x4037d48e in xQueueReceive (xQueue=0x3fca62c8, pvBuffer=0x3fca7010, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
  5    process 1070236068 0x4037d48e in xQueueReceive (xQueue=0x3fca73c0, pvBuffer=0x3fca7fc0, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
  6    process 1070217288 0x400559e0 in ?? ()


       TCB             NAME PRIO C/B  STACK USED/FREE
---------- ---------------- -------- ----------------
0x3fcb2048  espnow_recv_tas      4/4          2032/12
0x3fcaaa24             wifi    23/23         688/5952
0x3fca5890             IDLE      0/0         640/2164
0x3fca71c4              tiT    18/18         736/2832
0x3fca81a4          sys_evt    20/20         704/2096
0x3fca3848        esp_timer    22/22         656/3436

==================== THREAD 1 (TCB: 0x3fcb2048, name: 'espnow_recv_tas') =====================
#0  0x40375759 in panic_abort (details=0x3fcb17ac "***ERROR*** A stack overflow in task espnow_recv_tas has been detected.") at /home/jmux/Documents/esp/esp-idf/components/esp_system/panic.c:452
#1  0x4037c97c in esp_system_abort (details=0x3fcb17ac "***ERROR*** A stack overflow in task espnow_recv_tas has been detected.") at /home/jmux/Documents/esp/esp-idf/components/esp_system/port/esp_system_chip.c:84
#2  0x4037efbd in vApplicationStackOverflowHook (xTask=<optimized out>, pcTaskName=0x3fcb207c "espnow_recv_tas") at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:581
#3  0x4037e2b7 in vTaskSwitchContext () at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
#4  0x4037f0cb in _frxt_dispatch () at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:450
Backtrace stopped: Cannot access memory at address 0xa5a5a599

==================== THREAD 2 (TCB: 0x3fcaaa24, name: 'wifi') =====================
#0  0x4037d48e in xQueueReceive (xQueue=0x3fca8900, pvBuffer=0x3fcaa870, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
#1  0x4207c98c in queue_recv_wrapper (queue=0x3fca8900, item=0x3fcaa870, block_time_tick=4294967295) at /home/jmux/Documents/esp/esp-idf/components/esp_wifi/esp32s3/esp_adapter.c:281
#2  0x40383760 in ppTask ()
#3  0x4037ee1c in vPortTaskWrapper (pxCode=0x40383734 <ppTask>, pvParameters=0x0) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

==================== THREAD 3 (TCB: 0x3fca5890, name: 'IDLE') =====================
#0  0x4037b282 in esp_cpu_wait_for_intr () at /home/jmux/Documents/esp/esp-idf/components/esp_hw_support/cpu.c:121
#1  0x4200e435 in esp_vApplicationIdleHook () at /home/jmux/Documents/esp/esp-idf/components/esp_system/freertos_hooks.c:59
#2  0x4037dbb0 in prvIdleTask (pvParameters=0x0) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:4327
#3  0x4037ee1c in vPortTaskWrapper (pxCode=0x4037dba4 <prvIdleTask>, pvParameters=0x0) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

==================== THREAD 4 (TCB: 0x3fca71c4, name: 'tiT') =====================
#0  0x4037d48e in xQueueReceive (xQueue=0x3fca62c8, pvBuffer=0x3fca7010, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
#1  0x4204caaa in sys_arch_mbox_fetch (mbox=<optimized out>, msg=0x3fca7010, timeout=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/lwip/port/freertos/sys_arch.c:317
#2  0x4203e70b in tcpip_timeouts_mbox_fetch (mbox=0x3fca0d28 <tcpip_mbox>, msg=0x3fca7010) at /home/jmux/Documents/esp/esp-idf/components/lwip/lwip/src/api/tcpip.c:104
#3  0x4203e7cd in tcpip_thread (arg=0x0) at /home/jmux/Documents/esp/esp-idf/components/lwip/lwip/src/api/tcpip.c:142
#4  0x4037ee1c in vPortTaskWrapper (pxCode=0x4203e7ac <tcpip_thread>, pvParameters=0x0) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

==================== THREAD 5 (TCB: 0x3fca81a4, name: 'sys_evt') =====================
#0  0x4037d48e in xQueueReceive (xQueue=0x3fca73c0, pvBuffer=0x3fca7fc0, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/xtensa/include/xt_utils.h:40
#1  0x4207bcf8 in esp_event_loop_run (event_loop=0x3fca7394, ticks_to_run=4294967295) at /home/jmux/Documents/esp/esp-idf/components/esp_event/esp_event.c:569
#2  0x4207bd10 in esp_event_loop_run_task (args=0x3fca7394) at /home/jmux/Documents/esp/esp-idf/components/esp_event/esp_event.c:107
#3  0x4037ee1c in vPortTaskWrapper (pxCode=0x4207bd04 <esp_event_loop_run_task>, pvParameters=0x3fca7394) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162

==================== THREAD 6 (TCB: 0x3fca3848, name: 'esp_timer') =====================
#0  0x400559e0 in ?? ()
#1  0x4037ef7e in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:568
#2  vPortExitCritical (mux=0x3fc97194 <xKernelLock>) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:532
#3  0x4037eb61 in ulTaskGenericNotifyTake (uxIndexToWait=0, xClearCountOnExit=1, xTicksToWait=<optimized out>) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:5820
#4  0x42006ff7 in timer_task (arg=0x0) at /home/jmux/Documents/esp/esp-idf/components/esp_timer/src/esp_timer.c:475
#5  0x4037ee1c in vPortTaskWrapper (pxCode=0x42006fe8 <timer_task>, pvParameters=0x0) at /home/jmux/Documents/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162


======================= ALL MEMORY REGIONS ========================
Name   Address   Size   Attrs
.rtc.force_fast 0x600fe010 0x0 RW  
.rtc_noinit 0x50000000 0x0 RW  
.rtc.force_slow 0x50000000 0x0 RW  
.iram0.vectors 0x40374000 0x403 R XA
.iram0.text 0x40374404 0x12c43 R XA
.dram0.data 0x3fc97100 0x5864 RW A
.flash.text 0x42000020 0x7d533 R XA
.flash.appdesc 0x3c080020 0x100 R  A
.flash.rodata 0x3c080120 0x1fa78 RW A
.ext_ram.bss 0x3c0a0000 0x0 RW  
.iram0.data 0x40387100 0x0 RW  
.iram0.bss 0x40387100 0x0 RW  
.dram0.heap_start 0x3fca1a58 0x0 RW  
.coredump.tasks.data 0x3fcaaa24 0x154 RW 
.coredump.tasks.data 0x3fcaa750 0x2b0 RW 
.coredump.tasks.data 0x3fcb2048 0x154 RW 
.coredump.tasks.data 0x3fcb16a0 0x990 RW 
.coredump.tasks.data 0x3fca5890 0x154 RW 
.coredump.tasks.data 0x3fca55f0 0x280 RW 
.coredump.tasks.data 0x3fca71c4 0x154 RW 
.coredump.tasks.data 0x3fca6ec0 0x2e0 RW 
.coredump.tasks.data 0x3fca81a4 0x154 RW 
.coredump.tasks.data 0x3fca7ec0 0x2c0 RW 
.coredump.tasks.data 0x3fca3848 0x154 RW 
.coredump.tasks.data 0x3fca35a0 0x290 RW 

===================== ESP32 CORE DUMP END =====================
===============================================================
Done!

Any help I can get resolving this issue as soon as possible would be greatly appreciated. Thanks.

0xjmux avatar Apr 02 '24 18:04 0xjmux

@0xjmux Could you add your application code based on get-started example and check again? BTW, esp-now component as an application-level ESP-NOW which provides some high-level functionalities. In short, espnow_xxx adds some application processing based on esp_now_xxx. The detailed introduction, please see the link as follows: https://github.com/espressif/esp-now/blob/master/User_Guide.md#introduction

lhespress avatar Apr 03 '24 03:04 lhespress

@lhespress I had tried to get the get-started example working previously - no matter what I do, it refuses to compile. I've followed those instructions before, but just did so again after freshly cloning the repository again.

When I run idf.py menuconfig or idf.py set-target esp32s3, I get:

-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
Target changed from esp32 to esp32s3, solving dependencies.
Using component placed at /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo for dependency esp-now(2.*), specified in /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo/examples/get-started/main/idf_component.yml
....Updating lock file at /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo/examples/get-started/dependencies.lock
Processing 3 dependencies:
[1/3] esp-now (2.5.0)
[2/3] espressif/cmake_utilities (0.5.3)
[3/3] idf (5.1.2)
CMake Error at /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:266 (message):
  Failed to resolve component 'esp-now'.
Call Stack (most recent call first):
  /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:308 (__build_resolve_and_add_req)
  /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:595 (__build_expand_requirements)
  /home/jmux/Documents/esp/esp-idf/tools/cmake/project.cmake:547 (idf_build_process)
  CMakeLists.txt:14 (project)

When I run idf.py build, I get the same error. Trying to configure the project or compile in VSCode gives the same result. This is on a fresh clone of the repo with idf.py --version == ESP-IDF v5.1.2

0xjmux avatar Apr 03 '24 04:04 0xjmux

@0xjmux It seems don't find esp-now components. Which environment do you used? Linux, Mac or Windows? BTW, the attachment is the firmware on my Mac environment. get-start.zip

lhespress avatar Apr 03 '24 07:04 lhespress

I'm on Ubuntu 22.04LTS and ESP-IDF v5.1.2

It seems to find it fine in the example built in to ESP-IDF, and when I import esp_now.h into my program - but none of the examples in the esp-now examples folder will compile.

0xjmux avatar Apr 05 '24 23:04 0xjmux

Using the "IDF Component Registry" in the VSCode extension, I tried to install the esp-now component directly. The installation fails with the following error:

CMake Error at /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:266 (message):
  Failed to resolve component 'esp-now'.
Call Stack (most recent call first):
  /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:308 (__build_resolve_and_add_req)
  /home/jmux/Documents/esp/esp-idf/tools/cmake/build.cmake:595 (__build_expand_requirements)
  /home/jmux/Documents/esp/esp-idf/tools/cmake/project.cmake:547 (idf_build_process)
  CMakeLists.txt:14 (project)

Clicking on CMakeOutput.log gives the following log:

CMakeOutput.log
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: a19b05a690648f14c80488203643bd5a
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_84417.dir/'
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/as --traditional-format --longcalls -o CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj /tmp/ccsFid6g.s
COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/
LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.'
[2/2] Linking C executable cmTC_84417
Using built-in specs.
COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
COLLECT_LTO_WRAPPER=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper
Target: xtensa-esp32-elf
Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) 
COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/
LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_84417' '-dumpdir' 'cmTC_84417.'
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2 -plugin /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so -plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPJt6ih.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -o cmTC_84417 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0 -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj -lgcc -lc -lnosys -lc -lgcc /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_84417' '-dumpdir' 'cmTC_84417.'



Parsed C implicit include dir info from above output: rv=done
  found start of include info
  found start of implicit include info
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include]
  end of search list found
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/sys-include]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include]
  implicit include dirs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/sys-include;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include]


Parsed C implicit link information from above output:
  link line regex: [^( *|.*[/\])(xtensa-esp32-elf-ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo/examples/get-started/build/CMakeFiles/CMakeScratch/TryCompile-lmjvFF]
  ignore line: []
  ignore line: [Run Build Command(s):/usr/bin/ninja cmTC_84417 && [1/2] Building C object CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc]
  ignore line: [Target: xtensa-esp32-elf]
  ignore line: [Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes]
  ignore line: [Thread model: posix]
  ignore line: [Supported LTO compression algorithms: zlib]
  ignore line: [gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) ]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_84417.dir/']
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/cc1 -quiet -v -iprefix /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/ /usr/share/cmake-3.25/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_84417.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mlongcalls -Wno-frame-address -version -o /tmp/ccsFid6g.s]
  ignore line: [GNU C17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)]
  ignore line: [	compiled by GNU C version 4.9.2  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include"]
  ignore line: [#include "..." search starts here:]
  ignore line: [#include <...> search starts here:]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include]
  ignore line: [End of search list.]
  ignore line: [GNU C17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)]
  ignore line: [	compiled by GNU C version 4.9.2  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [Compiler executable checksum: a19b05a690648f14c80488203643bd5a]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_84417.dir/']
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/as --traditional-format --longcalls -o CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj /tmp/ccsFid6g.s]
  ignore line: [COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/]
  ignore line: [LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.']
  ignore line: [[2/2] Linking C executable cmTC_84417]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc]
  ignore line: [COLLECT_LTO_WRAPPER=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper]
  ignore line: [Target: xtensa-esp32-elf]
  ignore line: [Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes]
  ignore line: [Thread model: posix]
  ignore line: [Supported LTO compression algorithms: zlib]
  ignore line: [gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) ]
  ignore line: [COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/]
  ignore line: [LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_84417' '-dumpdir' 'cmTC_84417.']
  link line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2 -plugin /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so -plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPJt6ih.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -o cmTC_84417 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0 -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj -lgcc -lc -lnosys -lc -lgcc /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2] ==> ignore
    arg [-plugin] ==> ignore
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so] ==> ignore
    arg [-plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper] ==> ignore
    arg [-plugin-opt=-fresolution=/tmp/ccPJt6ih.res] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lnosys] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-o] ==> ignore
    arg [cmTC_84417] ==> ignore
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib]
    arg [CMakeFiles/cmTC_84417.dir/CMakeCCompilerABI.c.obj] ==> ignore
    arg [-lgcc] ==> lib [gcc]
    arg [-lc] ==> lib [c]
    arg [-lnosys] ==> lib [nosys]
    arg [-lc] ==> lib [c]
    arg [-lgcc] ==> lib [gcc]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib/crt0.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crti.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib]
  implicit libs: [gcc;c;nosys;c;gcc]
  implicit objs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib/crt0.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crti.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  implicit dirs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib]
  implicit fwks: []


Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo/examples/get-started/build/CMakeFiles/CMakeScratch/TryCompile-5du8VA

Run Build Command(s):/usr/bin/ninja cmTC_d8143 && [1/2] Building CXX object CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj
Using built-in specs.
COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++
Target: xtensa-esp32-elf
Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) 
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/'
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/cc1plus -quiet -v -iprefix /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/ /usr/share/cmake-3.25/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_d8143.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mlongcalls -Wno-frame-address -version -o /tmp/ccWCoLQ0.s
GNU C++17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)
	compiled by GNU C version 4.9.2, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include"
ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include
End of search list.
GNU C++17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)
	compiled by GNU C version 4.9.2, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 14c3d3463b249927e358e8af6e36a201
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/'
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/as --traditional-format --longcalls -o CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj /tmp/ccWCoLQ0.s
COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/
LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.'
[2/2] Linking CXX executable cmTC_d8143
Using built-in specs.
COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++
COLLECT_LTO_WRAPPER=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper
Target: xtensa-esp32-elf
Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) 
COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/
LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_d8143' '-dumpdir' 'cmTC_d8143.'
 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2 -plugin /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so -plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccy6DVEt.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -o cmTC_d8143 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0 -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm -lgcc -lc -lnosys -lc -lgcc /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o
COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_d8143' '-dumpdir' 'cmTC_d8143.'



Parsed CXX implicit include dir info from above output: rv=done
  found start of include info
  found start of implicit include info
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include]
    add: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include]
  end of search list found
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0/backward]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/sys-include]
  collapse include dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include]
  implicit include dirs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/12.2.0/backward;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/sys-include;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/include]


Parsed CXX implicit link information from above output:
  link line regex: [^( *|.*[/\])(xtensa-esp32-elf-ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /home/jmux/Github/Neopixel-Matrix-Tetris-Project/libs-examples/esp-now-main-repo/examples/get-started/build/CMakeFiles/CMakeScratch/TryCompile-5du8VA]
  ignore line: []
  ignore line: [Run Build Command(s):/usr/bin/ninja cmTC_d8143 && [1/2] Building CXX object CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++]
  ignore line: [Target: xtensa-esp32-elf]
  ignore line: [Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes]
  ignore line: [Thread model: posix]
  ignore line: [Supported LTO compression algorithms: zlib]
  ignore line: [gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) ]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/']
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/cc1plus -quiet -v -iprefix /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/ /usr/share/cmake-3.25/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_d8143.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mlongcalls -Wno-frame-address -version -o /tmp/ccWCoLQ0.s]
  ignore line: [GNU C++17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)]
  ignore line: [	compiled by GNU C version 4.9.2  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include"]
  ignore line: [ignoring duplicate directory "/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/../../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include"]
  ignore line: [#include "..." search starts here:]
  ignore line: [#include <...> search starts here:]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/xtensa-esp32-elf]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include/c++/12.2.0/backward]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/include-fixed]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/sys-include]
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/include]
  ignore line: [End of search list.]
  ignore line: [GNU C++17 (crosstool-NG esp-12.2.0_20230208) version 12.2.0 (xtensa-esp32-elf)]
  ignore line: [	compiled by GNU C version 4.9.2  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
  ignore line: []
  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
  ignore line: [Compiler executable checksum: 14c3d3463b249927e358e8af6e36a201]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/']
  ignore line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/as --traditional-format --longcalls -o CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj /tmp/ccWCoLQ0.s]
  ignore line: [COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/]
  ignore line: [LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-dumpdir' 'CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.']
  ignore line: [[2/2] Linking CXX executable cmTC_d8143]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++]
  ignore line: [COLLECT_LTO_WRAPPER=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper]
  ignore line: [Target: xtensa-esp32-elf]
  ignore line: [Configured with: /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --exec_prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG esp-12.2.0_20230208' --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libstdcxx-verbose --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-nls --enable-multiarch --enable-languages=c c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio --enable-libstdcxx-time=yes]
  ignore line: [Thread model: posix]
  ignore line: [Supported LTO compression algorithms: zlib]
  ignore line: [gcc version 12.2.0 (crosstool-NG esp-12.2.0_20230208) ]
  ignore line: [COMPILER_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/]
  ignore line: [LIBRARY_PATH=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/:/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-mlongcalls' '-Wno-frame-address' '-v' '-o' 'cmTC_d8143' '-dumpdir' 'cmTC_d8143.']
  link line: [ /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2 -plugin /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so -plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccy6DVEt.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lnosys -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -o cmTC_d8143 /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0 -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc -L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm -lgcc -lc -lnosys -lc -lgcc /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o /home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/collect2] ==> ignore
    arg [-plugin] ==> ignore
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/liblto_plugin.so] ==> ignore
    arg [-plugin-opt=/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/12.2.0/lto-wrapper] ==> ignore
    arg [-plugin-opt=-fresolution=/tmp/ccy6DVEt.res] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lnosys] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-o] ==> ignore
    arg [cmTC_d8143] ==> ignore
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc]
    arg [-L/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib] ==> dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib]
    arg [CMakeFiles/cmTC_d8143.dir/CMakeCXXCompilerABI.cpp.obj] ==> ignore
    arg [-lstdc++] ==> lib [stdc++]
    arg [-lm] ==> lib [m]
    arg [-lgcc] ==> lib [gcc]
    arg [-lc] ==> lib [c]
    arg [-lnosys] ==> lib [nosys]
    arg [-lc] ==> lib [c]
    arg [-lgcc] ==> lib [gcc]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o]
    arg [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o] ==> obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib/crt0.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib/crt0.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crti.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crti.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o]
  collapse obj [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc]
  collapse library dir [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/lib] ==> [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib]
  implicit libs: [stdc++;m;gcc;c;nosys;c;gcc]
  implicit objs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib/crt0.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crti.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtbegin.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtend.o;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0/crtn.o]
  implicit dirs: [/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc/xtensa-esp32-elf/12.2.0;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/lib/gcc;/home/jmux/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/xtensa-esp32-elf/lib]
  implicit fwks: []

This is nonetheless somewhat off-topic from the original question - As far as I can tell, there's not much guarantee that using the higher abstraction layer would avoid a similar memory leak, since what I'm trying to do is already so simple. Would you be able to take a look at identifying the possible culprit in the example code I posted above?

Thanks.

0xjmux avatar Apr 05 '24 23:04 0xjmux

I just attempted to upgrade my ESP-IDF to v5.2.1, and was quickly reminded why I had been avoiding doing that. The SDK still refuses to work with intellisense out of the box, and getting the bare minimum functional is quite the frustrating ordeal. If this is something you guys somehow aren't aware of, you should add testing the installation of ESP-IDF through VSCode to the list - fresh install, open any example, and you get a sea of red. I've lost count of how many hours I've spent just trying to get the SDK working - not being able to tell it to use a pyenv virtualenv during installation is another annoyance.

It also didn't help, building the get-started example through the IDE or via idf.py build still fails with the same error.

0xjmux avatar Apr 06 '24 00:04 0xjmux

I've been losing my mind as to what I've been doing wrong, so as a sanity check I enabled comprehensive heap detection and tracing in the default wifi/espnow example, compiled it and ran it.

It seems that I'm not going insane - it detects a stack overflow in the example that comes with ESP-IDF.

idf.py openocd

Info : [esp32s3.cpu0] Target halted, PC=0x40375A81, debug_reason=00000001
Info : [esp32s3.cpu0] Halt cause (***ERROR*** A stack overflow in task example_espnow_ has been detected.)

idf.py monitor:

I (18574) espnow_example: send data to ff:ff:ff:ff:ff:ff
I (18574) espnow_example: Receive error data from: [MAC OF MY OTHER ESPNOW DEVICE]
[at this point, it crashes and nothing else shows up]

idf.py gdbtui

[esp32s3.cpu0] Target halted, PC=0x40375A81, debug_reason=00000001
[esp32s3.cpu0] Halt cause (***ERROR*** A stack overflow in task example_espnow_ has been detected.)
[New Thread 1070275316]
[New Thread 1070245204]
[New Thread 1070230808]
[New Thread 1070234848]

Thread 8 "example_espnow_" received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 1070275316]
0x40375a81 in panic_abort (details=0x3fcb12ac "***ERROR*** A stack overflow in task example_espnow_ has been detected.") at /home/jmux/Documents/esp/v5.2.1/
esp-idf/components/esp_system/panic.c:472
(gdb) bt
#0  0x40375a81 in panic_abort (details=0x3fcb12ac "***ERROR*** A stack overflow in task example_espnow_ has been detected.")
    at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/esp_system/panic.c:472
#1  0x4037c6f4 in esp_system_abort (details=0x3fcb12ac "***ERROR*** A stack overflow in task example_espnow_ has been detected.")
    at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/esp_system/port/esp_system_chip.c:93
#2  0x4037d5c1 in vApplicationStackOverflowHook (xTask=0x3fcb1af4, pcTaskName=0x3fcb1b28 "example_espnow_")
    at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:553
#3  0x4037e9f2 in vTaskSwitchContext () at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/freertos/FreeRTOS-Kernel/tasks.c:3630
#4  0x4037d687 in _frxt_dispatch () at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:451
#5  0x4037d67d in _frxt_int_exit () at /home/jmux/Documents/esp/v5.2.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/portasm.S:24

I created a brand new project from the wifi/espnow example, and haven't made any modifications other than enabling heap debugging features in menuconfig.

I should mention that this is on the latest stable release of ESP-IDF, since I bit the bullet and spent 4 hours reconfiguring the extension to work again after updating it.

$ idf.py --version
ESP-IDF v5.2.1

Since this bug is not in my modified code but rather in the example code that ships with ESP-IDF, it should be easier to triage from your guy's end. If someone could take a look at resolving that, I'd greatly appreciate it.

0xjmux avatar Apr 07 '24 05:04 0xjmux

@0xjmux I have tested the wifi/espnow example on the IDF v5.2.1 on my side, when the comprehensive heap detection option is enabled, it does generate a task watchdog. When the comprehensive heap detection option is enabled, it will consume more memory, so you need to increase the stack size of the example_espnow_task. After I increase the stack size to 4096, the example can work well.

xTaskCreate(example_espnow_task, "example_espnow_task", 4096, send_param, 4, NULL);

For your original code, you can also increase the stack size of the watchdog task, and then enable comprehensive heap detection option to debug.

zhangyanjiaoesp avatar Apr 07 '24 08:04 zhangyanjiaoesp

@0xjmux Closing this issue since there has been no update on this. Please feel free to reopen if required.

lhespress avatar Jun 27 '24 03:06 lhespress