[riot-users] Error compiling riot-os with ccn-lite package

Oleg Hahm oliver.hahm at inria.fr
Tue Aug 30 10:01:20 CEST 2016


Hi Nazmul,

I think this might be not well documented indeed.

You need to set some configuration options for CCN-lite via the Makefile.
The folloing would work:

# tell CCN-lite to run on top of link-layer
CFLAGS += -DUSE_LINKLAYER
# mandatory to include the propoer headers
CFLAGS += -DCCNL_UAPI_H_
# tell CCN-lite which TLV to use (only NDNTLV is supported so far)
CFLAGS += -DUSE_SUITE_NDNTLV
# again mandatory for now
CFLAGS += -DNEEDS_PREFIX_MATCHING
CFLAGS += -DNEEDS_PACKET_CRAFTING


Finally, I discovered that there is a unmodelled dependency from CCN-lite's
shell commands in RIOT to the CCN-lite utils. Hence, you will need to add

USEMODULE += ccn-lite-utils

to your Makefile, too.

Cheers,
Oleg

P.S. I would recommend to start with the ccn-lite-relay example instead as a
starting point.

On Tue, Aug 30, 2016 at 01:06:44AM +0000, Nazmul Alam wrote:
> Hello,
> I am trying to compile the riot-os in native system to checkout the
> ccn-lite features, but it is failing with the following message:
> 
> ccn-lite-riot.c:120:26: error: ‘CCNL_SUITE_NDNTLV’ undeclared here (not in
> a function)
>  static int _ccnl_suite = CCNL_SUITE_NDNTLV;
>                           ^
> In file included from ccn-lite-riot.c:190:0:
> 
> ccn-lite-riot.c: In function ‘ccnl_ll_TX’:
> ccn-lite-riot.c:312:54: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                              if (ifc->addr_len ==
> dest->linklayer.sll_halen) {
>                                                       ^
> ccn-lite-riot.c:313:61: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                                  if (memcmp(ifc->hwaddr,
> dest->linklayer.sll_add
>                                                              ^
> ccn-lite-riot.c:313:87: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                if (memcmp(ifc->hwaddr, dest->linklayer.sll_addr,
> dest->linklayer
>                                                                      ^
> ccn-lite-riot.c:315:74: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                                 hdr = gnrc_netif_hdr_build(NULL,
> dest->linklayer
>                                                                      ^
> ccn-lite-riot.c:316:68: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
> 
> dest->linklayer.
>                                                                     ^
> ccn-lite-riot.c:317:68: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
> 
> dest->linklayer.
>                                                                     ^
> ccn-lite-riot.c:327:64: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
> 
> dest->linklayer.sll_
>                                                                 ^
> ccn-lite-riot.c:328:64: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
> 
> dest->linklayer.sll_
>                                                                 ^
> ccn-lite-riot.c:351:58: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                              for (unsigned i = 0; i <
> dest->linklayer.sll_halen;
>                                                           ^
> ccn-lite-riot.c:352:41: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>                                  if (dest->linklayer.sll_addr[i] !=
> UINT8_MAX) {
>                                          ^
> ccn-lite-riot.c: In function ‘_receive’:
> ccn-lite-riot.c:439:7: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>      su.linklayer.sll_halen = nethdr->src_l2addr_len;
>        ^
> ccn-lite-riot.c:440:14: error: ‘sockunion {aka union <anonymous>}’ has no
> member named ‘linklayer’
>      memcpy(su.linklayer.sll_addr, gnrc_netif_hdr_get_src_addr(nethdr),
> nethdr->
>               ^
> ccn-lite-riot.c: In function ‘ccnl_send_interest’:
> ccn-lite-riot.c:616:9: error: implicit declaration of function
> ‘ccnl_ndntlv_dehead’ [-Werror=implicit-function-declaration]
>      if (ccnl_ndntlv_dehead(&data, &len, (int*) &typ, &int_len) || (int)
> int_len
>          ^
> ccn-lite-riot.c:620:11: error: implicit declaration of function
> ‘ccnl_ndntlv_bytes2pkt’ [-Werror=implicit-function-declaration]
>      pkt = ccnl_ndntlv_bytes2pkt(NDN_TLV_Interest, start, &data, &len);
>            ^
> ccn-lite-riot.c:620:9: error: assignment makes pointer from integer without
> a cast [-Werror=int-conversion]
>      pkt = ccnl_ndntlv_bytes2pkt(NDN_TLV_Interest, start, &data, &len);
> 
> 
> 
> My makefile is the basic Makefile of hello-world with following line added
> USEPKG += ccn-lite
> 
> 
> 
> Any suggestions on what am I missing?
> 
> -- 
> with best regards,
>        Nazmul Alam Shovon
> 
> 
> *শুভেচ্ছান্তে,       নাজমুল আলম শোভন*
> 
> blog : https://yourdigitaleffects.wordpress.com/

> _______________________________________________
> users mailing list
> users at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/users


-- 
printk(KERN_WARNING "Hey who turned the DMA off?\n");
        linux-2.6.6/drivers/net/wan/z85230.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.riot-os.org/pipermail/users/attachments/20160830/cc7a1ad2/attachment.sig>


More information about the users mailing list