This shows you the differences between two versions of the page.
Next revision | Previous revision Last revision Both sides next revision | ||
embedded-web-interaction:wpe:webrtc [2019/04/01 23:15] avnerus < |
embedded-web-interaction:wpe:webrtc [2019/04/02 11:46] avnerus |
||
---|---|---|---|
Line 21: | Line 21: | ||
</code> | </code> | ||
- | However, when trying to compile this for RPi compilation fails because of 2 different issues. I havne't figured out the cause yet, but: | + | When trying to compile this for RPi compilation fails because of 2 different issues: |
- | 1) Strangely, while static linking libwebrtc.a, some symbols are being overwritten because of some files that have the same name in webrtc and in libsrtp (such as err.c). As a temporary fix, I changed //link.txt// of webrtc.dir in CMakeFiles from this command: | + | 1) While static linking libwebrtc.a, some symbols are being overwritten because of files that have the same name: |
+ | * **third_party/boringssl/src/crypto/err/err.c** | ||
+ | * **third_party/libsrtp/crypto/kernel/err.c** | ||
+ | |||
+ | Changing //link.txt// of webrtc.dir in CMakeFiles from this command: | ||
<code> | <code> | ||
arm-buildroot-linux-gnueabihf-ar rT ../../../lib/libwebrtc.a ... | arm-buildroot-linux-gnueabihf-ar rT ../../../lib/libwebrtc.a ... | ||
Line 31: | Line 35: | ||
arm-buildroot-linux-gnueabihf-ar qT ../../../lib/libwebrtc.a ... | arm-buildroot-linux-gnueabihf-ar qT ../../../lib/libwebrtc.a ... | ||
</code> | </code> | ||
- | Changing the r argument to q appends the symbols from the new files instead of replacing ones with files in the same name. | + | Appends the symbols instead of replacing ones with files in the same name and fixes the problem. |
+ | |||
+ | This should have already been fixed in [[https://github.com/Kitware/CMake/commit/1ec6485c6a16c230bf29696ab8fd48eb5edbb78a|CMake]], but WebKit added the **USE_THIN_ARCHIVES** [[https://svn.webkit.org/repository/webkit/releases/WPE%20WebKit/webkit-2.24.0/Source/cmake/OptionsCommon.cmake|feature]] that introduced this issue. | ||
- | 2) Probably because of my gcc flags, the //libyuv// library was trying to use the **Neon** functions of the ARM processor (as it should). However, the *_neon.cc files were not included in CMakeLists.txt, I am not sure why. I had to manually add these to CMakeLists.txt: | + | 2) Probably because of my gcc flags, the //libyuv// library was trying to use the **Neon** functions of the ARM processor (as it should). However, the *_neon.cc files were not included in [[https://trac.webkit.org/browser/webkit/releases/WPE%20WebKit/webkit-2.24.0/Source/ThirdParty/libwebrtc/CMakeLists.txt?rev=243690|CMakeLists.txt,]] I am not sure why. I had to manually add these: |
<code> | <code> |