-
Notifications
You must be signed in to change notification settings - Fork 605
Linking error while linking libAVSCommon.so on OpenWRT platform #56
Comments
Hello barrel35618, We have not run in to this problem in our own testing and prototyping. The symbol in question is qualified as thread_local, which is a fairly new C++ feature, so it may be that there is some platform specific issue with support. The functionality of the ThreadMonikor class is not essential to the functionality of the SDK. It just used to provide short thread identifiers in logs. So, as a work-around you could replace the implementation of ThreadMoniker::getThisThreadMoniker() with code to serialize the thread_id of std::this_thread in to string. Here is a stackoverflow article that discusses how to do that conversion:
However, that may incur more overhead that you want. If you do not generally care about thread IDs in your log messages you could also change the code to return an empty string. Please let us know if you find a solution or have further questions, |
Thanks scotthea, we can pass this error and build the ibAVSCommon.so. |
@jimmy2yang : Can you please share the makefile recipe for building AVS on OpenWRT? |
@thevamad : attachment is the Makefile for OpenWrt feed. I also add cmake file in the alexa sdk to setup some environment variables (It is dirty and should move to openwrt makefile) |
@jimmy2yang : thanks a ton for sharing. |
@jimmy2yang : Did you run the sample app on Openwrt? If so, how did you build gstreamer and the plugins (base, good, ugly) |
Yes, I ran SampleApp on Openwrt. You can port the related packages from Openwrt packages repo. |
@jimmy2yang : thanks for the response. I have the packages from github. Which of the gstreamer good / base / ugly modules did you select ? Did you have to select some or all out of the submenus ? |
I just enable all of good/base/ugly gstreamer modules. You can try to turn off somethings. |
@jimmy2yang Can you please share the nghttp2 makefile recipe for building AVS on OpenWRT? |
Hi Developer, Please contact me if you are interested. |
Hi, I tried to port this SDK on OpenWRT platform, and got the linking error when it's linking libAVSCommon.so, it shows below message:
../../libAVSCommon.so: undefined reference to `_ZTHN14alexaClientSDK9avsCommon5utils6logger13ThreadMoniker15m_threadMonikerE'
And I found that this method should be provided by "ThreadMoniker.cpp.o" which comes from "ThreadMoniker.cpp". After using objdump and nm tools to verify this object file, it didn't contain required information in its symbol table. I also built this SDK on local side(x86 platform), it works fine without meet this issue.
I've compared these two object files which built by "x86 g++" and "arm-g++".
There is something missing in arm version.
.
Have you met this issue before? Or do you have any idea about how to deal with that?
Thanks.
My x86 g++ version is 4.8.4, the OpenWRT arm is 4.8.3.
I also check CFLAGS and related argument, it's all the same.
The text was updated successfully, but these errors were encountered: