Small help on trivial issue

vishwa vishwa at linux.vnet.ibm.com
Fri Aug 2 16:26:43 AEST 2019


Here is another instance: from one of my old commits.

https://github.com/openbmc/phosphor-host-ipmid/blob/master/systemintfcmds.cpp#L131

!! Vishwa !!

On 8/2/19 7:39 AM, Lei YU wrote:
> 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