--- langkit-gps-src/langkit/templates/project_file.mako.old 2017-07-11 14:19:12.841221846 +0200 +++ langkit-gps-src/langkit/templates/project_file.mako 2017-07-11 14:12:39.104981170 +0200 @@ -82,9 +82,11 @@ for Default_Switches ("Ada") use Common_Ada_Cargs & ("-g", "-O0", "-gnatwe", "-gnata"); - for Default_Switches ("C") use Common_C_Cargs & ("-g3", "-O0"); + for Default_Switches ("C") use Common_C_Cargs & + ("-g3", "-O0", "-fPIC"); - for Switches ("quex_lexer.c") use Common_C_Cargs & ("-g0", "-O0"); + for Switches ("quex_lexer.c") use Common_C_Cargs & + ("-g0", "-O0", "-fPIC"); -- This file is *huge* and the debugging information for it harms -- Valgrind runs. We almost never have to debug this file so -- this is acceptable. @@ -111,6 +111,7 @@ -- ... and this prevents OOM on other platforms end case; end case; + for Driver ("C") use External ("GCC", "gcc"); end Compiler; package Binder is --- langkit-gps-src/langkit/compile_context.py.old 2017-12-13 22:12:38.689143125 +0100 +++ langkit-gps-src/langkit/compile_context.py 2017-12-13 22:13:02.446737994 +0100 @@ -1171,8 +1171,7 @@ # the Quex specification changed from last build. if generate_lexer and self.cache.is_stale('quex_specification', quex_spec): - quex_py_file = path.join(os.environ["QUEX_PATH"], "quex-exe.py") - subprocess.check_call([sys.executable, quex_py_file, "-i", + subprocess.check_call(["quex", "-i", quex_file, "-o", "quex_lexer", "--buffer-element-size", "4", --- langkit-gps-src/langkit/templates/pkg_analysis_body_ada.mako.old 2017-12-26 20:47:28.461617512 +0100 +++ langkit-gps-src/langkit/templates/pkg_analysis_body_ada.mako 2017-12-26 20:47:58.912060490 +0100 @@ -2196,7 +2196,7 @@ -- printing them. function Hash (S : Lexical_Env) return Hash_Type is - (Hash_Type (To_Integer (S.all'Address))); + (Hash_Type'Mod (To_Integer (S.all'Address))); package Address_To_Id_Maps is new Ada.Containers.Hashed_Maps (Lexical_Env, Integer, Hash, "="); --- a/testsuite/testsuite_support/__init__.py.old 2018-05-02 21:40:04.977442020 +0200 +++ b/testsuite/testsuite_support/__init__.py 2018-05-02 21:40:45.422759387 +0200 @@ -68,6 +68,7 @@ # to build it in parallel. if not self.global_env['options'].disable_tear_up_builds: - p = Run(['gprbuild', '-p', '-f', '-P', + p = Run(['gprbuild', '-p', '-f', '-XLIBRARY_TYPE=relocatable', + '-XXMLADA_BUILD=relocatable', '-P', os.path.join(self.root_dir, '..', 'langkit', 'support', 'langkit_support.gpr')], output=PIPE) report(p, "Langkit support") --- a/testsuite/testsuite_support/langkit_support_driver.py.old 2018-05-03 08:01:20.019944992 +0200 +++ b/testsuite/testsuite_support/langkit_support_driver.py 2018-05-03 08:02:50.146430288 +0200 @@ -36,5 +36,7 @@ )) self.run_and_check(['gprbuild', '-p', '-P', 'p.gpr', '-gnata', + '-XLIBRARY_TYPE=relocatable', + '-XXMLADA_BUILD=relocatable', '-cargs', '-O0', '-g']) self.run_and_check(['./{}'.format(source[:-4])]) +++ a/testsuite/testsuite_support/adalog_driver.py.old 2018-05-03 08:14:30.998698722 +0200 --- b/testsuite/testsuite_support/adalog_driver.py 2018-05-03 08:16:48.275417176 +0200 @@ -41,6 +41,8 @@ ) )) - self.run_and_check(['gprbuild', '-p', '-P', 'p.gpr', '-cargs', '-O0', + self.run_and_check(['gprbuild', '-p', '-XLIBRARY_TYPE=relocatable', + '-XXMLADA_BUILD=relocatable', + '-P', 'p.gpr', '-cargs', '-O0', '-g']) self.run_and_check(['./{}'.format(source[:-4])])