Message ID | 20230225091427.1817156-75-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | tcg: Drop tcg_temp_free from translators | expand |
Richard, Not sure if I forgot or missed something but this patch breaks my build as follows: $ make -j GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc [1/885] Generating trace/trace-hw_hyperv.c with a custom command FAILED: trace/trace-hw_hyperv.c /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c Traceback (most recent call last): File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module> from tracetool import error_write, out, out_open File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module> import tracetool.transform ModuleNotFoundError: No module named 'tracetool.transform' It seems that tracetool.py is still referring transform. This fixes the build for me: $ git diff diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 5393c7fc5c..c361815bc1 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -18,7 +18,6 @@ import tracetool.format import tracetool.backend -import tracetool.transform def error_write(*lines): For reference I grabbed and built the whole series from patchew: https://patchew.org/QEMU/20230225091427.1817156-1-richard.henderson@linaro.org/ Thanks, Daniel On 2/25/23 06:14, Richard Henderson wrote: > This file got left behind when the tcg stuff was > removed from tracetool. > > Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool") > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > meson.build | 1 - > scripts/tracetool/transform.py | 168 --------------------------------- > 2 files changed, 169 deletions(-) > delete mode 100644 scripts/tracetool/transform.py > > diff --git a/meson.build b/meson.build > index 6cb2b1a42f..275399b8c2 100644 > --- a/meson.build > +++ b/meson.build > @@ -2861,7 +2861,6 @@ tracetool_depends = files( > 'scripts/tracetool/format/log_stap.py', > 'scripts/tracetool/format/stap.py', > 'scripts/tracetool/__init__.py', > - 'scripts/tracetool/transform.py', > 'scripts/tracetool/vcpu.py' > ) > > diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py > deleted file mode 100644 > index ea8b27799d..0000000000 > --- a/scripts/tracetool/transform.py > +++ /dev/null > @@ -1,168 +0,0 @@ > -# -*- coding: utf-8 -*- > - > -""" > -Type-transformation rules. > -""" > - > -__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" > -__copyright__ = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>" > -__license__ = "GPL version 2 or (at your option) any later version" > - > -__maintainer__ = "Stefan Hajnoczi" > -__email__ = "stefanha@redhat.com" > - > - > -def _transform_type(type_, trans): > - if isinstance(trans, str): > - return trans > - elif isinstance(trans, dict): > - if type_ in trans: > - return _transform_type(type_, trans[type_]) > - elif None in trans: > - return _transform_type(type_, trans[None]) > - else: > - return type_ > - elif callable(trans): > - return trans(type_) > - else: > - raise ValueError("Invalid type transformation rule: %s" % trans) > - > - > -def transform_type(type_, *trans): > - """Return a new type transformed according to the given rules. > - > - Applies each of the transformation rules in trans in order. > - > - If an element of trans is a string, return it. > - > - If an element of trans is a function, call it with type_ as its only > - argument. > - > - If an element of trans is a dict, search type_ in its keys. If type_ is > - a key, use the value as a transformation rule for type_. Otherwise, if > - None is a key use the value as a transformation rule for type_. > - > - Otherwise, return type_. > - > - Parameters > - ---------- > - type_ : str > - Type to transform. > - trans : list of function or dict > - Type transformation rules. > - """ > - if len(trans) == 0: > - raise ValueError > - res = type_ > - for t in trans: > - res = _transform_type(res, t) > - return res > - > - > -################################################## > -# tcg -> host > - > -def _tcg_2_host(type_): > - if type_ == "TCGv": > - # force a fixed-size type (target-independent) > - return "uint64_t" > - else: > - return type_ > - > -TCG_2_HOST = { > - "TCGv_i32": "uint32_t", > - "TCGv_i64": "uint64_t", > - "TCGv_ptr": "void *", > - None: _tcg_2_host, > - } > - > - > -################################################## > -# host -> host compatible with tcg sizes > - > -HOST_2_TCG_COMPAT = { > - "uint8_t": "uint32_t", > - "uint16_t": "uint32_t", > - } > - > - > -################################################## > -# host/tcg -> tcg > - > -def _host_2_tcg(type_): > - if type_.startswith("TCGv"): > - return type_ > - raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_) > - > -HOST_2_TCG = { > - "uint32_t": "TCGv_i32", > - "uint64_t": "TCGv_i64", > - "void *" : "TCGv_ptr", > - "CPUArchState *": "TCGv_env", > - None: _host_2_tcg, > - } > - > - > -################################################## > -# tcg -> tcg helper definition > - > -def _tcg_2_helper_def(type_): > - if type_ == "TCGv": > - return "target_ulong" > - else: > - return type_ > - > -TCG_2_TCG_HELPER_DEF = { > - "TCGv_i32": "uint32_t", > - "TCGv_i64": "uint64_t", > - "TCGv_ptr": "void *", > - None: _tcg_2_helper_def, > - } > - > - > -################################################## > -# tcg -> tcg helper declaration > - > -def _tcg_2_tcg_helper_decl_error(type_): > - raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_) > - > -TCG_2_TCG_HELPER_DECL = { > - "TCGv" : "tl", > - "TCGv_ptr": "ptr", > - "TCGv_i32": "i32", > - "TCGv_i64": "i64", > - "TCGv_env": "env", > - None: _tcg_2_tcg_helper_decl_error, > - } > - > - > -################################################## > -# host/tcg -> tcg temporal constant allocation > - > -def _host_2_tcg_tmp_new(type_): > - if type_.startswith("TCGv"): > - return "tcg_temp_new_nop" > - raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_) > - > -HOST_2_TCG_TMP_NEW = { > - "uint32_t": "tcg_const_i32", > - "uint64_t": "tcg_const_i64", > - "void *" : "tcg_const_ptr", > - None: _host_2_tcg_tmp_new, > - } > - > - > -################################################## > -# host/tcg -> tcg temporal constant deallocation > - > -def _host_2_tcg_tmp_free(type_): > - if type_.startswith("TCGv"): > - return "tcg_temp_free_nop" > - raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_) > - > -HOST_2_TCG_TMP_FREE = { > - "uint32_t": "tcg_temp_free_i32", > - "uint64_t": "tcg_temp_free_i64", > - "void *" : "tcg_temp_free_ptr", > - None: _host_2_tcg_tmp_free, > - }
On 2/25/23 07:22, Daniel Henrique Barboza wrote: > Richard, > > Not sure if I forgot or missed something but this patch breaks my build as follows: Nevermind, just did it again to test the powerpc changes and it worked. I probably goofed something the first time. Daniel > > $ make -j > GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc > [1/885] Generating trace/trace-hw_hyperv.c with a custom command > FAILED: trace/trace-hw_hyperv.c > /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c > Traceback (most recent call last): > File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module> > from tracetool import error_write, out, out_open > File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module> > import tracetool.transform > ModuleNotFoundError: No module named 'tracetool.transform' > > > It seems that tracetool.py is still referring transform. This fixes the build > for me: > > $ git diff > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py > index 5393c7fc5c..c361815bc1 100644 > --- a/scripts/tracetool/__init__.py > +++ b/scripts/tracetool/__init__.py > @@ -18,7 +18,6 @@ > > import tracetool.format > import tracetool.backend > -import tracetool.transform > > > def error_write(*lines): > > > For reference I grabbed and built the whole series from patchew: > > https://patchew.org/QEMU/20230225091427.1817156-1-richard.henderson@linaro.org/ > > > > Thanks, > > > Daniel > > > On 2/25/23 06:14, Richard Henderson wrote: >> This file got left behind when the tcg stuff was >> removed from tracetool. >> >> Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool") >> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> >> --- >> meson.build | 1 - >> scripts/tracetool/transform.py | 168 --------------------------------- >> 2 files changed, 169 deletions(-) >> delete mode 100644 scripts/tracetool/transform.py >> >> diff --git a/meson.build b/meson.build >> index 6cb2b1a42f..275399b8c2 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -2861,7 +2861,6 @@ tracetool_depends = files( >> 'scripts/tracetool/format/log_stap.py', >> 'scripts/tracetool/format/stap.py', >> 'scripts/tracetool/__init__.py', >> - 'scripts/tracetool/transform.py', >> 'scripts/tracetool/vcpu.py' >> ) >> diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py >> deleted file mode 100644 >> index ea8b27799d..0000000000 >> --- a/scripts/tracetool/transform.py >> +++ /dev/null >> @@ -1,168 +0,0 @@ >> -# -*- coding: utf-8 -*- >> - >> -""" >> -Type-transformation rules. >> -""" >> - >> -__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" >> -__copyright__ = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>" >> -__license__ = "GPL version 2 or (at your option) any later version" >> - >> -__maintainer__ = "Stefan Hajnoczi" >> -__email__ = "stefanha@redhat.com" >> - >> - >> -def _transform_type(type_, trans): >> - if isinstance(trans, str): >> - return trans >> - elif isinstance(trans, dict): >> - if type_ in trans: >> - return _transform_type(type_, trans[type_]) >> - elif None in trans: >> - return _transform_type(type_, trans[None]) >> - else: >> - return type_ >> - elif callable(trans): >> - return trans(type_) >> - else: >> - raise ValueError("Invalid type transformation rule: %s" % trans) >> - >> - >> -def transform_type(type_, *trans): >> - """Return a new type transformed according to the given rules. >> - >> - Applies each of the transformation rules in trans in order. >> - >> - If an element of trans is a string, return it. >> - >> - If an element of trans is a function, call it with type_ as its only >> - argument. >> - >> - If an element of trans is a dict, search type_ in its keys. If type_ is >> - a key, use the value as a transformation rule for type_. Otherwise, if >> - None is a key use the value as a transformation rule for type_. >> - >> - Otherwise, return type_. >> - >> - Parameters >> - ---------- >> - type_ : str >> - Type to transform. >> - trans : list of function or dict >> - Type transformation rules. >> - """ >> - if len(trans) == 0: >> - raise ValueError >> - res = type_ >> - for t in trans: >> - res = _transform_type(res, t) >> - return res >> - >> - >> -################################################## >> -# tcg -> host >> - >> -def _tcg_2_host(type_): >> - if type_ == "TCGv": >> - # force a fixed-size type (target-independent) >> - return "uint64_t" >> - else: >> - return type_ >> - >> -TCG_2_HOST = { >> - "TCGv_i32": "uint32_t", >> - "TCGv_i64": "uint64_t", >> - "TCGv_ptr": "void *", >> - None: _tcg_2_host, >> - } >> - >> - >> -################################################## >> -# host -> host compatible with tcg sizes >> - >> -HOST_2_TCG_COMPAT = { >> - "uint8_t": "uint32_t", >> - "uint16_t": "uint32_t", >> - } >> - >> - >> -################################################## >> -# host/tcg -> tcg >> - >> -def _host_2_tcg(type_): >> - if type_.startswith("TCGv"): >> - return type_ >> - raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_) >> - >> -HOST_2_TCG = { >> - "uint32_t": "TCGv_i32", >> - "uint64_t": "TCGv_i64", >> - "void *" : "TCGv_ptr", >> - "CPUArchState *": "TCGv_env", >> - None: _host_2_tcg, >> - } >> - >> - >> -################################################## >> -# tcg -> tcg helper definition >> - >> -def _tcg_2_helper_def(type_): >> - if type_ == "TCGv": >> - return "target_ulong" >> - else: >> - return type_ >> - >> -TCG_2_TCG_HELPER_DEF = { >> - "TCGv_i32": "uint32_t", >> - "TCGv_i64": "uint64_t", >> - "TCGv_ptr": "void *", >> - None: _tcg_2_helper_def, >> - } >> - >> - >> -################################################## >> -# tcg -> tcg helper declaration >> - >> -def _tcg_2_tcg_helper_decl_error(type_): >> - raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_) >> - >> -TCG_2_TCG_HELPER_DECL = { >> - "TCGv" : "tl", >> - "TCGv_ptr": "ptr", >> - "TCGv_i32": "i32", >> - "TCGv_i64": "i64", >> - "TCGv_env": "env", >> - None: _tcg_2_tcg_helper_decl_error, >> - } >> - >> - >> -################################################## >> -# host/tcg -> tcg temporal constant allocation >> - >> -def _host_2_tcg_tmp_new(type_): >> - if type_.startswith("TCGv"): >> - return "tcg_temp_new_nop" >> - raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_) >> - >> -HOST_2_TCG_TMP_NEW = { >> - "uint32_t": "tcg_const_i32", >> - "uint64_t": "tcg_const_i64", >> - "void *" : "tcg_const_ptr", >> - None: _host_2_tcg_tmp_new, >> - } >> - >> - >> -################################################## >> -# host/tcg -> tcg temporal constant deallocation >> - >> -def _host_2_tcg_tmp_free(type_): >> - if type_.startswith("TCGv"): >> - return "tcg_temp_free_nop" >> - raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_) >> - >> -HOST_2_TCG_TMP_FREE = { >> - "uint32_t": "tcg_temp_free_i32", >> - "uint64_t": "tcg_temp_free_i64", >> - "void *" : "tcg_temp_free_ptr", >> - None: _host_2_tcg_tmp_free, >> - } >
On 2/25/23 06:14, Richard Henderson wrote: > This file got left behind when the tcg stuff was > removed from tracetool. > > Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool") > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > meson.build | 1 - > scripts/tracetool/transform.py | 168 --------------------------------- > 2 files changed, 169 deletions(-) > delete mode 100644 scripts/tracetool/transform.py > > diff --git a/meson.build b/meson.build > index 6cb2b1a42f..275399b8c2 100644 > --- a/meson.build > +++ b/meson.build > @@ -2861,7 +2861,6 @@ tracetool_depends = files( > 'scripts/tracetool/format/log_stap.py', > 'scripts/tracetool/format/stap.py', > 'scripts/tracetool/__init__.py', > - 'scripts/tracetool/transform.py', > 'scripts/tracetool/vcpu.py' > ) > > diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py > deleted file mode 100644 > index ea8b27799d..0000000000 > --- a/scripts/tracetool/transform.py > +++ /dev/null > @@ -1,168 +0,0 @@ > -# -*- coding: utf-8 -*- > - > -""" > -Type-transformation rules. > -""" > - > -__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" > -__copyright__ = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>" > -__license__ = "GPL version 2 or (at your option) any later version" > - > -__maintainer__ = "Stefan Hajnoczi" > -__email__ = "stefanha@redhat.com" > - > - > -def _transform_type(type_, trans): > - if isinstance(trans, str): > - return trans > - elif isinstance(trans, dict): > - if type_ in trans: > - return _transform_type(type_, trans[type_]) > - elif None in trans: > - return _transform_type(type_, trans[None]) > - else: > - return type_ > - elif callable(trans): > - return trans(type_) > - else: > - raise ValueError("Invalid type transformation rule: %s" % trans) > - > - > -def transform_type(type_, *trans): > - """Return a new type transformed according to the given rules. > - > - Applies each of the transformation rules in trans in order. > - > - If an element of trans is a string, return it. > - > - If an element of trans is a function, call it with type_ as its only > - argument. > - > - If an element of trans is a dict, search type_ in its keys. If type_ is > - a key, use the value as a transformation rule for type_. Otherwise, if > - None is a key use the value as a transformation rule for type_. > - > - Otherwise, return type_. > - > - Parameters > - ---------- > - type_ : str > - Type to transform. > - trans : list of function or dict > - Type transformation rules. > - """ > - if len(trans) == 0: > - raise ValueError > - res = type_ > - for t in trans: > - res = _transform_type(res, t) > - return res > - > - > -################################################## > -# tcg -> host > - > -def _tcg_2_host(type_): > - if type_ == "TCGv": > - # force a fixed-size type (target-independent) > - return "uint64_t" > - else: > - return type_ > - > -TCG_2_HOST = { > - "TCGv_i32": "uint32_t", > - "TCGv_i64": "uint64_t", > - "TCGv_ptr": "void *", > - None: _tcg_2_host, > - } > - > - > -################################################## > -# host -> host compatible with tcg sizes > - > -HOST_2_TCG_COMPAT = { > - "uint8_t": "uint32_t", > - "uint16_t": "uint32_t", > - } > - > - > -################################################## > -# host/tcg -> tcg > - > -def _host_2_tcg(type_): > - if type_.startswith("TCGv"): > - return type_ > - raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_) > - > -HOST_2_TCG = { > - "uint32_t": "TCGv_i32", > - "uint64_t": "TCGv_i64", > - "void *" : "TCGv_ptr", > - "CPUArchState *": "TCGv_env", > - None: _host_2_tcg, > - } > - > - > -################################################## > -# tcg -> tcg helper definition > - > -def _tcg_2_helper_def(type_): > - if type_ == "TCGv": > - return "target_ulong" > - else: > - return type_ > - > -TCG_2_TCG_HELPER_DEF = { > - "TCGv_i32": "uint32_t", > - "TCGv_i64": "uint64_t", > - "TCGv_ptr": "void *", > - None: _tcg_2_helper_def, > - } > - > - > -################################################## > -# tcg -> tcg helper declaration > - > -def _tcg_2_tcg_helper_decl_error(type_): > - raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_) > - > -TCG_2_TCG_HELPER_DECL = { > - "TCGv" : "tl", > - "TCGv_ptr": "ptr", > - "TCGv_i32": "i32", > - "TCGv_i64": "i64", > - "TCGv_env": "env", > - None: _tcg_2_tcg_helper_decl_error, > - } > - > - > -################################################## > -# host/tcg -> tcg temporal constant allocation > - > -def _host_2_tcg_tmp_new(type_): > - if type_.startswith("TCGv"): > - return "tcg_temp_new_nop" > - raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_) > - > -HOST_2_TCG_TMP_NEW = { > - "uint32_t": "tcg_const_i32", > - "uint64_t": "tcg_const_i64", > - "void *" : "tcg_const_ptr", > - None: _host_2_tcg_tmp_new, > - } > - > - > -################################################## > -# host/tcg -> tcg temporal constant deallocation > - > -def _host_2_tcg_tmp_free(type_): > - if type_.startswith("TCGv"): > - return "tcg_temp_free_nop" > - raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_) > - > -HOST_2_TCG_TMP_FREE = { > - "uint32_t": "tcg_temp_free_i32", > - "uint64_t": "tcg_temp_free_i64", > - "void *" : "tcg_temp_free_ptr", > - None: _host_2_tcg_tmp_free, > - }
On 2/25/23 00:22, Daniel Henrique Barboza wrote: > Richard, > > Not sure if I forgot or missed something but this patch breaks my build as follows: > > $ make -j > GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc > [1/885] Generating trace/trace-hw_hyperv.c with a custom command > FAILED: trace/trace-hw_hyperv.c > /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c > /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c > Traceback (most recent call last): > File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module> > from tracetool import error_write, out, out_open > File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module> > import tracetool.transform > ModuleNotFoundError: No module named 'tracetool.transform' I saw the same thing on gitlab, but not on my laptop. Weird. > It seems that tracetool.py is still referring transform. This fixes the build > for me: > > $ git diff > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py > index 5393c7fc5c..c361815bc1 100644 > --- a/scripts/tracetool/__init__.py > +++ b/scripts/tracetool/__init__.py > @@ -18,7 +18,6 @@ > > import tracetool.format > import tracetool.backend > -import tracetool.transform I also removed some code below that used these symbols; they themselves appear to be unused. r~
在 2023/2/26 上午2:38, Richard Henderson 写道: > On 2/25/23 00:22, Daniel Henrique Barboza wrote: >> Richard, >> >> Not sure if I forgot or missed something but this patch breaks my >> build as follows: >> >> $ make -j >> GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3 >> tests/fp/berkeley-softfloat-3 dtc >> [1/885] Generating trace/trace-hw_hyperv.c with a custom command >> FAILED: trace/trace-hw_hyperv.c >> /usr/bin/python3 ../scripts/tracetool.py --backend=log >> --group=hw_hyperv --format=c >> /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c >> Traceback (most recent call last): >> File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", >> line 19, in <module> >> from tracetool import error_write, out, out_open >> File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", >> line 21, in <module> >> import tracetool.transform >> ModuleNotFoundError: No module named 'tracetool.transform' > > > I saw the same thing on gitlab, but not on my laptop. Weird. > I always get this things. [26/2330] Generating trace/trace-hw_block.h with a custom command FAILED: trace/trace-hw_block.h /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_block --format=h /root/qemu/hw/block/trace-events trace/trace-hw_block.h Traceback (most recent call last): File "/root/qemu/build/../scripts/tracetool.py", line 19, in <module> from tracetool import error_write, out, out_open File "/root/qemu/scripts/tracetool/__init__.py", line 21, in <module> import tracetool.transform ModuleNotFoundError: No module named 'tracetool.transform' >> It seems that tracetool.py is still referring transform. This fixes >> the build >> for me: >> >> $ git diff >> diff --git a/scripts/tracetool/__init__.py >> b/scripts/tracetool/__init__.py >> index 5393c7fc5c..c361815bc1 100644 >> --- a/scripts/tracetool/__init__.py >> +++ b/scripts/tracetool/__init__.py >> @@ -18,7 +18,6 @@ >> >> import tracetool.format >> import tracetool.backend >> -import tracetool.transform > > I also removed some code below that used these symbols; they > themselves appear to be unused. > > > r~
diff --git a/meson.build b/meson.build index 6cb2b1a42f..275399b8c2 100644 --- a/meson.build +++ b/meson.build @@ -2861,7 +2861,6 @@ tracetool_depends = files( 'scripts/tracetool/format/log_stap.py', 'scripts/tracetool/format/stap.py', 'scripts/tracetool/__init__.py', - 'scripts/tracetool/transform.py', 'scripts/tracetool/vcpu.py' ) diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py deleted file mode 100644 index ea8b27799d..0000000000 --- a/scripts/tracetool/transform.py +++ /dev/null @@ -1,168 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Type-transformation rules. -""" - -__author__ = "Lluís Vilanova <vilanova@ac.upc.edu>" -__copyright__ = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>" -__license__ = "GPL version 2 or (at your option) any later version" - -__maintainer__ = "Stefan Hajnoczi" -__email__ = "stefanha@redhat.com" - - -def _transform_type(type_, trans): - if isinstance(trans, str): - return trans - elif isinstance(trans, dict): - if type_ in trans: - return _transform_type(type_, trans[type_]) - elif None in trans: - return _transform_type(type_, trans[None]) - else: - return type_ - elif callable(trans): - return trans(type_) - else: - raise ValueError("Invalid type transformation rule: %s" % trans) - - -def transform_type(type_, *trans): - """Return a new type transformed according to the given rules. - - Applies each of the transformation rules in trans in order. - - If an element of trans is a string, return it. - - If an element of trans is a function, call it with type_ as its only - argument. - - If an element of trans is a dict, search type_ in its keys. If type_ is - a key, use the value as a transformation rule for type_. Otherwise, if - None is a key use the value as a transformation rule for type_. - - Otherwise, return type_. - - Parameters - ---------- - type_ : str - Type to transform. - trans : list of function or dict - Type transformation rules. - """ - if len(trans) == 0: - raise ValueError - res = type_ - for t in trans: - res = _transform_type(res, t) - return res - - -################################################## -# tcg -> host - -def _tcg_2_host(type_): - if type_ == "TCGv": - # force a fixed-size type (target-independent) - return "uint64_t" - else: - return type_ - -TCG_2_HOST = { - "TCGv_i32": "uint32_t", - "TCGv_i64": "uint64_t", - "TCGv_ptr": "void *", - None: _tcg_2_host, - } - - -################################################## -# host -> host compatible with tcg sizes - -HOST_2_TCG_COMPAT = { - "uint8_t": "uint32_t", - "uint16_t": "uint32_t", - } - - -################################################## -# host/tcg -> tcg - -def _host_2_tcg(type_): - if type_.startswith("TCGv"): - return type_ - raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_) - -HOST_2_TCG = { - "uint32_t": "TCGv_i32", - "uint64_t": "TCGv_i64", - "void *" : "TCGv_ptr", - "CPUArchState *": "TCGv_env", - None: _host_2_tcg, - } - - -################################################## -# tcg -> tcg helper definition - -def _tcg_2_helper_def(type_): - if type_ == "TCGv": - return "target_ulong" - else: - return type_ - -TCG_2_TCG_HELPER_DEF = { - "TCGv_i32": "uint32_t", - "TCGv_i64": "uint64_t", - "TCGv_ptr": "void *", - None: _tcg_2_helper_def, - } - - -################################################## -# tcg -> tcg helper declaration - -def _tcg_2_tcg_helper_decl_error(type_): - raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_) - -TCG_2_TCG_HELPER_DECL = { - "TCGv" : "tl", - "TCGv_ptr": "ptr", - "TCGv_i32": "i32", - "TCGv_i64": "i64", - "TCGv_env": "env", - None: _tcg_2_tcg_helper_decl_error, - } - - -################################################## -# host/tcg -> tcg temporal constant allocation - -def _host_2_tcg_tmp_new(type_): - if type_.startswith("TCGv"): - return "tcg_temp_new_nop" - raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_) - -HOST_2_TCG_TMP_NEW = { - "uint32_t": "tcg_const_i32", - "uint64_t": "tcg_const_i64", - "void *" : "tcg_const_ptr", - None: _host_2_tcg_tmp_new, - } - - -################################################## -# host/tcg -> tcg temporal constant deallocation - -def _host_2_tcg_tmp_free(type_): - if type_.startswith("TCGv"): - return "tcg_temp_free_nop" - raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_) - -HOST_2_TCG_TMP_FREE = { - "uint32_t": "tcg_temp_free_i32", - "uint64_t": "tcg_temp_free_i64", - "void *" : "tcg_temp_free_ptr", - None: _host_2_tcg_tmp_free, - }
This file got left behind when the tcg stuff was removed from tracetool. Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool") Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- meson.build | 1 - scripts/tracetool/transform.py | 168 --------------------------------- 2 files changed, 169 deletions(-) delete mode 100644 scripts/tracetool/transform.py