olvaffe / percetto

Apache License 2.0
19 stars 10 forks source link

Build error in 0.1.6 #25

Closed rpavlik closed 2 years ago

rpavlik commented 2 years ago
[11/25] Compiling C++ object src/libpercetto.so.p/percetto.cc.o
FAILED: src/libpercetto.so.p/percetto.cc.o 
ccache c++ -Isrc/libpercetto.so.p -Isrc -I../src -Iperfetto-sdk -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++2a -g -fPIC -fvisibility=hidden -fdata-sections -ffunction-sections -Os -MD -MQ src/libpercetto.so.p/percetto.cc.o -MF src/libpercetto.so.p/percetto.cc.o.d -o src/libpercetto.so.p/percetto.cc.o -c ../src/percetto.cc
../src/percetto.cc: In static member function ‘static bool {anonymous}::PercettoDataSource::Register(const percetto_category* const*, const percetto_category* const*, bool)’:
../src/percetto.cc:366:13: error: ‘UpdateDescriptor’ is not a member of ‘{anonymous}::PercettoDataSource::Base’ {aka ‘perfetto::DataSource<{anonymous}::PercettoDataSource, {anonymous}::PercettoDataSourceTraits>’}
  366 |       Base::UpdateDescriptor(dsd);
      |             ^~~~~~~~~~~~~~~~

Looks like new code in https://github.com/olvaffe/percetto/commit/8af1898a4823d911a1fce9bfe1c85a5dc26fa255 - was there a missing part of this change that didn't get committed? I'm testing with my adjacent perfetto directory checked out at releases/v23.x

rpavlik commented 2 years ago

Hmm. It seemed to work ok later when I used my CMake build. My guess is that the Meson build copied an old version of Perfetto and kept using it despite the updates. However, the CMake build in #26 uses the files from perfetto without copying them, so it should be resistant to this issue.

eli-schwartz commented 2 years ago

My guess is that the Meson build copied an old version of Perfetto and kept using it despite the updates.

Meson doesn't copy anything.

The build rules for this project seem to erroneously do so: https://github.com/olvaffe/percetto/blob/22f649055e15ff07cea4c73a8337c0ffdb06d566/perfetto-sdk/meson.build#L35-L47

However, those also depend on the original files from the directory get_option('perfetto-sdk') so updates to those files will result in the cp command specified by this project, being re-run.

rpavlik commented 2 years ago

Well, the issue happened not just to me but also to a coworker. No problem when using CMake though.