This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
embedded-web-interaction:wpe:webrtc [2019/04/01 23:15] avnerus < |
embedded-web-interaction:wpe:webrtc [2019/04/02 11:51] (current) 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** | ||
| + | |||
| + | The symbols are overwritten because libsrtp is appended in a separate //ar// command, because it is defined as: | ||
| + | <code> | ||
| + | $<TARGET_OBJECTS:libsrtp> | ||
| + | </code> | ||
| + | |||
| + | 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 40: | ||
| 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> | ||