]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Simplified version of a patch by Chih-Hao Huang, who wrote:
authorGuido van Rossum <guido@python.org>
Wed, 23 Jun 1999 21:37:57 +0000 (21:37 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 23 Jun 1999 21:37:57 +0000 (21:37 +0000)
"""
When there are additional Setup files, specified by -e option of freeze,
checkextenstions.py assumes that *.o, *.a, -Lpath, and -Rpath are all
relative to where the Setup file is. select() inserts the path to the
Setup file to make them absolute. However, the assumption is not true.
There are cases that absolute paths are specified for them. The inserted
prefix, by select(), results in error.

The following fix check for absolute paths. The assumption is: an
absolute path begins with either '/' or '$'. In the latter case, it is
from the environmental variable. (Variables defined locally in the Setup
file have already been handled by expandvars())
"""

My version of the patch has been verified by Charles Waldman (a
colleague of Chih-Hao).

Tools/freeze/checkextensions.py

index 4ed2a7c33c60c670a261a45ec145dc8783388b75..8d597bfae96796edbd3a4345b9cb12651099c6ad 100644 (file)
@@ -47,9 +47,10 @@ def select(e, mods, vars, mod, skipofiles):
                for w in string.split(w):
                        if skipofiles and w[-2:] == '.o':
                                continue
-                       if w[0] != '-' and w[-2:] in ('.o', '.a'):
+                       # Assume $var expands to absolute pathname
+                       if w[0] not in ('-', '$') and w[-2:] in ('.o', '.a'):
                                w = os.path.join(e, w)
-                       if w[:2] in ('-L', '-R'):
+                       if w[:2] in ('-L', '-R') and w[2:3] != '$':
                                w = w[:2] + os.path.join(e, w[2:])
                        files.append(w)
        return files