Bug 1614809
Summary: | stap broken within devtoolset-6-perftools-docker container on top of a kernel with CONFIG_RETPOLINE=y | ||
---|---|---|---|
Product: | Red Hat Software Collections | Reporter: | Martin Cermak <mcermak> |
Component: | doc-Using_RHSCL_Container_Images | Assignee: | Vladimír Slávik <vslavik> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Martin Cermak <mcermak> |
Severity: | low | Docs Contact: | Vladimír Slávik <vslavik> |
Priority: | low | ||
Version: | unspecified | CC: | emachado, fche, kanderso, lkuprova, lmanasko, mcermak, mnewsome, vslavik |
Target Milestone: | rc | ||
Target Release: | 3.1 | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Known Issue | |
Doc Text: |
*SystemTap* in `devtoolset-6-perftools` can not be used
The *SystemTap* tool requires the *GCC* compiler to be present as `/usr/bin/gcc`, and support retpolines. However, this is not the case in the `devtoolset-6-perftools` container. As a consequence, *SystemTap* in this container fails to run any script, and produces the following error message:
*** CONFIG_RETPOLINE=y, but not supported by the compiler.
As a result, *SystemTap* from `devtoolset-6-perftools` can not be used.
To work around this issue, install *GCC* in the container before running *SystemTap* :
# yum install gcc -y
# stap ...
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2018-08-29 07:39:16 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Martin Cermak
2018-08-10 13:02:02 UTC
That's correct, except for a question in the second point. Systemtap tries to use the -system- GCC, not some random DTS or other GCC to build modules. So, assuming that the system GCC is fine, the question is why a deficient gcc was being used by systemtap. Maybe that container lacked system gcc, and only had dts gcc in it? If so, that could give rise to other such problems in the future. An out-of-tree kernel module must be buildable with tools inside that container for full systemtap to work, which could mean having to get /usr/bin/gcc in there too, not just DTS. Anyway, just thinking out loud. Release notes could simply note that systemtap doesn't work in these containers due to an incompatibility between the container's dts gcc and the kernel. (In reply to Frank Ch. Eigler from comment #4) > Maybe that container lacked system gcc, and only had dts gcc in it? That's the case. And the kernel build system error message doesn't change even after removing devtoolset-6-gcc, so that there is no GCC on given system at all. OTOH installing /usr/bin/gcc does fix the problem. Any of gcc.rpm, or devtoolset-6-gcc.rpm satisfies the rpm depsolving need of devtoolset-6-systemtap-devel for GCC. > If so, > that could give rise to other such problems in the future. An out-of-tree > kernel module must be buildable with tools inside that container for full > systemtap to work, which could mean having to get /usr/bin/gcc in there too, > not just DTS. The devtoolset-7 docker image doesn't have this problem because devtoolset-7-systemtap-devel directly requires /usr/bin/gcc. And so does devtoolset-8-systemtap-devel. Chances are we won't hit this in the future. |