Opened 9 months ago

Last modified 8 months ago

#68050 assigned defect

cyclonedds: multiple build errors: error: storage size of 'mreqn' isn't known; error: 'MCAST_JOIN_SOURCE_GROUP' undeclared (first use in this function)

Reported by: barracuda156 Owned by: sikmir (Nikolay Korotkiy)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: cyclonedds

Description

First of all, it needs compiler.thread_local_storage yes:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/idl/src/print.c:32: error: thread-local storage not supported for this target
make[2]: *** [src/idl/CMakeFiles/idl.dir/src/print.c.o] Error 1

Then, there is the following:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c: In function 'set_mc_options_transmit_ipv4_if':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:391:21: error: storage size of 'mreqn' isn't known
  391 |     struct ip_mreqn mreqn;
      |                     ^~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:391:21: warning: unused variable 'mreqn' [-Wunused-variable]
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c: In function 'joinleave_ssm_mcgroup':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:637:29: error: storage size of 'gsr' isn't known
  637 |     struct group_source_req gsr;
      |                             ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:642:57: error: 'MCAST_JOIN_SOURCE_GROUP' undeclared (first use in this function)
  642 |     rc = ddsrt_setsockopt (socket, IPPROTO_IPV6, join ? MCAST_JOIN_SOURCE_GROUP : MCAST_LEAVE_SOURCE_GROUP, &gsr, sizeof (gsr));
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:642:57: note: each undeclared identifier is reported only once for each function it appears in
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:642:83: error: 'MCAST_LEAVE_SOURCE_GROUP' undeclared (first use in this function)
  642 |     rc = ddsrt_setsockopt (socket, IPPROTO_IPV6, join ? MCAST_JOIN_SOURCE_GROUP : MCAST_LEAVE_SOURCE_GROUP, &gsr, sizeof (gsr));
      |                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:637:29: warning: unused variable 'gsr' [-Wunused-variable]
  637 |     struct group_source_req gsr;
      |                             ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:647:27: error: storage size of 'mreq' isn't known
  647 |     struct ip_mreq_source mreq;
      |                           ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:655:55: error: 'IP_ADD_SOURCE_MEMBERSHIP' undeclared (first use in this function); did you mean 'IP_ADD_MEMBERSHIP'?
  655 |     rc = ddsrt_setsockopt (socket, IPPROTO_IP, join ? IP_ADD_SOURCE_MEMBERSHIP : IP_DROP_SOURCE_MEMBERSHIP, &mreq, sizeof (mreq));
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                       IP_ADD_MEMBERSHIP
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:655:82: error: 'IP_DROP_SOURCE_MEMBERSHIP' undeclared (first use in this function); did you mean 'IP_DROP_MEMBERSHIP'?
  655 |     rc = ddsrt_setsockopt (socket, IPPROTO_IP, join ? IP_ADD_SOURCE_MEMBERSHIP : IP_DROP_SOURCE_MEMBERSHIP, &mreq, sizeof (mreq));
      |                                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                  IP_DROP_MEMBERSHIP
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/core/ddsi/src/ddsi_udp.c:647:27: warning: unused variable 'mreq' [-Wunused-variable]
  647 |     struct ip_mreq_source mreq;
      |                           ^~~~
make[2]: *** [src/core/CMakeFiles/ddsc.dir/ddsi/src/ddsi_udp.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....

And:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/time/darwin/time.c: In function 'ddsrt_time_monotonic':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/time/darwin/time.c:65:28: warning: conversion to 'long long int' from 'uint64_t' {aka 'long long unsigned int'} may change the sign of the result [-Wsign-conversion]
   65 |   return (ddsrt_mtime_t) { mt * timeInfo.numer / timeInfo.denom };
      |                            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c: In function 'ddsrt_thread_getname':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c:74:12: error: 'MAXTHREADNAMESIZE' undeclared (first use in this function)
   74 |   char buf[MAXTHREADNAMESIZE + 1] = "";
      |            ^~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c:74:12: note: each undeclared identifier is reported only once for each function it appears in
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c:74:8: warning: unused variable 'buf' [-Wunused-variable]
   74 |   char buf[MAXTHREADNAMESIZE + 1] = "";
      |        ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c: In function 'ddsrt_gettid':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c:356:3: warning: implicit declaration of function 'pthread_threadid_np'; did you mean 'pthread_is_threaded_np'? [-Wimplicit-function-declaration]
  356 |   pthread_threadid_np(NULL, &tid);
      |   ^~~~~~~~~~~~~~~~~~~
      |   pthread_is_threaded_np
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c: In function 'ddsrt_gettid_for_thread':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cyclonedds/cyclonedds/work/cyclonedds-0.10.3/src/ddsrt/src/threads/posix/threads.c:369:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  369 |   return (ddsrt_tid_t) thread.v;
      |          ^
make[2]: *** [src/ddsrt/CMakeFiles/ddsrt-internal.dir/src/threads/posix/threads.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....

For pthread_threadid_np we got a patch (for example, in abseil port now).

We need to figure out how to fix the rest.

Change History (1)

comment:1 Changed 8 months ago by herbygillot (Herby Gillot)

In 5e94d2c27756efafdb9a685b32ff55a878c4b58c/macports-ports (master):

cyclonedds: update to 0.10.4

  • add @herbygillot as co-maintainer
  • add dependency on OpenSSL
  • enable thread local storage

See: #68050

Note: See TracTickets for help on using tickets.