[issue21482] get_versions() in cygwinccomiler.py cannot return correct gcc version
New submission from Joe Chan: cannot return correct gcc version if the path name contains "space". Suggest to change to: $ diff -rupN cygwinccompiler.py.original cygwinccompiler.py --- cygwinccompiler.py.original 2014-05-12 23:54:01.296303800 +0800 +++ cygwinccompiler.py 2014-05-12 23:59:57.429673400 +0800 @@ -418,14 +418,14 @@ def get_versions(): gcc_exe = find_executable('gcc') if gcc_exe: -out = os.popen(gcc_exe + ' -dumpversion','r') +out = os.popen('"%s" -dumpversion'%gcc_exe,'r') out_string = out.read() out.close() result = re.search('(\d+\.\d+(\.\d+)*)',out_string) if result: gcc_version = LooseVersion(result.group(1)) else: -gcc_version = None +gcc_version = None else: gcc_version = None ld_exe = find_executable('ld') -- components: Windows messages: 218327 nosy: 3togo priority: normal severity: normal status: open title: get_versions() in cygwinccomiler.py cannot return correct gcc version type: compile error versions: Python 2.7 ___ Python tracker <http://bugs.python.org/issue21482> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21482] get_versions() in cygwinccomiler.py cannot return correct gcc version
Joe Chan added the comment: better to parenthesis all three exes[gcc, ld and dllwrap] with "%s" to better support path names that contain non-alphanumeric characters. $ diff -rupN cygwinccompiler.py.original cygwinccompiler.py --- cygwinccompiler.py.original 2014-05-12 23:54:01.296303800 +0800 +++ cygwinccompiler.py 2014-05-13 00:24:08.754684500 +0800 @@ -418,19 +418,19 @@ def get_versions(): gcc_exe = find_executable('gcc') if gcc_exe: -out = os.popen(gcc_exe + ' -dumpversion','r') +out = os.popen('"%s" -dumpversion'%gcc_exe,'r') out_string = out.read() out.close() result = re.search('(\d+\.\d+(\.\d+)*)',out_string) if result: gcc_version = LooseVersion(result.group(1)) else: -gcc_version = None +gcc_version = None else: gcc_version = None ld_exe = find_executable('ld') if ld_exe: -out = os.popen(ld_exe + ' -v','r') +out = os.popen('"%s" -v'%ld_exe,'r') out_string = out.read() out.close() result = re.search('(\d+\.\d+(\.\d+)*)',out_string) @@ -442,7 +442,7 @@ def get_versions(): ld_version = None dllwrap_exe = find_executable('dllwrap') if dllwrap_exe: -out = os.popen(dllwrap_exe + ' --version','r') +out = os.popen('"%s" --version'%dllwrap_exe,'r') out_string = out.read() out.close() result = re.search(' (\d+\.\d+(\.\d+)*)',out_string) -- ___ Python tracker <http://bugs.python.org/issue21482> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21482] get_versions() in cygwinccomiler.py cannot return correct gcc version
Joe Chan added the comment: To prevent system crashes, I have to exclude msvc runtime library $ diff -rupN cygwinccompiler.py.original cygwinccompiler.py --- cygwinccompiler.py.original 2014-05-12 23:54:01.296303800 +0800 +++ cygwinccompiler.py 2014-05-13 02:59:37.870414900 +0800 @@ -341,7 +341,7 @@ class Mingw32CCompiler (CygwinCCompiler) # Include the appropriate MSVC runtime library if Python was built # with MSVC 7.0 or later. -self.dll_libraries = get_msvcr() +#self.dll_libraries = get_msvcr() # __init__ () @@ -418,19 +418,19 @@ def get_versions(): gcc_exe = find_executable('gcc') if gcc_exe: -out = os.popen(gcc_exe + ' -dumpversion','r') +out = os.popen('"%s" -dumpversion'%gcc_exe,'r') out_string = out.read() out.close() result = re.search('(\d+\.\d+(\.\d+)*)',out_string) if result: gcc_version = LooseVersion(result.group(1)) else: -gcc_version = None +gcc_version = None else: gcc_version = None ld_exe = find_executable('ld') if ld_exe: -out = os.popen(ld_exe + ' -v','r') +out = os.popen('"%s" -v'%ld_exe,'r') out_string = out.read() out.close() result = re.search('(\d+\.\d+(\.\d+)*)',out_string) @@ -442,7 +442,7 @@ def get_versions(): ld_version = None dllwrap_exe = find_executable('dllwrap') if dllwrap_exe: -out = os.popen(dllwrap_exe + ' --version','r') +out = os.popen('"%s" --version'%dllwrap_exe,'r') out_string = out.read() out.close() result = re.search(' (\d+\.\d+(\.\d+)*)',out_string) -- ___ Python tracker <http://bugs.python.org/issue21482> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com