Opened 9 months ago

Closed 3 months ago

Last modified 3 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 9 months ago.
MoarVM-10.14.6-main.log.bz2 (10.8 KB) - added by macportsraf 3 months ago.
main.log on 10.14.6

Download all attachments as: .zip

Change History (11)

Changed 9 months ago by kwolcott

Attachment: MoarVM_main.log.bz2 added

comment:1 Changed 9 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 9 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.

Version 0, edited 9 months ago by barracuda156 (next)

comment:3 Changed 9 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 9 months ago by barracuda156 (previous) (diff)

comment:4 Changed 3 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 3 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 3 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added

comment:7 Changed 3 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 3 months ago by barracuda156

Replying to ryandesign:

In b679a6695e8fa15665fae5e81b137b91cb46082d/macports-ports (master):

MoarVM: Fix build conflict with libuv

Closes: #69142

Thank you, Ryan!

Changed 3 months ago by macportsraf

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

main.log on 10.14.6

comment:9 Changed 3 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.