-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Closed
Labels
00 - BugMesonItems related to the introduction of Meson as the new build system for NumPyItems related to the introduction of Meson as the new build system for NumPy
Description
Describe the issue:
When using the new Meson build system, numpy fails to configure on 64-bit big-endian platforms:
Checking for size of "long double" : 16 (cached)
../numpy-1.25.0/numpy/core/meson.build:379:4: ERROR: Problem encountered: No idea what this is ....
Seems to be due to this new snippet:
# long double representation detection (see setup_common.py)
# TODO: this is still incomplete, and different from how it's done in the
# numpy.distutils based build, see https://github.com/mesonbuild/meson/issues/11068
longdouble_size = cc.sizeof('long double')
if longdouble_size == 8
if host_machine.endian() == 'little'
longdouble_format = 'IEEE_DOUBLE_LE'
else
longdouble_format = 'IEEE_DOUBLE_BE'
endif
elif longdouble_size == 12
error('This should not be possible, 12 bits of "content" should still result in sizeof() being 16. Please report this error!'
)
elif longdouble_size == 16
if host_machine.endian() == 'little'
# FIXME: this varies, there's multiple formats here! Not yet implemented.
# TBD how we deal with the mess of old long double formats.
longdouble_format = 'INTEL_EXTENDED_16_BYTES_LE'
else
error('No idea what this is ....')
endif
else
error('Unknown long double size: ' + londouble_size)
endif
cdata.set10('HAVE_LDOUBLE_' + longdouble_format, true)
This affects such platforms as: ppc64 BE, mips64 BE, s390x, sparc64. 32-bit BE platforms such as hppa, ppc, m68k are unaffected.
Downstream bug: https://bugs.gentoo.org/908738
Reproduce the code example:
N/A
Error message:
No response
Runtime information:
N/A
Context for the issue:
No response
Metadata
Metadata
Assignees
Labels
00 - BugMesonItems related to the introduction of Meson as the new build system for NumPyItems related to the introduction of Meson as the new build system for NumPy