Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ordcore/1.0.0 #8

Merged
merged 4 commits into from
Jul 22, 2024
Merged

Ordcore/1.0.0 #8

merged 4 commits into from
Jul 22, 2024

Conversation

ViliusSutkus89
Copy link
Contributor

Couple patches to make odrcore/1.0.0 almost compile for Android. Once it compiles, a bunch of lines can be removed from build.yml matrix excludes.

  1. NDK has this library called cpu-features. Cryptopp makes use of it. Older version of Cryptopp, used by odrcore/1.0.0, expects to find cpu-features.c and .h in the cryptopp source directory. This patch does exactly that - copies cpu-features library from NDK to cryptopp_SOURCE_DIR.

  2. Glog checks if execinfo.h is available and then thinks that backtrace function is available too, but the function was added only on Android 33. Patch disables execinfo.h detection for Android.

What's missing is solving this error in svm/Svm2Svg:

/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: error: use of overloaded operator '-' is ambiguous (with operand types 'pos_type' (aka 'fpos<mbstate_t>') and 'std::int64_t' (aka 'long'))
        std::int64_t left = action.vl.length - (in.tellg() - start);
                                                ~~~~~~~~~~ ^ ~~~~~
/usr/local/lib/android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__ios/fpos.h:52:30: note: candidate function
  _LIBCPP_HIDE_FROM_ABI fpos operator-(streamoff __off) const {
                             ^
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, long)
        std::int64_t left = action.vl.length - (in.tellg() - start);
                                                           ^
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(float, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(double, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long double, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(int, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, float)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, double)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, long double)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, int)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, long long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, __int128)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, unsigned int)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, unsigned long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, unsigned long long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(long long, unsigned __int128)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(__int128, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(unsigned int, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(unsigned long, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(unsigned long long, long)
/home/runner/work/conan-odr-index/conan-odr-index/recipes/odrcore/all/src/src/svm/Svm2Svg.cpp:733:60: note: built-in candidate operator-(unsigned __int128, long)

@ViliusSutkus89
Copy link
Contributor Author

BTW, CI builds latest version only. To get the 1.0.0, it needs to be requested specifically. Here's the current run

https://github.com/opendocument-app/conan-odr-index/actions/runs/10041106105

@TomTasche
Copy link
Member

Wait, why are you trying to compile 1.0.0 if we are at 4.x currently? Also, you forgot to add Andi as reviewer.

@ViliusSutkus89 ViliusSutkus89 requested a review from andiwand July 22, 2024 16:25
@ViliusSutkus89
Copy link
Contributor Author

TBH, I don't really care about odrcore/1.0.0, what I care about is getting rid of that big block of excludes from workflow file. One way is fixing the odrcore/1.0.0 64bit build break, another way is getting rid of /1.0.0 from odr-index and the last way is keeping some unbuildable packages in the index

@andiwand
Copy link
Member

I think 1.0.0 is nice to have if I find time to study outputs and speed. For now I am also fine with commenting it out in the index yaml

@ViliusSutkus89
Copy link
Contributor Author

The two patches in this MR would still be needed to make /1.0.0 work, builds for 32bit Android do compile already. You can merge if you want

Copy link
Member

@andiwand andiwand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice 👍

@andiwand andiwand merged commit ce9e597 into main Jul 22, 2024
10 of 14 checks passed
@andiwand andiwand deleted the ordcore/1.0.0 branch July 22, 2024 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants