-
-
Notifications
You must be signed in to change notification settings - Fork 6
feature module: Fix handling of multiple conflicts per attribute #12
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
base: main-numpymeson
Are you sure you want to change the base?
Conversation
Vogtinator
commented
Mar 28, 2024
- Attributes without match were never actually added to the list
- Only the last conflict actually had an effect, earlier results were discarded
- Attributes without match were never actually added to the list - Only the last conflict actually had an effect, earlier results were discarded
Also see mesonbuild#11307 which will make this module available in upstream meson |
@seiko2plus, @rgommers could you take a look? |
This seems reasonable to me, but it's @seiko2plus's code and it needs to be integrated into his feature branch too in order not to lose this fix when we rebase or discard this fork. So I'll leave it to @seiko2plus to review/incorporate. |
Ping @seiko2plus |
Ping. |
Sorry this stalled @Vogtinator. Since @seiko2plus isn't available, I'll attempt to get this merged. I tested an integration branch with this change included in numpy/numpy#27550, and got one relevant failure on
From the description and numpy/numpy#26151 it seems that you were actually trying to fix something for |
Yes, probably caused by:
In the build log the issue is visible as:
With this PR, |
Ping |
@Vogtinator, sorry for being away for a while. I confirm the bug you reported on armhf and your patch fixes it. Regarding the error @rgommers caught from CI, it's highway/QSort related, likely marked as incompatible platform via |
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Vogtinator, LGTM, thank you!
Regarding your note about test failures on armhf under QEMU (mentioned in numpy/numpy#27550): @rgommers, I can confirm that the armhf test now passes in PR numpy/numpy#28635 after fixing the link error."
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.
The fix in numpy/meson#12 for ASIMD*(32-bit) compile-time feature detection revealed a new build error on aarch32 platforms: ImportError: /numpy/build-install/usr/lib/python3/dist-packages/numpy/_core/ _multiarray_umath.cpython-310-arm-linux-gnueabihf.so: undefined symbol: _ZN2np7highway10qsort_simd11QSort_ASIMDIjEEvPT_i This patch prevents platform detection constants of Highway from being exposed across translation units with different compiler flags (baseline). This approach eliminates detection mismatches that were causing symbol resolution failures in the Highway QSort implementation.