Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Possible Linux bug #35

Open
bernardosulzbach opened this issue Jul 31, 2017 · 6 comments
Open

Possible Linux bug #35

bernardosulzbach opened this issue Jul 31, 2017 · 6 comments

Comments

@bernardosulzbach
Copy link

Has this been tested on Linux?

I've consistently hit the following error:

gameanalytics-project-prefix/src/gameanalytics-project/source/dependencies/openssl/1.0.2h/libs/linux_x64/libcrypto.a(e_rc4_hmac_md5.o): In function `rc4_hmac_md5_cipher':
e_rc4_hmac_md5.c:(.text+0x407): undefined reference to `rc4_md5_enc'
e_rc4_hmac_md5.c:(.text+0x4ed): undefined reference to `rc4_md5_enc'

This seems to be an issue with the compiled OpenSSL that is present in the repository. This is the only undefined reference (i.e.: I didn't forget to link something).

Using Kernel 4.10.13-200 64-bits with CMake and GCC on my own project. This happens with both GNU make and Ninja.

If you need more information just ask, but that is the only part of the build output that isn't a success. It happens during the linking phase (somewhat obvious).

@the1schwartz
Copy link
Contributor

the1schwartz commented Aug 7, 2017

Hi,

I have just tested our build script on kernel v4.4.0 64-bits and it works using GNU make. Have you tried running our own script as described here: https://github.com/GameAnalytics/GA-SDK-CPP/wiki/Build

This is the CMake file we use: https://github.com/GameAnalytics/GA-SDK-CPP/blob/master/build/cmake/gameanalytics/CMakeLists.txt

Let me know if it works for you or not.

Thanks,
Martin

@bernardosulzbach
Copy link
Author

It doesn't. I was already following the documentation.

There appears to be an issue with the configuration step of OpenSSL, a Google search showed that the solution might be changing the "linux-generic64" target, so that the output makefile is more complete. I have not tested this solution. This should be reproducible using Fedora 25, in case you are interested in reproducibility.

This is not relevant to me anymore because I have decided to use the Rest API directly.

Thanks for looking into it anyways.

@the1schwartz
Copy link
Contributor

Ok thanks for letting us know. I did the tests on Ubuntu 16.04. I look more into reproducing this issue myself to solve this issue.

@bernardosulzbach
Copy link
Author

bernardosulzbach commented Aug 7, 2017 via email

@the1schwartz
Copy link
Contributor

Ok thanks. I have just tested on Fedora 26 and Ubuntu 17.04 and it compiles no problem. I am cloning this repository and running ./build.sh in the terminal to test it. I am installing theses OSs using VirtualBox as we don't have a dedicated Linux machine, so I don't know if that can have any effect. :/

@bernardosulzbach
Copy link
Author

The way I had it set up used it as an external project in CMake. But it used your build.sh script to fetch dependencies and build the project (the only thing that was done through CMake was issuing a git clone through https for this repository).

Do note that the linking error I reported is not in your build script, it happens afterwards.

This seems to be an issue with the compiled OpenSSL that is present in the repository. This is the only undefined reference (i.e.: I didn't forget to link something).

set (GAMEANALYTICS_LIBRARY ${GAMEANALYTICS_SOURCE_DIR}/export/${GAMEANALYTICS_TARGET_WITH_DASHES}-static/Release/libGameAnalytics.a)
set (CURL_LIBRARY ${GAMEANALYTICS_SOURCE_DIR}/source/dependencies/curl/lib/${GAMEANALYTICS_TARGET}/libcurl.a)
set (SSL_LIBRARY ${GAMEANALYTICS_SOURCE_DIR}/source/dependencies/openssl/1.0.2h/libs/${GAMEANALYTICS_TARGET}/libssl.a)
set (CRYPTO_LIBRARY ${GAMEANALYTICS_SOURCE_DIR}/source/dependencies/openssl/1.0.2h/libs/${GAMEANALYTICS_TARGET}/libcrypto.a)

This defines the libraries, they are then linked twice to the target so that cyclic dependencies are not an issue (even though I think there aren't any).

I think you are already trying to use the resulting binaries in a project and not only just compiling this repository. In case you weren't, give it a shot. I cannot share the whole project so you can try to reproduce as this is not an issue for me anymore.

If you can manage to use the resulting binaries in a application then it may probably be something I ran into and nobody else will. However, the fact that this exact link error gets some matches on Google makes me think that this might be reproducible.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants