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:
https://github.com/capnproto/capnproto/pull/399

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

On Mon, Apr 6, 2020 at 7:50 PM Mina Michael <[email protected]> wrote:

> 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
>
> On Fri, Apr 3, 2020 at 12:31 PM Kenton Varda <[email protected]>
> wrote:
>
>> 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
>>
>> On Fri, Apr 3, 2020 at 11:24 AM <[email protected]> wrote:
>>
>>> 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?
>>>
>>> --
>>> 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 [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/capnproto/21b4b630-1b18-4a06-9050-e4262abfcfcc%40googlegroups.com
>>> <https://groups.google.com/d/msgid/capnproto/21b4b630-1b18-4a06-9050-e4262abfcfcc%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/capnproto/CAJouXQkbD5otSbZ5gp1jFV8CUMkHv1ws0iUO9zDNtLoifk2FXQ%40mail.gmail.com.

Reply via email to