From ce7695191fdcfd5564a6fdf7f54255c74206a8c2 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 23 Jun 1999 21:37:57 +0000 Subject: Simplified version of a patch by Chih-Hao Huang, who wrote: """ 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Tools/freeze/checkextensions.py b/Tools/freeze/checkextensions.py index 4ed2a7c..8d597bf 100644 --- a/Tools/freeze/checkextensions.py +++ b/Tools/freeze/checkextensions.py @@ -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 -- cgit v0.12