Summary: | media-libs/harfbuzz-2.7.4 fails to compile on ppc64 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Adam Stylinski <stylinae> |
Component: | Current packages | Assignee: | Lars Wendler (Polynomial-C) (RETIRED) <polynomial-c> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gnome, jstein, office, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | PPC64 | ||
OS: | Linux | ||
URL: | https://github.com/adrian-thurston/ragel/issues/61 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 766039, 766051 | ||
Bug Blocks: |
Description
Adam Stylinski
2021-01-05 04:56:44 UTC
On further investigation, I don't think being on PPC64 has anything to do with it, at least not directly. I'm using python 3.9, and python is what is used for the code generation. I'm going to try an earlier python to see if it makes a difference. If so, I'll alter the bug report to reflect it. Python's 3.7-3.9 all seem to produce this issue. The byproduct of the code generation is: static inline double _pow10 (unsigned exponent) { static const double _powers_of_10[] = { 1.0e+256, 1.0e+128, 1.0e+64, 1.0e+32, 1.0e+16, 1.0e+8, 10000., 100., 10. }; unsigned mask << (ARRAY_LENGTH (_powers_of_10) - 1); double result; for (const double *power = _powers_of_10; mask; ++power, mask >>= 1) if (exponent & mask) result *= *power; return result; } Clearly the = 1 after mask is being dropped for some reason during the code generation. ahhh, and the python is used to invoke ragel..., so it's pretty unlikely python has anything to do with the issue. Perhaps a regression in ragel + PPC64? Using ragel 6.10 seems to fix the issue. I've reported the issue upstream: https://github.com/adrian-thurston/ragel/issues/61 Can you verify =dev-util/ragel-7.0.3 and =dev-util/colm-0.14.6 work? Yes, it seems to be working correctly now. |