From c6221d509496684af68c7eb1bdef58a306357194 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 10 Jul 2015 22:39:48 +0000 Subject: [PATCH] fix a build issue in french --- debian/patches/locale-issue-ld.diff | 448 ++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 449 insertions(+) create mode 100644 debian/patches/locale-issue-ld.diff diff --git a/debian/patches/locale-issue-ld.diff b/debian/patches/locale-issue-ld.diff new file mode 100644 index 00000000..f597c556 --- /dev/null +++ b/debian/patches/locale-issue-ld.diff @@ -0,0 +1,448 @@ +Index: llvm-toolchain-snapshot_3.7~svn241916/home/sylvestre/dev/debian/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot_3.7~svn241916/test/lit.cfg +=================================================================== +--- llvm-toolchain-snapshot_3.7~svn241916.orig/home/sylvestre/dev/debian/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot_3.7~svn241916/test/lit.cfg ++++ /dev/null +@@ -1,443 +0,0 @@ +-# -*- Python -*- +- +-# Configuration file for the 'lit' test runner. +- +-import os +-import sys +-import re +-import platform +- +-import lit.util +-import lit.formats +- +-# name: The name of this test suite. +-config.name = 'LLVM' +- +-# Tweak PATH for Win32 to decide to use bash.exe or not. +-if sys.platform in ['win32']: +- # Seek sane tools in directories and set to $PATH. +- path = getattr(config, 'lit_tools_dir', None) +- path = lit_config.getToolsPath(path, +- config.environment['PATH'], +- ['cmp.exe', 'grep.exe', 'sed.exe']) +- if path is not None: +- path = os.path.pathsep.join((path, +- config.environment['PATH'])) +- config.environment['PATH'] = path +- +-# Choose between lit's internal shell pipeline runner and a real shell. If +-# LIT_USE_INTERNAL_SHELL is in the environment, we use that as an override. +-use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL") +-if use_lit_shell: +- # 0 is external, "" is default, and everything else is internal. +- execute_external = (use_lit_shell == "0") +-else: +- # Otherwise we default to internal on Windows and external elsewhere, as +- # bash on Windows is usually very slow. +- execute_external = (not sys.platform in ['win32']) +- +-# testFormat: The test format to use to interpret tests. +-config.test_format = lit.formats.ShTest(execute_external) +- +-# suffixes: A list of file extensions to treat as test files. This is overriden +-# by individual lit.local.cfg files in the test subdirectories. +-config.suffixes = ['.ll', '.c', '.cxx', '.test', '.txt', '.s'] +- +-# excludes: A list of directories to exclude from the testsuite. The 'Inputs' +-# subdirectories contain auxiliary inputs for various tests in their parent +-# directories. +-config.excludes = ['Inputs', 'CMakeLists.txt', 'README.txt', 'LICENSE.txt'] +- +-# test_source_root: The root path where tests are located. +-config.test_source_root = os.path.dirname(__file__) +- +-# test_exec_root: The root path where tests should be run. +-llvm_obj_root = getattr(config, 'llvm_obj_root', None) +-if llvm_obj_root is not None: +- config.test_exec_root = os.path.join(llvm_obj_root, 'test') +- +-# Tweak the PATH to include the tools dir. +-if llvm_obj_root is not None: +- llvm_tools_dir = getattr(config, 'llvm_tools_dir', None) +- if not llvm_tools_dir: +- lit_config.fatal('No LLVM tools dir set!') +- path = os.path.pathsep.join((llvm_tools_dir, config.environment['PATH'])) +- config.environment['PATH'] = path +- +-# Propagate 'HOME' through the environment. +-if 'HOME' in os.environ: +- config.environment['HOME'] = os.environ['HOME'] +- +-# Propagate 'INCLUDE' through the environment. +-if 'INCLUDE' in os.environ: +- config.environment['INCLUDE'] = os.environ['INCLUDE'] +- +-# Propagate 'LIB' through the environment. +-if 'LIB' in os.environ: +- config.environment['LIB'] = os.environ['LIB'] +- +-# Propagate the temp directory. Windows requires this because it uses \Windows\ +-# if none of these are present. +-if 'TMP' in os.environ: +- config.environment['TMP'] = os.environ['TMP'] +-if 'TEMP' in os.environ: +- config.environment['TEMP'] = os.environ['TEMP'] +- +-# Propagate LLVM_SRC_ROOT into the environment. +-config.environment['LLVM_SRC_ROOT'] = getattr(config, 'llvm_src_root', '') +- +-# Propagate PYTHON_EXECUTABLE into the environment +-config.environment['PYTHON_EXECUTABLE'] = getattr(config, 'python_executable', +- '') +- +-# Propagate path to symbolizer for ASan/MSan. +-for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']: +- if symbolizer in os.environ: +- config.environment[symbolizer] = os.environ[symbolizer] +- +-# Set up OCAMLPATH to include newly built OCaml libraries. +-llvm_lib_dir = getattr(config, 'llvm_lib_dir', None) +-if llvm_lib_dir is None: +- if llvm_obj_root is not None: +- llvm_lib_dir = os.path.join(llvm_obj_root, 'lib') +- +-if llvm_lib_dir is not None: +- llvm_ocaml_lib = os.path.join(llvm_lib_dir, 'ocaml') +- if llvm_ocaml_lib is not None: +- if 'OCAMLPATH' in os.environ: +- ocamlpath = os.path.pathsep.join((llvm_ocaml_lib, os.environ['OCAMLPATH'])) +- config.environment['OCAMLPATH'] = ocamlpath +- else: +- config.environment['OCAMLPATH'] = llvm_ocaml_lib +- +- if 'CAML_LD_LIBRARY_PATH' in os.environ: +- caml_ld_library_path = os.path.pathsep.join((llvm_ocaml_lib, +- os.environ['CAML_LD_LIBRARY_PATH'])) +- config.environment['CAML_LD_LIBRARY_PATH'] = caml_ld_library_path +- else: +- config.environment['CAML_LD_LIBRARY_PATH'] = llvm_ocaml_lib +- +-# Set up OCAMLRUNPARAM to enable backtraces in OCaml tests. +-config.environment['OCAMLRUNPARAM'] = 'b' +- +-### +- +-import os +- +-# Check that the object root is known. +-if config.test_exec_root is None: +- # Otherwise, we haven't loaded the site specific configuration (the user is +- # probably trying to run on a test file directly, and either the site +- # configuration hasn't been created by the build system, or we are in an +- # out-of-tree build situation). +- +- # Check for 'llvm_site_config' user parameter, and use that if available. +- site_cfg = lit_config.params.get('llvm_site_config', None) +- if site_cfg and os.path.exists(site_cfg): +- lit_config.load_config(config, site_cfg) +- raise SystemExit +- +- # Try to detect the situation where we are using an out-of-tree build by +- # looking for 'llvm-config'. +- # +- # FIXME: I debated (i.e., wrote and threw away) adding logic to +- # automagically generate the lit.site.cfg if we are in some kind of fresh +- # build situation. This means knowing how to invoke the build system +- # though, and I decided it was too much magic. +- +- llvm_config = lit.util.which('llvm-config', config.environment['PATH']) +- if not llvm_config: +- lit_config.fatal('No site specific configuration available!') +- +- # Get the source and object roots. +- llvm_src_root = lit.util.capture(['llvm-config', '--src-root']).strip() +- llvm_obj_root = lit.util.capture(['llvm-config', '--obj-root']).strip() +- +- # Validate that we got a tree which points to here. +- this_src_root = os.path.dirname(config.test_source_root) +- if os.path.realpath(llvm_src_root) != os.path.realpath(this_src_root): +- lit_config.fatal('No site specific configuration available!') +- +- # Check that the site specific configuration exists. +- site_cfg = os.path.join(llvm_obj_root, 'test', 'lit.site.cfg') +- if not os.path.exists(site_cfg): +- lit_config.fatal('No site specific configuration available!') +- +- # Okay, that worked. Notify the user of the automagic, and reconfigure. +- lit_config.note('using out-of-tree build at %r' % llvm_obj_root) +- lit_config.load_config(config, site_cfg) +- raise SystemExit +- +-### +- +-lli = 'lli' +-# The target triple used by default by lli is the process target triple (some +-# triple appropriate for generating code for the current process) but because +-# we don't support COFF in MCJIT well enough for the tests, force ELF format on +-# Windows. FIXME: the process target triple should be used here, but this is +-# difficult to obtain on Windows. +-if re.search(r'cygwin|mingw32|windows-gnu|windows-msvc|win32', config.host_triple): +- lli += ' -mtriple='+config.host_triple+'-elf' +-config.substitutions.append( ('%lli', lli ) ) +- +-# Similarly, have a macro to use llc with DWARF even when the host is win32. +-llc_dwarf = 'llc' +-if re.search(r'win32', config.target_triple): +- llc_dwarf += ' -mtriple='+config.target_triple.replace('-win32', '-mingw32') +-config.substitutions.append( ('%llc_dwarf', llc_dwarf) ) +- +-# Add site-specific substitutions. +-config.substitutions.append( ('%gold', config.gold_executable) ) +-config.substitutions.append( ('%ld64', config.ld64_executable) ) +-config.substitutions.append( ('%go', config.go_executable) ) +-config.substitutions.append( ('%llvmshlibdir', config.llvm_shlib_dir) ) +-config.substitutions.append( ('%shlibext', config.llvm_shlib_ext) ) +-config.substitutions.append( ('%exeext', config.llvm_exe_ext) ) +-config.substitutions.append( ('%python', config.python_executable) ) +- +-# OCaml substitutions. +-# Support tests for both native and bytecode builds. +-config.substitutions.append( ('%ocamlc', +- "%s ocamlc -cclib -L%s %s" % +- (config.ocamlfind_executable, llvm_lib_dir, config.ocaml_flags)) ) +-if config.have_ocamlopt in ('1', 'TRUE'): +- config.substitutions.append( ('%ocamlopt', +- "%s ocamlopt -cclib -L%s -cclib -Wl,-rpath,%s %s" % +- (config.ocamlfind_executable, llvm_lib_dir, llvm_lib_dir, config.ocaml_flags)) ) +-else: +- config.substitutions.append( ('%ocamlopt', "true" ) ) +- +-# For each occurrence of an llvm tool name as its own word, replace it +-# with the full path to the build directory holding that tool. This +-# ensures that we are testing the tools just built and not some random +-# tools that might happen to be in the user's PATH. Thus this list +-# includes every tool placed in $(LLVM_OBJ_ROOT)/$(BuildMode)/bin +-# (llvm_tools_dir in lit parlance). +- +-# Avoid matching RUN line fragments that are actually part of +-# path names or options or whatever. +-# The regex is a pre-assertion to avoid matching a preceding +-# dot, hyphen, carat, or slash (.foo, -foo, etc.). Some patterns +-# also have a post-assertion to not match a trailing hyphen (foo-). +-NOJUNK = r"(?