Skip to content

[BUG] NDK 27b cannot compile pythran #2084

@licy183

Description

@licy183

Description

When compiling python-scikit-image, some error occurs. It has been reported to LLVM in llvm/llvm-project#76358, but this PR seems not to get included in NDK r27b.

Details
FAILED: skimage/feature/brief_cy.cpython-312.so.p/meson-generated_.._brief_cy.cpp.o aarch64-linux-android-clang++ -Iskimage/feature/brief_cy.cpython-312.so.p -Iskimage/feature -I../src/skimage/feature -I/home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran -I/data/data/com.termux/files/usr/lib/python3.12/site-packages/numpy/_core/include -I/data/data/com.termux/files/usr/include/python3.12 -I/data/data/com.termux/files/usr/include -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++14 -O3 -Wno-unused-function -fstack-protector-strong -Oz -fPIC -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_NONE -MD -MQ skimage/feature/brief_cy.cpython-312.so.p/meson-generated_.._brief_cy.cpp.o -MF skimage/feature/brief_cy.cpython-312.so.p/meson-generated_.._brief_cy.cpp.o.d -o skimage/feature/brief_cy.cpython-312.so.p/meson-generated_.._brief_cy.cpp.o -c skimage/feature/brief_cy.cpp In file included from skimage/feature/brief_cy.cpp:1: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/core.hpp:46: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/slice.hpp:5: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/NoneType.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/builtins/bool_.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/tuple.hpp:8: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:4: /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:495:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 495 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:503:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 503 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/numpy_expr.hpp:326:9: note: in instantiation of template class '(anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long>>' requested here 326 | ndarray<long, pshape<long>>(raw, shp, types::ownership::owned)); | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:495:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 495 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:503:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 503 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ In file included from skimage/feature/brief_cy.cpp:1: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/core.hpp:46: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/slice.hpp:5: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/NoneType.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/builtins/bool_.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/tuple.hpp:8: /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:792:19: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 792 | ndarray<T, pS>::operator[](F const &filter) const | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:724:19: note: previous declaration is here 724 | ndarray<T, pS>::operator[](S const &s) && | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:816:19: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 816 | ndarray<T, pS>::operator[](F const &filter) const | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:724:19: note: previous declaration is here 724 | ndarray<T, pS>::operator[](S const &s) && | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:828:19: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 828 | ndarray<T, pS>::operator[](F const &filter) const | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:724:19: note: previous declaration is here 724 | ndarray<T, pS>::operator[](S const &s) && | ^ In file included from skimage/feature/brief_cy.cpp:1: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/core.hpp:46: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/slice.hpp:5: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/NoneType.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/builtins/bool_.hpp:6: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/tuple.hpp:8: In file included from /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/types/ndarray.hpp:4: /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ skimage/feature/brief_cy.cpp:49:26: note: in instantiation of template class '(anonymous namespace)::pythonic::types::ndarray<int, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>' requested here 49 | typedef decltype(pythonic::types::as_const(std::declval<__type1>())) __type2; | ^ skimage/feature/brief_cy.cpp:134:43: note: in instantiation of template class '(anonymous namespace)::__pythran_brief_cy::_brief_loop::type<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous namespace)::pythonic::types::pshape<long, long>>, (anonymous namespace)::pythonic::types::ndarray<unsigned char, (anonymous namespace)::pythonic::types::pshape<long, long>>, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>, (anonymous namespace)::pythonic::types::ndarray<int, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>, (anonymous namespace)::pythonic::types::ndarray<int, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>>' requested here 134 | typename __pythran_brief_cy::_brief_loop::type<pythonic::types::ndarray<float,pythonic::types::pshape<long,long>>, pythonic::types::ndarray<npy_uint8,pythonic::types::pshape<long,long>>, pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long,std::integral_constant<long, 2>>>, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>>::result_type _brief_loop0(pythonic::types::ndarray<float,pythonic::types::pshape<long,long>>&& image, pythonic::types::ndarray<npy_uint8,pythonic::types::pshape<long,long>>&& descriptors, pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& keypoints, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& pos0, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& pos1) | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:495:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 495 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:503:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 503 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ skimage/feature/brief_cy.cpp:68:26: note: in instantiation of template class '(anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>' requested here 68 | typedef decltype(pythonic::types::as_const(std::declval<__type22>())) __type23; | ^ skimage/feature/brief_cy.cpp:134:43: note: in instantiation of template class '(anonymous namespace)::__pythran_brief_cy::_brief_loop::type<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous namespace)::pythonic::types::pshape<long, long>>, (anonymous namespace)::pythonic::types::ndarray<unsigned char, (anonymous namespace)::pythonic::types::pshape<long, long>>, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>, (anonymous namespace)::pythonic::types::ndarray<int, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>, (anonymous namespace)::pythonic::types::ndarray<int, (anonymous namespace)::pythonic::types::pshape<long, std::integral_constant<long, 2>>>>' requested here 134 | typename __pythran_brief_cy::_brief_loop::type<pythonic::types::ndarray<float,pythonic::types::pshape<long,long>>, pythonic::types::ndarray<npy_uint8,pythonic::types::pshape<long,long>>, pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long,std::integral_constant<long, 2>>>, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>>::result_type _brief_loop0(pythonic::types::ndarray<float,pythonic::types::pshape<long,long>>&& image, pythonic::types::ndarray<npy_uint8,pythonic::types::pshape<long,long>>&& descriptors, pythonic::types::ndarray<npy_int64,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& keypoints, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& pos0, pythonic::types::ndarray<npy_int32,pythonic::types::pshape<long,std::integral_constant<long, 2>>>&& pos1) | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:495:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 495 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:503:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 503 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ skimage/feature/brief_cy.cpp:139:78: note: in instantiation of template class '(anonymous namespace)::pythonic::types::ndarray<float, (anonymous namespace)::pythonic::types::pshape<long, long>>' requested here 139 | auto res = __pythran_brief_cy::_brief_loop()(image, descriptors, keypoints, pos0, pos1); | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:495:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 495 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:503:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 503 | operator[](F const &filter) const; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:479:5: error: cannot overload a member function without a ref-qualifier with a member function with ref-qualifier '&&' 479 | operator[](F const &filter) const; | ^ skimage/feature/brief_cy.cpp:139:85: note: in instantiation of template class '(anonymous namespace)::pythonic::types::ndarray<unsigned char, (anonymous namespace)::pythonic::types::pshape<long, long>>' requested here 139 | auto res = __pythran_brief_cy::_brief_loop()(image, descriptors, keypoints, pos0, pos1); | ^ /home/builder/.termux-build/python3.12-crossenv-prefix-bionic-aarch64/build/lib/python3.12/site-packages/pythran/pythonic/include/types/ndarray.hpp:438:5: note: previous declaration is here 438 | operator[](S const &s) &&; | ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 

Upstream bug

llvm/llvm-project#76358

Commit to cherry-pick

llvm/llvm-project@69066ab

Affected versions

r27

Canary version

No response

Host OS

Linux

Host OS version

Ubuntu 24.04

Affected ABIs

armeabi-v7a, arm64-v8a, x86, x86_64

Build system

Meson

minSdkVersion

24

Device API level

No response

Metadata

Metadata

Labels

Type

No type

Projects

Status

Prebuilts submitted

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions