Skip to content

Compilation failure of cpr 1.12.0 on aarch64 #1257

@stephanlachnit

Description

@stephanlachnit

Description

Since updating to 1.12.0, we got a build failure on aarch64 (arm):

../subprojects/cpr-1.12.0/include/cpr/session.h:55:7: error: type ‘struct Session’ violates the C++ One Definition Rule [-Werror=odr]
   55 | class Session : public std::enable_shared_from_this<Session> {
      |       ^
../subprojects/cpr-1.12.0/include/cpr/session.h:55:7: note: a different type is defined in another translation unit
   55 | class Session : public std::enable_shared_from_this<Session> {
      |       ^
../subprojects/cpr-1.12.0/include/cpr/session.h:255:13: note: the first difference of corresponding definitions is field ‘content_’
  255 |     Content content_{std::monostate{}};
      |             ^
../subprojects/cpr-1.12.0/include/cpr/session.h:255:13: note: a field of same name but different type is defined in another translation unit
  255 |     Content content_{std::monostate{}};
      |             ^
../subprojects/cpr-1.12.0/include/cpr/session.h:55:7: note: type ‘struct Content’ itself violates the C++ One Definition Rule
   55 | class Session : public std::enable_shared_from_this<Session> {
      |       ^

This does not happen on x86.

Example/How to Reproduce

  1. Get access to an arm machine
  2. git clone https://gitlab.desy.de/constellation/constellation.git && cd constellation
  3. meson setup build -Dsatellite_mattermost=true
  4. meson compile -C build

Possible Fix

No response

Where did you get it from?

Other (specify in "Additional Context/Your Environment")

Additional Context/Your Environment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions