You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
assignee='https://github.com/skrah'closed_at=<Date2020-07-15.20:30:40.352>created_at=<Date2020-07-15.10:54:56.624>labels= ['extension-modules', 'build', '3.8', '3.9', '3.10']
title='_decimal failed to build with system libmpdec 2.5'updated_at=<Date2020-07-15.20:30:40.351>user='https://github.com/felixonmars'
In bpo-40874, mpdecimal.h in the vendored libmpdec has defines of UNUSED while the standalone released version of mpdecimal 2.5.0 doesn't. This breaks _decimal module build with system libmpdec due to UNUSED is undefined.
Errors are like:
cpython/Modules/_decimal/_decimal.c:277:36: error: expected ‘;’, ‘,’ or ‘)’ before ‘UNUSED’
277 | dec_traphandler(mpd_context_t *ctx UNUSED) /* GCOV_NOT_REACHED */
Reproducible in both 3.8 branch and master (didn't test 3.9, but should be affected too).
The integrated libmpdec-2.4.2 in Python 3.8 still has a couple of
UNUSED, so the simple approach of moving the define would not work.
It would be easy to replace the few instances of UNUSED with void
casts like in 2.5.0.
Strictly speaking though, this would be a feature for 3.8 and not
a build fix.
On the other hand, if Debian also plans to use 2.5.0 with 3.8,
there would be a stronger case for this build feature.