joyent / libuv

Go to
https://github.com/libuv/libuv
3.27k stars 653 forks source link

DragonFly regression: RC1 builds, RC2 doesn't #1576

Closed jrmarino closed 9 years ago

jrmarino commented 10 years ago

Error when building libuv RC on DragonFly:

--- libuv.la ---
  CCLD     libuv.la
src/unix/.libs/libuv_la-freebsd.o: In function `uv__platform_loop_init':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:62: multiple definition of `uv__platform_loop_init'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:62: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv__platform_loop_delete':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:66: multiple definition of `uv__platform_loop_delete'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:66: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv__hrtime':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:70: multiple definition of `uv__hrtime'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:70: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_exepath':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:77: multiple definition of `uv_exepath'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:77: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_get_free_memory':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:105: multiple definition of `uv_get_free_memory'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:105: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_get_total_memory':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:117: multiple definition of `uv_get_total_memory'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:117: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_loadavg':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:130: multiple definition of `uv_loadavg'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:130: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_setup_args':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:144: multiple definition of `uv_setup_args'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:144: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_set_process_title':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:149: multiple definition of `uv_set_process_title'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:149: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_get_process_title':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:172: multiple definition of `uv_get_process_title'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:172: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_resident_set_memory':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:184: multiple definition of `uv_resident_set_memory'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:184: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_uptime':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:215: multiple definition of `uv_uptime'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:215: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_cpu_info':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:231: multiple definition of `uv_cpu_info'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:231: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_free_cpu_info':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:319: multiple definition of `uv_free_cpu_info'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:319: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_interface_addresses':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:330: multiple definition of `uv_interface_addresses'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:330: first defined here
src/unix/.libs/libuv_la-freebsd.o: In function `uv_free_interface_addresses':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:417: multiple definition of `uv_free_interface_addresses'
src/unix/.libs/libuv_la-freebsd.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/freebsd.c:417: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv__kqueue_init':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:40: multiple definition of `uv__kqueue_init'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:40: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv__io_poll':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:51: multiple definition of `uv__io_poll'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:51: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv__platform_invalidate_fd':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:265: multiple definition of `uv__platform_invalidate_fd'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:265: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv_fs_event_init':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:327: multiple definition of `uv_fs_event_init'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:327: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv_fs_event_start':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:335: multiple definition of `uv_fs_event_start'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:335: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv_fs_event_stop':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:378: multiple definition of `uv_fs_event_stop'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:378: first defined here
src/unix/.libs/libuv_la-kqueue.o: In function `uv__fs_event_close':
/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:402: multiple definition of `uv__fs_event_close'
src/unix/.libs/libuv_la-kqueue.o:/wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2/src/unix/kqueue.c:402: first defined here
*** [libuv.la] Error code 1

make[2]: stopped in /wrkdirs/devel/libuv/work/libuv-v1.0.0-rc2
1 error

As the title says, libuv happily built on DragonFly through RC1. I don't know the cause of the regression yet.

bnoordhuis commented 10 years ago

My money is on 3193b67.

jrmarino commented 10 years ago

Are the kqueue.o and freebsd.o object files getting included twice somehow?

saghul commented 10 years ago

Maybe it how's through the if DRAGONFLY and also if FREEBSD paths?

bnoordhuis commented 10 years ago

@jrmarino If this is still an issue with the current HEAD of the v1.x branch, please refile your bug report at https://github.com/libuv/libuv/issues and I'll take a look.

jrmarino commented 10 years ago

hi bnoordhuis -- have you committed a fix then? I infer from your comment that something has changed and you believe it's been resolved. If that's the case, I'll be happy to refile over there.

jrmarino commented 10 years ago

I mean, refile if it's still a problem, of course.

bnoordhuis commented 10 years ago

Sorry, no - I haven't committed anything but I haven't tracked recent development very closely either. What I mean to say is that I don't know if @saghul or someone else has already landed a fix. But if it's still an issue, I'll be happy to look at it.

jrmarino commented 10 years ago

hmm, i'm not tracking either, but I was assuming that if it was intentionally fixed, somebody would post on this issue. Since nobody has, I'm under the impression it's still broken.

I can try rigging the freebsd/dragonfly port to use to top of the trunk and verify if the problem still exists. I'll try to do that soon.

saghul commented 10 years ago

FWIW, this issue was not handled in any way so far. @jrmarino did you try reverting the commit @bnoordhuis referred to?

jrmarino commented 10 years ago

no, i haven't tried. it doesn't see bad by itself, so if that commit caused it, it would me there's was an existing check for dragonfly that wasn't removed... (e.g. if freebsd or dragonfly then ...)

jrmarino commented 9 years ago

It looks like bnoordhuis was correct. With this patch, libuv v1.0.2 builds on DragonFly:

--- Makefile.am.orig    2014-12-16 02:24:38 UTC
+++ Makefile.am
@@ -274,7 +274,6 @@ endif

 if DRAGONFLY
 include_HEADERS += include/uv-bsd.h
-libuv_la_SOURCES += src/unix/kqueue.c src/unix/freebsd.c
 endif

 if FREEBSD

I guess uv.gyp already provides these sources. (?)

saghul commented 9 years ago

It's fixed in libuv/libuv, v1.x branch. Closing.