summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2017-08-02 15:00:59 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2017-08-02 15:00:59 +0000
commita4a20cd2f3b0fc0885aa4217dc89d814b4a38c4c (patch)
treeae6df6b06b091727c1f6a0db5260d79180ff6bbc
parent5ce28f4f9232935c3f7e4f1dc5894bb1102ecbc9 (diff)
downloadbcm5719-llvm-a4a20cd2f3b0fc0885aa4217dc89d814b4a38c4c.tar.gz
bcm5719-llvm-a4a20cd2f3b0fc0885aa4217dc89d814b4a38c4c.zip
configure.py: Make python3 friendly
mostly prints and exceptions. Few behavioral changes are documented in the text Generated Makefile is identical between python2 and python3 Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Aaron Watry <awatry@gmail.com> llvm-svn: 309820
-rw-r--r--libclc/build/metabuild.py2
-rwxr-xr-xlibclc/configure.py23
2 files changed, 19 insertions, 6 deletions
diff --git a/libclc/build/metabuild.py b/libclc/build/metabuild.py
index 4ab5db58e06..b2d5a6ea20b 100644
--- a/libclc/build/metabuild.py
+++ b/libclc/build/metabuild.py
@@ -97,4 +97,4 @@ def from_name(name):
return Make()
if name == 'ninja':
return Ninja()
- raise LookupError, 'unknown generator: %s; supported generators are make and ninja' % name
+ raise LookupError('unknown generator: %s; supported generators are make and ninja' % name)
diff --git a/libclc/configure.py b/libclc/configure.py
index f26f5359a3e..8e7017d51f6 100755
--- a/libclc/configure.py
+++ b/libclc/configure.py
@@ -1,4 +1,11 @@
#!/usr/bin/python
+from __future__ import print_function
+
+# We only need this for int() cast, which works by default in python 2
+try:
+ from builtins import int
+except:
+ pass
def c_compiler_rule(b, name, description, compiler, flags):
command = "%s -MMD -MF $out.d %s -c -o $out $in" % (compiler, flags)
@@ -58,19 +65,21 @@ if not pkgconfigdir:
def llvm_config(args):
try:
- proc = Popen([llvm_config_exe] + args, stdout=PIPE)
+ # Universal newlines translate different newline formats to '\n'
+ # it also force the input to be string instead of bytes in python 3
+ proc = Popen([llvm_config_exe] + args, stdout=PIPE, universal_newlines=True)
return proc.communicate()[0].rstrip().replace('\n', ' ')
except OSError:
- print "Error executing llvm-config."
- print "Please ensure that llvm-config is in your $PATH, or use --with-llvm-config."
+ print("Error executing llvm-config.")
+ print("Please ensure that llvm-config is in your $PATH, or use --with-llvm-config.")
sys.exit(1)
-llvm_version = string.split(string.replace(llvm_config(['--version']), 'svn', ''), '.')
+llvm_version = llvm_config(['--version']).replace('svn', '').split('.')
llvm_int_version = int(llvm_version[0]) * 100 + int(llvm_version[1]) * 10
llvm_string_version = 'LLVM' + llvm_version[0] + '.' + llvm_version[1]
if llvm_int_version < 400:
- print "libclc requires LLVM >= 4.0"
+ print("libclc requires LLVM >= 4.0")
sys.exit(1)
llvm_system_libs = llvm_config(['--system-libs'])
@@ -180,6 +189,10 @@ for target in targets:
libdirs = filter(lambda d: os.path.isfile(os.path.join(d, 'SOURCES')),
[os.path.join(srcdir, subdir, 'lib') for subdir in subdirs])
+ # The above are iterables in python3 but we might use them multiple times
+ # if more then one device is supported.
+ incdirs = list(incdirs)
+ libdirs = list(libdirs)
clang_cl_includes = ' '.join(["-I%s" % incdir for incdir in incdirs])
for device in available_targets[target]['devices']:
OpenPOWER on IntegriCloud