Skip to content

Bare metal: Adding TDBStore API creates many unrelated dependencies #13657

@boraozgen

Description

@boraozgen

Description of defect

I presume this was introduced with the 6.3.0 restructuring, since it does not occur in 6.2.0.

I use the Storage API, specifically TDBStore in bare metal profile. With 6.2.0 and earlier, I added tdbstore to the requires array and it worked with a couple other dependencies. With 6.3.0, the TDBStore API was moved under kv-global-api. The issue is, since there are other source files such as FileSystemStore.cpp under kv-global-api, it creates a chain of dependencies which is almost impossible to satisfy. This is the compiler error I receive when I only add kv-global-api:

Compile [ 41.9%]: FileSystemStore.cpp
[Fatal Error] FileSystemStore.h@22,10: filesystem/FileSystem.h: No such file or directory
[ERROR] In file included from .\mbed-os\storage\kvstore\source\FileSystemStore.cpp:19:
./mbed-os/storage/kvstore/include/kvstore/FileSystemStore.h:22:10: fatal error: filesystem/FileSystem.h: No such file or directory
   22 | #include "filesystem/FileSystem.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Of course I should not be required to add filesystem to my dependencies since I do not use it at all. However when I try to do it, it creates further dependencies such as littlefs. It goes on like this.

I think the key problem here is FileSystemStore.cpp residing under the same API as KVStore.

Target(s) affected by this defect ?

All targets.

Toolchain(s) (name and version) displaying this defect ?

GCC ARM 9-2020-q2-update

What version of Mbed-os are you using (tag or sha) ?

mbed-os-6.3.0

What version(s) of tools are you using. List all that apply (E.g. mbed-cli)

mbed-cli

How is this defect reproduced ?

Create a bare-metal example.
Try #include "TDBStore.h".

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions