From 4254e8c5484460b9be7e58dc89bd25815612fc37 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Wed, 28 Sep 2016 23:13:58 -0700 Subject: [PATCH] build_ext: correctly parse the link_objects user option (closes #1703178) Patch by Valerie Lambert. --- Lib/distutils/command/build_ext.py | 1 + Lib/distutils/tests/test_build_ext.py | 7 +++++++ Misc/NEWS | 3 +++ 3 files changed, 11 insertions(+) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index f03a4e31d8d..7c278ef0afe 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -166,6 +166,7 @@ class build_ext(Command): self.include_dirs.append(plat_py_include) self.ensure_string_list('libraries') + self.ensure_string_list('link_objects') # Life is easier if we're not forever checking for None, so # simplify these options to empty lists if unset diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 4e397ea4c94..f3df564e373 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -195,6 +195,13 @@ class BuildExtTestCase(TempdirManager, cmd.finalize_options() self.assertEqual(cmd.rpath, ['one', 'two']) + # make sure cmd.link_objects is turned into a list + # if it's a string + cmd = build_ext(dist) + cmd.link_objects = 'one two,three' + cmd.finalize_options() + self.assertEqual(cmd.link_objects, ['one', 'two', 'three']) + # XXX more tests to perform for win32 # make sure define is turned into 2-tuples diff --git a/Misc/NEWS b/Misc/NEWS index 3b41f49a456..fbf31004819 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -83,6 +83,9 @@ Core and Builtins Library ------- +- Issue #1703178: Fix the ability to pass the --link-objects option to the + distutils build_ext command. + - Issue #28253: Fixed calendar functions for extreme months: 0001-01 and 9999-12.