distutils of PyPy incorrectly handles CFLAGS as 1 argument instead of space-separated list of arguments. distutils should respect environment variables, which set compiler, linker etc. distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option() triggers exception during linking of extension modules: File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/command/build.py", line 127, in run self.run_command(cmd_name) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/command/build_ext.py", line 345, in run self.build_extensions() File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/command/build_ext.py", line 454, in build_extensions self.build_extension(ext) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/command/build_ext.py", line 536, in build_extension target_lang=language) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/ccompiler.py", line 741, in link_shared_object extra_preargs, extra_postargs, build_temp, target_lang) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/unixccompiler.py", line 233, in link libraries) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/ccompiler.py", line 1121, in gen_lib_options opt = compiler.runtime_library_dir_option(dir) File "/usr/lib64/pypy1.7/lib-python/modified-2.7/distutils/unixccompiler.py", line 300, in runtime_library_dir_option compiler = os.path.basename(sysconfig.get_config_var("CC")) File "/usr/lib64/pypy1.7/lib-python/2.7/posixpath.py", line 112, in basename i = p.rfind('/') + 1 AttributeError: 'NoneType' object has no attribute 'rfind'
Created attachment 297815 [details, diff] pypy-1.7-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
Created attachment 297817 [details, diff] pypy-1.7-distutils-fix_handling_of_executables_and_flags.patch
*** Bug 397373 has been marked as a duplicate of this bug. ***
*** Bug 397363 has been marked as a duplicate of this bug. ***
*** Bug 397365 has been marked as a duplicate of this bug. ***
*** Bug 397369 has been marked as a duplicate of this bug. ***
*** Bug 397371 has been marked as a duplicate of this bug. ***
*** Bug 397381 has been marked as a duplicate of this bug. ***
Patches applied, so closing.
Second patch was incomplete.
Created attachment 300717 [details, diff] pypy-1.7-distutils-fix_handling_of_executables_and_flags.patch