Small help on trivial issue

Lei YU mine260309 at gmail.com
Fri Aug 2 12:09:35 AEST 2019


I did not check the code details, but from the description, it is likely due to
the global variable's initialization order in a shared library.

Basically, you need to specify `__attribute__((init_priority(101)))` for your
global variables.

Please check below commit for details and how to manually specify the init
order for such variables.
https://github.com/openbmc/phosphor-host-ipmid/commit/4b0ddb68b4e76420358589213bc400155fa12e43


On Fri, Aug 2, 2019 at 4:12 AM Vijay Khemka <vijaykhemka at fb.com> wrote:
>
> Team,
>
> I am having small issue of global json object corruption and I am unable to find reason for it. I am defining a global json object (nlohmann::json appSelData) at the start of file. I am initializing this object in register function and accessing this in different functions defined in same shared library. While accessing in different function, it doesn’t hold initialized data. This is failing in my storagecommands.cpp for IPMI.
>
>
>
> Then I created a separate new file selcommands.cpp and did the same operation, it works here as expected. So I am wondering why it is failing in existing file vs new one. Looks like there are some header included in existing file is messing it up but I have no clue yet. This only happens with json object.
>
>
>
> For your reference, I am attaching both below files
>
> Storagecommands.cpp – where this fails
>
> Selcommands.cpp – where it works.
>
>
>
> I know it is a debug issue and I have been struggling last 2 days so thought of asking for help to team. Any help here would be appreciated.
>
>
>
> Regards
>
> -Vijay


More information about the openbmc mailing list