Lib/sysconfig.py _parse_makefile needs to expand Makefile-style variables which includes $() ${} variables with a litteral $ being $$.
That last particular point is properly accounted for in the first half of the function when determining values that need expansion and those that don't. However, the second half that actually performs variable expansion doesn't.
Activity
lepaperwan commented on Sep 14, 2018
Lib/sysconfig.py _parse_makefile needs to expand Makefile-style variables which includes $() ${} variables with a litteral $ being $$.
That last particular point is properly accounted for in the first half of the function when determining values that need expansion and those that don't. However, the second half that actually performs variable expansion doesn't.
Sample breaking input:
VAR1= VALUE1
VAR2= VALUE2
VAR3=$${VAR1} ${VAR2}
Output:
Expect: {'VAR1': 'VALUE1', 'VAR2': 'VALUE2', 'VAR3': '$${VAR1} VALUE2'}
Actual: {'VAR1': 'VALUE1', 'VAR2': 'VALUE2', 'VAR3': '$VALUE1 VALUE2'}
I'm working on patching this but I'm putting this here as feedback is welcome.
As far as I could tell, this is a side effect of b2b1217, which patched bpo-24705.
pythonGH-78870: copy test from pythonGH-20439
FFY00 commented on Oct 10, 2025
This issue seems to have been fixed by GH-136166.
GH-78870: copy test from GH-20439 (#139884)