From 6488bfcf851023e1b8e84be6ebbb793f895f3d0f Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Mon, 18 Nov 2019 12:50:01 -0800 Subject: 5753 Binaries are now identical again. There's a little hack here that we should clean up at some point. But it requires more thought. Ordering compiler phases is hard. So far we're only at the start of the slippery slope into that abyss. --- ntranslate | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'ntranslate') diff --git a/ntranslate b/ntranslate index 9b8eb28c..e1c6f99b 100755 --- a/ntranslate +++ b/ntranslate @@ -27,11 +27,24 @@ cat a.calls |apps/sigils > a.sigils cat a.sigils |apps/tests > a.tests -cat a.tests |apps/dquotes > a.dquotes +cat a.tests |apps/assort > a.assort -cat a.dquotes |apps/assort > a.assort +cat a.assort |apps/dquotes > a.dquotes -cat a.assort |apps/pack > a.pack +# A little hack. We want ntranslate to always emit identical binaries to the +# C++ translator. The C++ translator assorts segments before it processes +# string literals, so we follow the same order above. +# +# However, dquotes currently emits a separate data segment for string literals. +# So we need to run assort a second time to clean up after it. +# +# Potential solutions: +# a) modify C++ translator to process string literals before assorting. +# b) clean up dquotes to assume assorted segments, and append to the +# existing data segment. +cat a.dquotes |apps/assort > a.assort2 + +cat a.assort2 |apps/pack > a.pack cat a.pack |apps/survey > a.survey -- cgit 1.4.1-2-gfad0