[issue37839] makesetup Doesn't Handle Defines with Equal Sign

Will Bond report at bugs.python.org
Tue Aug 13 07:00:09 EDT 2019


New submission from Will Bond <will at wbond.net>:

Using 3.8.0b3 on macOS. I'm doing a custom compile with (heavy) modifications to Modules/Setup.local. Whenever I add a define rule to a module line that includes an equal sign, e.g.:

_sqlite3 -DMODULE_NAME=_sqlite3 _sqlite/module.c _sqlite/cache.c _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c -I../env/include -I\$(srcdir)/Modules/_sqlite ../env/lib/libsqlite3.a

makesetup appears to treat this as a Makefile variable definition, which places the rule in the wrong part of the Makefile. In my situation, this causes _sqlite3 to be compiled as a shared library instead of statically.

I see this was peripherally reported at https://bugs.python.org/issue35184, but in that case the =1 was just dropped rather than solving the underlying issue. For many situations, dropping the =1 works, but in others it is not.

Not that this is necessarily helpful, but I do know that this used to work with Python 3.3.

----------
messages: 349543
nosy: wbond
priority: normal
severity: normal
status: open
title: makesetup Doesn't Handle Defines with Equal Sign
type: compile error
versions: Python 3.8

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37839>
_______________________________________


More information about the Python-bugs-list mailing list