Opened 10 months ago

Closed 5 months ago

Last modified 4 months ago

#69142 closed defect (fixed)

MoarVM @2023.12: error: incomplete definition of type 'struct uv__queue'

Reported by: kwolcott Owned by: barracuda156
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: MoarVM

Description (last modified by ryandesign (Ryan Carsten Schmidt))

3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^

Attachments (2)

MoarVM_main.log.bz2 (7.5 KB) - added by kwolcott 10 months ago.
MoarVM-10.14.6-main.log.bz2 (10.8 KB) - added by macportsraf 4 months ago.
main.log on 10.14.6

Download all attachments as: .zip

Change History (11)

Changed 10 months ago by kwolcott

Attachment: MoarVM_main.log.bz2 added

comment:1 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Summary: MoarVM: build from source failsMoarVM @2023.12: error: incomplete definition of type 'struct uv__queue'
Version: 2.8.1

comment:2 Changed 10 months ago by barracuda156

Hmm, it certainly does build on macOS 14 arm64, since both buildbots build it fine and I tested it locally too specifically on 14.2.1 arm64. https://ports.macports.org/port/MoarVM/details

However let me see if this can be reproduced. Maybe it finds wrong libuv headers first.

UPD. I got an error with rakudo installation now on 10.6 i386 which looks like #68464 But no error with MoarVM itself, despite old libuv being active.

Will try to sort this out too.

Last edited 10 months ago by barracuda156 (previous) (diff)

comment:3 Changed 10 months ago by barracuda156

I was able to reproduce the error on Sonoma. At the same time, it did build on buildbots. Weird. Will look into what is going on.

Last edited 10 months ago by barracuda156 (previous) (diff)

comment:4 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Possibly due to updates to the MoarVM port, the problem may now manifest as reported in #70316.

It is difficult to know exactly what the build is doing because it just prints lines like "compiling 3rdparty/libuv/src/unix/darwin.o". It would be helpful to disable these "silent rules" so that we can see the full compile commands that were used.

comment:5 Changed 5 months ago by barracuda156

It fails for me now as well:

compiling 3rdparty/libuv/src/unix/darwin-proctitle.o
In file included from 3rdparty/libuv/src/unix/darwin.c:22:
In file included from 3rdparty/libuv/src/unix/internal.h:25:
In file included from 3rdparty/libuv/src/uv-common.h:37:
3rdparty/libuv/src/queue.h:27:42: warning: declaration of 'struct uv__queue' will not be visible outside of this function [-Wvisibility]
static inline void uv__queue_init(struct uv__queue* q) {
                                         ^
3rdparty/libuv/src/queue.h:28:4: error: incomplete definition of type 'struct uv__queue'
  q->next = q;
  ~^
3rdparty/libuv/src/queue.h:27:42: note: forward declaration of 'struct uv__queue'
static inline void uv__queue_init(struct uv__queue* q) {
                                         ^
3rdparty/libuv/src/queue.h:29:4: error: incomplete definition of type 'struct uv__queue'
  q->prev = q;
  ~^
3rdparty/libuv/src/queue.h:27:42: note: forward declaration of 'struct uv__queue'
static inline void uv__queue_init(struct uv__queue* q) {
                                         ^
3rdparty/libuv/src/queue.h:32:48: warning: declaration of 'struct uv__queue' will not be visible outside of this function [-Wvisibility]
static inline int uv__queue_empty(const struct uv__queue* q) {
                                               ^
3rdparty/libuv/src/queue.h:33:16: error: incomplete definition of type 'struct uv__queue'
  return q == q->next;
              ~^
3rdparty/libuv/src/queue.h:32:48: note: forward declaration of 'struct uv__queue'
static inline int uv__queue_empty(const struct uv__queue* q) {
                                               ^
3rdparty/libuv/src/queue.h:37:11: error: incomplete definition of type 'struct uv__queue'
  return q->next;
         ~^
3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^
3rdparty/libuv/src/queue.h:41:11: error: incomplete definition of type 'struct uv__queue'
  return q->next;
         ~^
3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^
3rdparty/libuv/src/queue.h:45:4: error: incomplete definition of type 'struct uv__queue'
  h->prev->next = n->next;
  ~^
3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^
3rdparty/libuv/src/queue.h:45:20: error: incomplete definition of type 'struct uv__queue'
  h->prev->next = n->next;
                  ~^
3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^
3rdparty/libuv/src/queue.h:46:4: error: incomplete definition of type 'struct uv__queue'
  n->next->prev = h->prev;
  ~^
3rdparty/libuv/src/queue.h:36:22: note: forward declaration of 'struct uv__queue'
static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
                     ^
3rdparty/libuv/src/queue.h:46:20: error: incomplete definition of type 'struct uv__queue'
  n->next->prev = h->prev;
                  ~^

However it obviously passed CI on Sonoma, so likely some build conflict.

comment:6 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

comment:7 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In b679a6695e8fa15665fae5e81b137b91cb46082d/macports-ports (master):

MoarVM: Fix build conflict with libuv

Closes: #69142

comment:8 in reply to:  7 Changed 5 months ago by barracuda156

Replying to ryandesign:

In b679a6695e8fa15665fae5e81b137b91cb46082d/macports-ports (master):

MoarVM: Fix build conflict with libuv

Closes: #69142

Thank you, Ryan!

Changed 4 months ago by macportsraf

Attachment: MoarVM-10.14.6-main.log.bz2 added

main.log on 10.14.6

comment:9 Changed 4 months ago by macportsraf

I'm seeing the same thing (or very similar) on 10.14.6. My main.log file is attached.

Note: See TracTickets for help on using tickets.