Skip to content
  • Martin Turon's avatar
    [linux] Land the First (1st) of Nine (9) Phases for the Linux DeviceLayer Adapation (#614) · 0c03fa83
    Martin Turon authored
    
    
    * [linux] Add initial Linux platform DeviceLayer.
    
    - Adds Device Layer for Linux.
    - Uses SystemLayer Sockets.
    - Entropy and time implementations.
    - Stub out ble, connectivity, and configuration / storage for follow-on PR.
    - Uses pthreads for mutex and tasks.
    - Uses std::chrono for monotonic system time.
    
    * [linux] Add PlatformMgr tests.
    
    * [linux] Add CircleCI target for linux device layer.
    
    * [linux] Add fixme reference to LWIP ifdef.
    
    * Restyled by clang-format
    
    * [linux] fix header order; fix build
    
    After the latest rebase, the following error was coming up:
    
    ```
    ../../src/include/platform/ConnectivityManager.h:252:40: fatal error: platform/CHIP_DEVICE_LAYER_TARGET/ConnectivityManagerImpl.h: No such file or directory
      252 | #define CONNECTIVITYMANAGERIMPL_HEADER <platform/CHIP_DEVICE_LAYER_TARGET/ConnectivityManagerImpl.h>
    ```
    
    Though CHIP_DEVICE_LAYER_TARGET=Linux is set using AC_SUBST in configure.ac,
    the definition, which was working fine before, was mysteriously getting lost.
    It turns out the header re-ordering PR was the root cause of the issue.
    
    The fix was to change all sources in src/platform/Linux to
    move this include first:
        #include <platform/internal/CHIPDeviceLayerInternal.h>
    
    The error did not lead to the fix in an obvious way, so the issue
    is being documented here.
    
    * [linux] Update linux-embedded target to follow circleci matrix template.
    
    * [linux] Fix naming nits.
    
    Co-authored-by: default avatarRestyled.io <commits@restyled.io>
    0c03fa83
Loading