Skip to content

Compile errors with Clang 20 on Ubuntu 24.04 (AArch64) #7718

@philramsey-arm

Description

@philramsey-arm

When building DynamoRIO on Ubuntu 24.04 (AArch64) with Clang 20 I get the following errors:

/home/phiram01/pull_request/dynamorio/clients/drcachesim/scheduler/scheduler_impl.cpp:910:36: error: offset of on non-standard-layout type 'workload_info_t' [-Werror,-Winvalid-offsetof]
  910 |         if (workload.struct_size > offsetof(workload_info_t, output_limit))
      |                                    ^                         ~~~~~~~~~~~~
/usr/lib/llvm-20/lib/clang/20/include/__stddef_offsetof.h:16:24: note: expanded from macro 'offsetof'

Information about the Clang change that caused this warning can be found here:
llvm/llvm-project#64619

Upon fixing this error I then get:

/home/phiram01/pull_request/dynamorio/clients/drcachesim/tracer/tracer.h:79:15: error: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add a tag name here [-Werror,-Wnon-c-typedef-for-linkage]
   79 | typedef struct {
      |               ^
      |                per_thread_t

and

/home/phiram01/pull_request/dynamorio/clients/drcov/postprocess/drcov2lcov.cpp:817:38: error: object backing the pointer will be destroyed at the end of the full-expression [-Werror,-Wdangling-gsl]
  817 |                 const char *tofind = op_pathmap.get_value().first.c_str();
      |                                      ^~~~~~~~~~~~~~~~~~~~~~

To Reproduce
git clone https://github.com/DynamoRIO/dynamorio.git
cd dynamorio
git submodule init
git submodule update
cd ..
mkdir build && cd build
cmake -DDEBUG=ON -DBUILD_DOCS=OFF ../dynamorio
make -j16

Environment
AWS Graviton 4 instance.
Ubuntu 24.04
Clang 20

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions