← All tasks
cppcapnproto/capnproto #576Not a task: already works

LITE build undefined reference to units.c++

envgap__capnproto__capnproto-576

01 / FAILURE SIGNATURE

As reported upstream

Looks like that the LITE build is now broken. Declaring an object of `MallocMessageBuilder` throws a linker error:
Not a benchmark task.
  • The project already builds and runs before the fix, so there is nothing to repair.

02 / ENVIRONMENT RECIPE

Base commit
18b84c2d2ffad5e6e60fa8047c1a6c329c88c0db
Manifest
c++/src/kj/CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

capnproto/capnproto #576 · read the original issue
Looks like that the LITE build is now broken. Declaring an object of `MallocMessageBuilder` throws a linker error: 



```

1> libcapnp.lib(layout.obj) : error LNK2019: unresolved external symbol "public: void __thiscall kj::ThrowOverflow::operator()(void)const " (??RThrowOverflow@kj@@QBEXXZ) referenced in function "public: class capnp::Data::Builder __thiscall capnp::_::PointerBuilder::getBlob<struct capnp::Data>(void const *,unsigned int)" (??$getBlob@UData@capnp@@@PointerBuilder@_@capnp@@QAE?AVBuilder@Data@2@PBXI@Z)

```



Edit: It looks like, this is even true for classes derived from `MessageBuilder`. 

Edit 2: Can be fixed by adding `units.c++` to the required build files [here](https://github.com/capnproto/capnproto/blob/master/c%2B%2B/src/kj/CMakeLists.txt#L4)
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]