ThingSet / thingset-device-library

ThingSet library for resource-constrained devices written in C/C++
https://thingset.io/thingset-device-library/
Apache License 2.0
13 stars 6 forks source link

platformio run -e native-std fails #23

Closed b0661 closed 2 years ago

b0661 commented 2 years ago

Running platformio run -e native-std fails.

platform: Ubuntu platformio: PlatformIO Core, version 5.1.1 commit: c3388d7a72e2d20760e7b4ad6c06b6b588849994

        home/bobby/.platformio/penv/bin/platformio run -vvv -e native-std
        Processing native-std (platform: native; build_flags: -std=c++11, -D NATIVE_BUILD, -pthread, -Wall, -Wno-deprecated-declarations; test_build_project_src: True)
        -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
        LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
        LDF Modes: Finder ~ chain, Compatibility ~ soft
        Found 0 compatible libraries
        Scanning dependencies...
        No dependencies
        Building in release mode
        gcc -o .pio/build/native-std/program -pthread .pio/build/native-std/src/cbor.o .pio/build/native-std/src/jsmn.o .pio/build/native-std/src/thingset.o .pio/build/native-std/src/thingset_bin.o .pio/build/native-std/src/thingset_txt.o -L.pio/build/native-std
        /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
        (.text+0x24): undefined reference to `main'
        /usr/bin/ld: .pio/build/native-std/src/thingset_bin.o: in function `cbor_serialize_data_obj':
        thingset_bin.c:(.text+0x401): undefined reference to `lroundf'
        /usr/bin/ld: .pio/build/native-std/src/thingset_bin.o: in function `cbor_serialize_array_type':
        thingset_bin.c:(.text+0x64e): undefined reference to `lroundf'
        collect2: error: ld returned 1 exit status
        *** [.pio/build/native-std/program] Error 1
        ===================================================================== [FAILED] Took 0.40 seconds =====================================================================

        Environment         Status    Duration
        ------------------  --------  ------------
        native-std          FAILED    00:00:00.404
        native-all          IGNORED
        device-std          IGNORED
        device-newlib-nano  IGNORED
        ================================================================ 1 failed, 0 succeeded in 00:00:00.404 ================================================================
martinjaeger commented 2 years ago

It's working fine in the GitHub CI build in my recent PR. Could above issue be a local toolchain problem? Using PlatformIO native requires some C toolchain setup steps outside of Python.

martinjaeger commented 2 years ago

This can possibly be fixed by defining the __builtin_lroundf also for PlatformIO unit tests as in PR #29. But as it's working in CI it's not a top priority to fix ATM.

martinjaeger commented 2 years ago

Fixed in 5c2b562d77cd44969c822bbd8c37cd7394d5ca58.