Help with an error message on Ubuntu 18.04

9 views
Skip to first unread message

842...@gmail.com

unread,
Apr 3, 2020, 12:24:49 PM4/3/20
to Cap'n Proto
Hi.

So I'm trying to build some project and capnproto is preventing me. Here's a link for the wiki https://github.com/SESA/EbbRT/wiki/Build-Tutorial-Notes

I'm getting an error at the very first step. When issuing this command: $ make -f $EBBRT_SRCDIR/toolchain/Makefile SYSROOT=$NATIVE_INSTALL_DIR

I get this error:


make -C /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT/build/capnpde
p
-build

make
[1]: Entering directory '/home/mono/Sachen/CodeLibrary/Clones/EbbRT
2/EbbRT/build/capnpdep-build'


depbase
=`echo src/capnp/compiler/module-loader.o | sed 's|[^/]*$|.deps/
&|;s|\.o$||'`
;\

g
++ -DHAVE_CONFIG_H -I. -I/home/mono/Sachen/CodeLibrary/Clones/EbbRT2/E
bbRT
/src/capnproto-c++-0.4.0    -I/home/mono/Sachen/CodeLibrary/Clones/
EbbRT2/EbbRT/src/capnproto-c++-0.4.0/src -I./src -pthread -O2 -DNDEBUG
-pthread -MT src/capnp/compiler/module-loader.o -MD -MP -MF $depbase.Tp
o
-c -o src/capnp/compiler/module-loader.o /home/mono/Sachen/CodeLibrar
y
/Clones/EbbRT2/EbbRT/src/capnproto-c++-0.4.0/src/capnp/compiler/module
-loader.c++ &&\

mv
-f $depbase.Tpo $depbase.Po

In file included from /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT
/src/capnproto-c++-0.4.0/src/capnp/generated-header-support.h:29:0,

                 
from /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT
/src/capnproto-c++-0.4.0/src/capnp/compiler/grammar.capnp.h:7,

                 
from /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT
/src/capnproto-c++-0.4.0/src/capnp/compiler/compiler.h:27,

                 
from /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT
/src/capnproto-c++-0.4.0/src/capnp/compiler/module-loader.h:27,

                 
from /home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT
/src/capnproto-c++-0.4.0/src/capnp/compiler/module-loader.c++:24:

/home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT/src/capnproto-c++-0.4
.0/src/capnp/layout.h:152:65: error: could not convert template argumen
t
b from bool to capnp::Kind

 
template <typename T, bool b> struct ElementSizeForType<List<T, b>> {

                                                                 
^

/home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT/src/capnproto-c++-0.4
.0/src/capnp/layout.h:152:66: error: template argument 1 is invalid

 
template <typename T, bool b> struct ElementSizeForType<List<T, b>> {

                                                                 
^~

Makefile:1432: recipe for target 'src/capnp/compiler/module-loader.o' f
ailed

make
[1]: *** [src/capnp/compiler/module-loader.o] Error 1

make
[1]: Leaving directory '/home/mono/Sachen/CodeLibrary/Clones/EbbRT2
/EbbRT/build/capnpdep-build'


/home/mono/Sachen/CodeLibrary/Clones/EbbRT2/EbbRT/toolchain/Makefile:22
1: recipe for target 'capnpdep-build' failed

make
: *** [capnpdep-build] Error 2

I don't know what to do or how to debug. Any help would be appreciated.

Note that I only get this error when trying to run the project on (basically) Ubuntu 18.04 (specifically KDE neon, which is based on 18.04). I don't get the error on an Ubuntu 16.04. Any ideas?

Kenton Varda

unread,
Apr 3, 2020, 12:31:31 PM4/3/20
to 842...@gmail.com, Cap'n Proto
Hi there,

It looks like you're trying to build Cap'n Proto 0.4, which was released in 2013. The latest version is 0.7, released in 2018 (I really need to do a new release...).

My best guess is that what you are seeing was a bug in the code which for some reason wasn't detected by compilers of the time, but once compilers did start detecting it, we probably fixed the bug.

-Kenton

--
You received this message because you are subscribed to the Google Groups "Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/21b4b630-1b18-4a06-9050-e4262abfcfcc%40googlegroups.com.

Mina Michael

unread,
Apr 6, 2020, 8:50:31 PM4/6/20
to Kenton Varda, Cap'n Proto
Hi. Thanks for the reply.

Note that I get this error message only on an 18.04 machine (kde neon, based on 18.04). I tried running the project on multiple 16.04s (regular Ubuntus) and I didn't get the error message. Would that still mean that it's that issue you described?

MIna

Kenton Varda

unread,
Apr 7, 2020, 11:07:49 AM4/7/20
to Mina Michael, Cap'n Proto
Hi Mina,

Sure. 18.04 would have a newer compiler than 16.04. Since older compilers failed to detect the error (and therefore incorrectly succeeded in compiling the code) while new compilers do not, it makes sense that old versions of Ubuntu could build the code while new versions cannot.

Indeed, here's the PR which fixed this bug:

As you can see, it turned out that a newer compiler version detected a bug in the code that older compilers hadn't. And this bug was discovered and fixed in 2017, which is in between Ubuntu 16.04 (2016) and 18.04 (2018).

There's nothing I can do to make old versions of Cap'n Proto work. You'll need to update to a new version, or apply the patch manually to your copy of the code.

-Kenton
Reply all
Reply to author
Forward
0 new messages