Bug 1776359 - Probe fails to compile with many errors from GCC in /usr/share/systemtap/runtime/map-gen.c
Summary: Probe fails to compile with many errors from GCC in /usr/share/systemtap/runt...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: systemtap
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Frank Ch. Eigler
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-25 14:25 UTC by Daniel Berrangé
Modified: 2019-11-25 14:45 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-11-25 14:45:19 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Daniel Berrangé 2019-11-25 14:25:50 UTC
Description of problem:

I'm trying to trace execve syscalls, but stap seems to be completely broken throwing errors from GCC in internal systemtap runtime code

# cat exec.stp
probe begin {
  printf("Rnning\n")
}

probe syscall.execve {
  printf("%s\n", argstr)
}


# stap exec.stp
Missing separate debuginfos, use: debuginfo-install kernel-core-5.3.6-300.fc31.x86_64 
In file included from /tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:3303:
/usr/share/systemtap/runtime/map-gen.c: In function ‘hash_si’:
/usr/share/systemtap/runtime/map-gen.c:114:28: error: this statement may fall through [-Werror=implicit-fallthrough=]
  114 |                 case 3: k1 ^= tail[2] << 16; \
      |                         ~~~^~~~~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:131:19: note: in expansion of macro ‘MURMUR_STRING’
  131 | #define KEY1_HASH MURMUR_STRING(key1)
      |                   ^~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:664:9: note: in expansion of macro ‘KEY1_HASH’
  664 |         KEY1_HASH;
      |         ^~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:115:17: note: here
  115 |                 case 2: k1 ^= tail[1] << 8; \
      |                 ^~~~
/usr/share/systemtap/runtime/map-gen.c:131:19: note: in expansion of macro ‘MURMUR_STRING’
  131 | #define KEY1_HASH MURMUR_STRING(key1)
      |                   ^~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:664:9: note: in expansion of macro ‘KEY1_HASH’
  664 |         KEY1_HASH;
      |         ^~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:115:28: error: this statement may fall through [-Werror=implicit-fallthrough=]
  115 |                 case 2: k1 ^= tail[1] << 8; \
      |                         ~~~^~~~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:131:19: note: in expansion of macro ‘MURMUR_STRING’
  131 | #define KEY1_HASH MURMUR_STRING(key1)
      |                   ^~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:664:9: note: in expansion of macro ‘KEY1_HASH’
  664 |         KEY1_HASH;
      |         ^~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:116:17: note: here
  116 |                 case 1: k1 ^= tail[0]; \
      |                 ^~~~
/usr/share/systemtap/runtime/map-gen.c:131:19: note: in expansion of macro ‘MURMUR_STRING’
  131 | #define KEY1_HASH MURMUR_STRING(key1)
      |                   ^~~~~~~~~~~~~
/usr/share/systemtap/runtime/map-gen.c:664:9: note: in expansion of macro ‘KEY1_HASH’
  664 |         KEY1_HASH;
      |         ^~~~~~~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c: In function ‘sigset_from_compat’:
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:171:22: error: this statement may fall through [-Werror=implicit-fallthrough=]
  171 |  case 4: set->sig[3] = compat->sig[6] | (((long)compat->sig[7]) << 32 );
      |          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:172:2: note: here
  172 |  case 3: set->sig[2] = compat->sig[4] | (((long)compat->sig[5]) << 32 );
      |  ^~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:172:22: error: this statement may fall through [-Werror=implicit-fallthrough=]
  172 |  case 3: set->sig[2] = compat->sig[4] | (((long)compat->sig[5]) << 32 );
      |          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:173:2: note: here
  173 |  case 2: set->sig[1] = compat->sig[2] | (((long)compat->sig[3]) << 32 );
      |  ^~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:173:22: error: this statement may fall through [-Werror=implicit-fallthrough=]
  173 |  case 2: set->sig[1] = compat->sig[2] | (((long)compat->sig[3]) << 32 );
      |          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.c:174:2: note: here
  174 |  case 1: set->sig[0] = compat->sig[0] | (((long)compat->sig[1]) << 32 );
      |  ^~~~
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.build:280: /tmp/stapVMCYFb/stap_e8f4704c6467b8c7f2a4b0edfd0800df_66799_src.o] Error 1
make: *** [Makefile:1630: _module_/tmp/stapVMCYFb] Error 2

Version-Release number of selected component (if applicable):
systemtap-4.2-0.20190827git8ffab23ff.fc31.x86_64
gcc-9.2.1-1.fc31.x86_64


How reproducible:
Always

Steps to Reproduce:
1. Try to run

# cat exec.stp
probe begin {
  printf("Rnning\n")
}

probe syscall.execve {
  printf("%s\n", argstr)
}


# stap exec.stp


Actual results:
Lots of errors from map-gen.c 😢

Expected results:
Traces execve syscalls succesfully

Additional info:

Comment 1 Frank Ch. Eigler 2019-11-25 14:45:19 UTC
release 4.2 fixes this
please karma+ at your earliest convenience

https://koji.fedoraproject.org/koji/buildinfo?buildID=1413968

https://bodhi.fedoraproject.org/updates/FEDORA-2019-93164605fe


Note You need to log in before you can comment on or make changes to this bug.