https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121419

            Bug ID: 121419
           Summary: __clzdi2 emitted when building udev-hid-bpf
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sjames at gcc dot gnu.org
  Target Milestone: ---

Created attachment 62062
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62062&action=edit
0009-WALTOP__Batteryless-Tablet.bpf.unstripped.i

When building https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/ with `meson
setup build -Dbpf-compiler=gcc && ninja -C build`, I get:
```
[...]
[1/7] /usr/bin/bpftool gen object src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
FAILED: [code=254] src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.o
/usr/bin/bpftool gen object src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
libbpf: failed to find BTF info for global/extern symbol '__clzdi2'
Error: failed to link
'src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o': No such file or
directory (2)
[...]
```

Running it manually:
```
$ /usr/bin/bpf-unknown-none-gcc -std=gnu11 -fno-stack-protector -fno-ssa-phiopt
-ffreestanding -O2 -mcpu=v3 -mco-re -gbtf -c -D__x86_64__ -mlittle-endian -I.
-isystem /usr/include/x86_64-pc-linux-gnu -idirafter /usr/include
../src/bpf/testing/0010-WALTOP__Batteryless-Tablet.bpf.c -o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
-I/home/sam/git/udev-hid-bpf/src/bpf -I/home/sam/git/udev-hid-bpf/src/bpf
-DHID_BPF_TRACING -save-temps
$ /usr/bin/bpftool gen object src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
libbpf: failed to find BTF info for global/extern symbol '__clzdi2'
Error: failed to link
'src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o': No such file or
directory (2)
$ nm src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o | grep __clzdi2
                 U __clzdi2
```

If I build it with Clang, there's no such reference emitted:
```
$ clang -std=gnu11 -fno-stack-protector  -ffreestanding -O2 --target=bpf  -c
-D__x86_64__ -mlittle-endian -I. -isystem /usr/include/x86_64-pc-linux-gnu
-idirafter /usr/include
../src/bpf/testing/0010-WALTOP__Batteryless-Tablet.bpf.c -o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
-I/home/sam/git/udev-hid-bpf/src/bpf -I/home/sam/git/udev-hid-bpf/src/bpf
-DHID_BPF_TRACING -g
$ /usr/bin/bpftool gen object src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.o
src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o
$ nm src/bpf/0009-WALTOP__Batteryless-Tablet.bpf.unstripped.o | grep __clzdi2
```

Reply via email to