#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)
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 fails → MoarVM @2023.12: error: incomplete definition of type 'struct uv__queue' |
Version: | → 2.8.1 |
comment:2 Changed 9 months ago by barracuda156
comment:3 Changed 9 months ago by barracuda156
I was able to reproduce the error on Sonoma:
3rdparty/libuv/src/unix/getaddrinfo.c:162:10: error: call to undeclared function 'uv__idna_toascii'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] rc = uv__idna_toascii(hostname, ^ 1 error generated.
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 follow-up: 8 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:8 Changed 3 months ago by barracuda156
Replying to ryandesign:
In b679a6695e8fa15665fae5e81b137b91cb46082d/macports-ports (master):
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.
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 withMoarVM
itself, despite oldlibuv
being active.Will try to sort this out too.