Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[solaris] build failure because SUNOS_NO_IFADDRS is not defined #1458

Closed
matlo607 opened this issue Aug 3, 2017 · 7 comments
Closed

[solaris] build failure because SUNOS_NO_IFADDRS is not defined #1458

matlo607 opened this issue Aug 3, 2017 · 7 comments

Comments

@matlo607
Copy link

matlo607 commented Aug 3, 2017

  • Version: tags/v1.13.1
  • Platform:
    SunOS 5.10 Generic_147148-26 i86pc i386 i86pc Solaris
    Oracle Solaris 10 1/13 s10x_u11wos_24a X86
  • Compiler:
    $ gcc -v
    Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/4.9.2/specs
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/i386-pc-solaris2.10/4.9.2/lto-wrapper
    Target: i386-pc-solaris2.10
    Configured with: /home/dam/mgar/pkg/gcc4/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-4.9.2/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-4.9 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
    Thread model: posix
    gcc version 4.9.2 (GCC)

I tried to build libuv on Solaris 10u11 and I got an error triggered by SUNOS_NO_IFADDRS that is not defined.

// src/unix/sunos.c:31
#ifndef SUNOS_NO_IFADDRS
# include <ifaddrs.h>
#endif
$ sh autogen.sh
$ ./configure
checking for a BSD-compatible install... /opt/csw/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /opt/csw/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking if gcc supports -pedantic flag... yes
checking for gcc way to treat warnings as errors... -Werror
checking if gcc supports -fvisibility=hidden... yes
checking if gcc supports -g flag... yes
checking if gcc supports -std=gnu89 flag... yes
checking if gcc supports -Wall flag... yes
checking if gcc supports -Wextra flag... yes
checking if gcc supports -Wno-unused-parameter flag... yes
checking if gcc supports -Wstrict-prototypes flag... yes
checking for ar... ar
checking the archiver (ar) interface... ar
checking how to print strings... printf
checking for a sed that does not truncate output... /opt/csw/bin/gsed
checking for grep that handles long lines and -e... /opt/csw/bin/ggrep
checking for egrep... /opt/csw/bin/ggrep -E
checking for fgrep... /opt/csw/bin/ggrep -F
checking for ld used by gcc... /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/nm -p
checking the name lister (/usr/ccs/bin/nm -p) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking how to convert i386-pc-solaris2.10 file names to i386-pc-solaris2.10 format... func_convert_file_noop
checking how to convert i386-pc-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /usr/ccs/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/nm -p output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether make supports nested variables... (cached) yes
checking for dlopen in -ldl... yes
checking for kstat_lookup in -lkstat... yes
checking for gethostbyname in -lnsl... yes
checking for perfstat_cpu in -lperfstat... no
checking for pthread_mutex_init in -lpthread... yes
checking for clock_gettime in -lrt... yes
checking for sendfile in -lsendfile... yes
checking for socket in -lsocket... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking sys/ahafs_evProds.h usability... no
checking sys/ahafs_evProds.h presence... no
checking for sys/ahafs_evProds.h... no
checking for pkg-config... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libuv.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
$ make
  CC       src/libuv_la-fs-poll.lo
  CC       src/libuv_la-inet.lo
  CC       src/libuv_la-threadpool.lo
  CC       src/libuv_la-uv-common.lo
  CC       src/libuv_la-version.lo
  CC       src/unix/libuv_la-async.lo
  CC       src/unix/libuv_la-core.lo
  CC       src/unix/libuv_la-dl.lo
  CC       src/unix/libuv_la-fs.lo
  CC       src/unix/libuv_la-getaddrinfo.lo
  CC       src/unix/libuv_la-getnameinfo.lo
  CC       src/unix/libuv_la-loop-watcher.lo
  CC       src/unix/libuv_la-loop.lo
  CC       src/unix/libuv_la-pipe.lo
  CC       src/unix/libuv_la-poll.lo
  CC       src/unix/libuv_la-process.lo
  CC       src/unix/libuv_la-signal.lo
  CC       src/unix/libuv_la-stream.lo
  CC       src/unix/libuv_la-tcp.lo
  CC       src/unix/libuv_la-thread.lo
  CC       src/unix/libuv_la-timer.lo
  CC       src/unix/libuv_la-tty.lo
  CC       src/unix/libuv_la-udp.lo
  CC       src/unix/libuv_la-no-proctitle.lo
  CC       src/unix/libuv_la-sunos.lo
src/unix/sunos.c:32:22: fatal error: ifaddrs.h: No such file or directory
 # include <ifaddrs.h>
                      ^
compilation terminated.
gmake: *** [Makefile:2390: src/unix/libuv_la-sunos.lo] Error 1

I tried to define manually SUNOS_NO_IFADDRS and the build worked. However some of the tests failed.
Could you please advise ?

$ CFLAGS="-DSUNOS_NO_IFADDRS" ./configure
$ make
$ make check
gmake  test/run-tests
gmake[1]: Entering directory '/export/home/vagrant/Documents/conan-mx/build-dir/libuv'
  CC       test/test_run_tests-blackhole-server.o
  CC       test/test_run_tests-dns-server.o
  CC       test/test_run_tests-echo-server.o
  CC       test/test_run_tests-run-tests.o
  CC       test/test_run_tests-runner.o
  CC       test/test_run_tests-test-active.o
  CC       test/test_run_tests-test-async.o
  CC       test/test_run_tests-test-async-null-cb.o
  CC       test/test_run_tests-test-barrier.o
  CC       test/test_run_tests-test-callback-order.o
  CC       test/test_run_tests-test-callback-stack.o
  CC       test/test_run_tests-test-close-fd.o
  CC       test/test_run_tests-test-close-order.o
  CC       test/test_run_tests-test-condvar.o
  CC       test/test_run_tests-test-connection-fail.o
  CC       test/test_run_tests-test-cwd-and-chdir.o
  CC       test/test_run_tests-test-default-loop-close.o
  CC       test/test_run_tests-test-delayed-accept.o
  CC       test/test_run_tests-test-dlerror.o
  CC       test/test_run_tests-test-eintr-handling.o
  CC       test/test_run_tests-test-embed.o
  CC       test/test_run_tests-test-emfile.o
  CC       test/test_run_tests-test-env-vars.o
  CC       test/test_run_tests-test-error.o
  CC       test/test_run_tests-test-fail-always.o
  CC       test/test_run_tests-test-fs-event.o
  CC       test/test_run_tests-test-fs-poll.o
  CC       test/test_run_tests-test-fs.o
  CC       test/test_run_tests-test-fork.o
test/test-fork.c: In function ‘assert_wait_child’:
test/test-fork.c:81:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pid_t’ [-Wformat=]
   printf("Waited pid is %d with status %d\n", waited_pid, child_stat);
   ^
test/test-fork.c: In function ‘run_test_fork_socketpair_started’:
test/test-fork.c:201:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pid_t’ [-Wformat=]
     printf("Child is %d\n", getpid());
     ^
test/test-fork.c: In function ‘assert_run_work’:
test/test-fork.c:624:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pid_t’ [-Wformat=]
   printf("Queue in %d\n", getpid());
   ^
test/test-fork.c:627:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pid_t’ [-Wformat=]
   printf("Running in %d\n", getpid());
   ^
test/test-fork.c: In function ‘run_test_fork_threadpool_queue_work_simple’:
test/test-fork.c:659:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘pid_t’ [-Wformat=]
     printf("Running child in %d\n", getpid());
     ^
  CC       test/test_run_tests-test-get-currentexe.o
  CC       test/test_run_tests-test-get-loadavg.o
  CC       test/test_run_tests-test-get-memory.o
  CC       test/test_run_tests-test-get-passwd.o
  CC       test/test_run_tests-test-getaddrinfo.o
  CC       test/test_run_tests-test-gethostname.o
  CC       test/test_run_tests-test-getnameinfo.o
  CC       test/test_run_tests-test-getsockname.o
  CC       test/test_run_tests-test-handle-fileno.o
  CC       test/test_run_tests-test-homedir.o
  CC       test/test_run_tests-test-hrtime.o
  CC       test/test_run_tests-test-idle.o
  CC       test/test_run_tests-test-ip4-addr.o
  CC       test/test_run_tests-test-ip6-addr.o
  CC       test/test_run_tests-test-ipc-send-recv.o
  CC       test/test_run_tests-test-ipc.o
  CC       test/test_run_tests-test-loop-handles.o
  CC       test/test_run_tests-test-loop-alive.o
  CC       test/test_run_tests-test-loop-close.o
  CC       test/test_run_tests-test-loop-stop.o
  CC       test/test_run_tests-test-loop-time.o
  CC       test/test_run_tests-test-loop-configure.o
  CC       test/test_run_tests-test-multiple-listen.o
  CC       test/test_run_tests-test-mutexes.o
  CC       test/test_run_tests-test-osx-select.o
  CC       test/test_run_tests-test-pass-always.o
  CC       test/test_run_tests-test-ping-pong.o
  CC       test/test_run_tests-test-pipe-bind-error.o
  CC       test/test_run_tests-test-pipe-connect-error.o
  CC       test/test_run_tests-test-pipe-connect-multiple.o
  CC       test/test_run_tests-test-pipe-connect-prepare.o
  CC       test/test_run_tests-test-pipe-getsockname.o
  CC       test/test_run_tests-test-pipe-pending-instances.o
  CC       test/test_run_tests-test-pipe-sendmsg.o
  CC       test/test_run_tests-test-pipe-server-close.o
  CC       test/test_run_tests-test-pipe-close-stdout-read-stdin.o
  CC       test/test_run_tests-test-pipe-set-non-blocking.o
  CC       test/test_run_tests-test-platform-output.o
  CC       test/test_run_tests-test-poll-close.o
  CC       test/test_run_tests-test-poll-close-doesnt-corrupt-stack.o
  CC       test/test_run_tests-test-poll-closesocket.o
  CC       test/test_run_tests-test-poll.o
  CC       test/test_run_tests-test-process-title.o
test/test-process-title.c:27:13: warning: ‘set_title’ defined but not used [-Wunused-function]
 static void set_title(const char* title) {
             ^
test/test-process-title.c:44:13: warning: ‘uv_get_process_title_edge_cases’ defined but not used [-Wunused-function]
 static void uv_get_process_title_edge_cases(void) {
             ^
  CC       test/test_run_tests-test-queue-foreach-delete.o
  CC       test/test_run_tests-test-ref.o
  CC       test/test_run_tests-test-run-nowait.o
  CC       test/test_run_tests-test-run-once.o
  CC       test/test_run_tests-test-semaphore.o
  CC       test/test_run_tests-test-shutdown-close.o
  CC       test/test_run_tests-test-shutdown-eof.o
  CC       test/test_run_tests-test-shutdown-twice.o
  CC       test/test_run_tests-test-signal-multiple-loops.o
  CC       test/test_run_tests-test-signal.o
  CC       test/test_run_tests-test-socket-buffer-size.o
  CC       test/test_run_tests-test-spawn.o
test/test-spawn.c: In function ‘run_test_spawn_setuid_setgid’:
test/test-spawn.c:1277:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uid_t’ [-Wformat=]
   snprintf(uidstr, sizeof(uidstr), "%d", pw->pw_uid);
   ^
test/test-spawn.c:1278:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gid_t’ [-Wformat=]
   snprintf(gidstr, sizeof(gidstr), "%d", pw->pw_gid);
   ^
  CC       test/test_run_tests-test-stdio-over-pipes.o
  CC       test/test_run_tests-test-tcp-alloc-cb-fail.o
  CC       test/test_run_tests-test-tcp-bind-error.o
  CC       test/test_run_tests-test-tcp-bind6-error.o
  CC       test/test_run_tests-test-tcp-close-accept.o
  CC       test/test_run_tests-test-tcp-close-while-connecting.o
  CC       test/test_run_tests-test-tcp-close.o
  CC       test/test_run_tests-test-tcp-create-socket-early.o
  CC       test/test_run_tests-test-tcp-connect-error-after-write.o
  CC       test/test_run_tests-test-tcp-connect-error.o
  CC       test/test_run_tests-test-tcp-connect-timeout.o
  CC       test/test_run_tests-test-tcp-connect6-error.o
  CC       test/test_run_tests-test-tcp-flags.o
  CC       test/test_run_tests-test-tcp-open.o
  CC       test/test_run_tests-test-tcp-read-stop.o
  CC       test/test_run_tests-test-tcp-shutdown-after-write.o
  CC       test/test_run_tests-test-tcp-unexpected-read.o
  CC       test/test_run_tests-test-tcp-oob.o
  CC       test/test_run_tests-test-tcp-write-to-half-open-connection.o
  CC       test/test_run_tests-test-tcp-write-after-connect.o
  CC       test/test_run_tests-test-tcp-writealot.o
  CC       test/test_run_tests-test-tcp-write-fail.o
  CC       test/test_run_tests-test-tcp-try-write.o
  CC       test/test_run_tests-test-tcp-write-queue-order.o
  CC       test/test_run_tests-test-thread-equal.o
  CC       test/test_run_tests-test-thread.o
  CC       test/test_run_tests-test-threadpool-cancel.o
  CC       test/test_run_tests-test-threadpool.o
  CC       test/test_run_tests-test-timer-again.o
  CC       test/test_run_tests-test-timer-from-check.o
  CC       test/test_run_tests-test-timer.o
  CC       test/test_run_tests-test-tmpdir.o
  CC       test/test_run_tests-test-tty.o
  CC       test/test_run_tests-test-udp-alloc-cb-fail.o
  CC       test/test_run_tests-test-udp-bind.o
  CC       test/test_run_tests-test-udp-create-socket-early.o
  CC       test/test_run_tests-test-udp-dgram-too-big.o
  CC       test/test_run_tests-test-udp-ipv6.o
  CC       test/test_run_tests-test-udp-multicast-interface.o
  CC       test/test_run_tests-test-udp-multicast-interface6.o
  CC       test/test_run_tests-test-udp-multicast-join.o
  CC       test/test_run_tests-test-udp-multicast-join6.o
  CC       test/test_run_tests-test-udp-multicast-ttl.o
  CC       test/test_run_tests-test-udp-open.o
  CC       test/test_run_tests-test-udp-options.o
  CC       test/test_run_tests-test-udp-send-and-recv.o
  CC       test/test_run_tests-test-udp-send-hang-loop.o
  CC       test/test_run_tests-test-udp-send-immediate.o
  CC       test/test_run_tests-test-udp-send-unreachable.o
  CC       test/test_run_tests-test-udp-try-send.o
  CC       test/test_run_tests-test-walk-handles.o
  CC       test/test_run_tests-test-watcher-cross-stop.o
  CC       test/test_run_tests-runner-unix.o
  CCLD     test/run-tests
gmake[1]: Leaving directory '/export/home/vagrant/Documents/conan-mx/build-dir/libuv'
gmake  check-TESTS
gmake[1]: Entering directory '/export/home/vagrant/Documents/conan-mx/build-dir/libuv'
1..311
not ok 1 - platform_output
# exit code 134
# Output from process `platform_output`:
# uv_get_process_title:
# uv_cwd: /export/home/vagrant/Documents/conan-mx/build-dir/libuv
# uv_resident_set_memory: 1122304
# uv_uptime: 92395.000000
# uv_getrusage:
#   user: 0 sec 5317 microsec
#   system: 0 sec 10934 microsec
#   page faults: 0
#   maximum resident set size: 0
# uv_cpu_info:
#   model: Intel(r) Xeon(r) CPU E5-1650 v3 @ 3.50GHz
#   speed: 3490
#   times.sys: 335432
#   times.user: 129001
#   times.idle: 8776778
#   times.irq: 30201820
#   times.nice: 0
#   model: Intel(r) Xeon(r) CPU E5-1650 v3 @ 3.50GHz
#   speed: 3490
#   times.sys: 147098
#   times.user: 117627
#   times.idle: 8974506
#   times.irq: 6263538
#   times.nice: 0
# Assertion failed in test/test-platform-output.c on line 102: err == 0
ok 2 - close_order
ok 3 - run_once
ok 4 - run_nowait
ok 5 - loop_alive
ok 6 - loop_close
ok 7 - loop_stop
ok 8 - loop_update_time
ok 9 - loop_backend_timeout
ok 10 - loop_configure
ok 11 - default_loop_close
ok 12 - barrier_1
ok 13 - barrier_2
ok 14 - barrier_3
ok 15 - condvar_1
ok 16 - condvar_2
ok 17 - condvar_3
ok 18 - condvar_4
ok 19 - condvar_5
ok 20 - semaphore_1
ok 21 - semaphore_2
ok 22 - semaphore_3
ok 23 - pipe_connect_bad_name
ok 24 - pipe_connect_to_file
ok 25 - pipe_connect_on_prepare
ok 26 - pipe_server_close
ok 27 - pipe_close_stdout_read_stdin
ok 28 - pipe_set_non_blocking
ok 29 - tty
ok 30 - tty_file
ok 31 - tty_pty
ok 32 - stdio_over_pipes
ok 33 - ip6_pton
ok 34 - ipc_listen_before_write
ok 35 - ipc_listen_after_write
ok 36 - ipc_send_recv_pipe
ok 37 - ipc_send_recv_pipe_inprocess
ok 38 - ipc_send_recv_tcp
ok 39 - ipc_send_recv_tcp_inprocess
ok 40 - ipc_tcp_connection
ok 41 - ipc_closed_handle
ok 42 - tcp_alloc_cb_fail
ok 43 - tcp_ping_pong
ok 44 - tcp_ping_pong_v6 # SKIP IPv6 not supported
ok 45 - pipe_ping_pong
ok 46 - delayed_accept
ok 47 - multiple_listen
ok 48 - tcp_write_after_connect
ok 49 - tcp_writealot
ok 50 - tcp_write_fail
ok 51 - tcp_try_write
ok 52 - tcp_write_queue_order
ok 53 - tcp_open
ok 54 - tcp_open_twice
ok 55 - tcp_shutdown_after_write
ok 56 - tcp_connect_error_after_write
ok 57 - tcp_bind_error_addrinuse
ok 58 - tcp_bind_error_addrnotavail_1
ok 59 - tcp_bind_error_addrnotavail_2
ok 60 - tcp_bind_error_fault
ok 61 - tcp_bind_error_inval
ok 62 - tcp_bind_localhost_ok
ok 63 - tcp_bind_invalid_flags
ok 64 - tcp_listen_without_bind
ok 65 - tcp_connect_error_fault
ok 66 - tcp_connect_timeout
ok 67 - tcp_close_while_connecting
ok 68 - tcp_close
ok 69 - tcp_create_early
ok 70 - tcp_create_early_bad_bind # SKIP IPv6 not supported
ok 71 - tcp_create_early_bad_domain
ok 72 - tcp_create_early_accept
ok 73 - tcp_close_accept
not ok 74 - tcp_oob
# timeout
# Output from process `tcp_oob`: (no output)
ok 75 - tcp_flags
ok 76 - tcp_write_to_half_open_connection
ok 77 - tcp_unexpected_read
ok 78 - tcp_read_stop
ok 79 - tcp_bind6_error_addrinuse # SKIP IPv6 not supported
ok 80 - tcp_bind6_error_addrnotavail # SKIP IPv6 not supported
ok 81 - tcp_bind6_error_fault # SKIP IPv6 not supported
ok 82 - tcp_bind6_error_inval # SKIP IPv6 not supported
ok 83 - tcp_bind6_localhost_ok # SKIP IPv6 not supported
ok 84 - udp_alloc_cb_fail
ok 85 - udp_bind
ok 86 - udp_bind_reuseaddr
ok 87 - udp_create_early
ok 88 - udp_create_early_bad_bind # SKIP IPv6 not supported
ok 89 - udp_create_early_bad_domain
ok 90 - udp_send_and_recv
ok 91 - udp_send_hang_loop
ok 92 - udp_send_immediate
ok 93 - udp_send_unreachable
ok 94 - udp_dgram_too_big
ok 95 - udp_dual_stack # SKIP IPv6 not supported
ok 96 - udp_ipv6_only # SKIP IPv6 not supported
ok 97 - udp_options
ok 98 - udp_options6 # SKIP IPv6 not supported
ok 99 - udp_no_autobind
ok 100 - udp_multicast_interface
ok 101 - udp_multicast_interface6 # SKIP IPv6 not supported
ok 102 - udp_multicast_join
ok 103 - udp_multicast_join6 # SKIP IPv6 not supported
ok 104 - udp_multicast_ttl
ok 105 - udp_try_send
ok 106 - udp_open
ok 107 - udp_open_twice
ok 108 - pipe_bind_error_addrinuse
ok 109 - pipe_bind_error_addrnotavail
ok 110 - pipe_bind_error_inval
ok 111 - pipe_connect_multiple
ok 112 - pipe_listen_without_bind
ok 113 - pipe_getsockname
ok 114 - pipe_getsockname_abstract
ok 115 - pipe_getsockname_blocking
ok 116 - pipe_pending_instances
ok 117 - pipe_sendmsg
ok 118 - connection_fail
ok 119 - connection_fail_doesnt_auto_close
ok 120 - shutdown_close_tcp
ok 121 - shutdown_close_pipe
ok 122 - shutdown_eof
ok 123 - shutdown_twice
ok 124 - callback_stack
ok 125 - env_vars
ok 126 - error_message
ok 127 - sys_error
ok 128 - timer
ok 129 - timer_init
ok 130 - timer_again
ok 131 - timer_start_twice
ok 132 - timer_order
ok 133 - timer_huge_timeout
ok 134 - timer_huge_repeat
ok 135 - timer_run_once
ok 136 - timer_from_check
ok 137 - timer_null_callback
ok 138 - timer_early_check
ok 139 - idle_starvation
ok 140 - ref
ok 141 - idle_ref
ok 142 - fs_poll_ref
ok 143 - async_ref
ok 144 - prepare_ref
ok 145 - check_ref
ok 146 - unref_in_prepare_cb
ok 147 - timer_ref
ok 148 - timer_ref2
not ok 149 - fs_event_ref
# exit code 139
# Output from process `fs_event_ref`: (no output)
ok 150 - tcp_ref
ok 151 - tcp_ref2
ok 152 - tcp_ref2b
ok 153 - tcp_ref3
ok 154 - tcp_ref4
ok 155 - udp_ref
ok 156 - udp_ref2
ok 157 - udp_ref3
ok 158 - pipe_ref
ok 159 - pipe_ref2
ok 160 - pipe_ref3
ok 161 - pipe_ref4
ok 162 - process_ref
ok 163 - has_ref
ok 164 - loop_handles
ok 165 - walk_handles
ok 166 - watcher_cross_stop
ok 167 - active
ok 168 - embed
ok 169 - async
ok 170 - async_null_cb
ok 171 - eintr_handling
ok 172 - get_currentexe
ok 173 - process_title # SKIP uv_(get|set)_process_title is not implemented.
ok 174 - cwd_and_chdir
ok 175 - get_memory
ok 176 - get_passwd
ok 177 - get_loadavg
ok 178 - handle_fileno
ok 179 - homedir
ok 180 - tmpdir
ok 181 - hrtime
ok 182 - getaddrinfo_fail
ok 183 - getaddrinfo_fail_sync
ok 184 - getaddrinfo_basic
ok 185 - getaddrinfo_basic_sync
ok 186 - getaddrinfo_concurrent
ok 187 - gethostname
ok 188 - getnameinfo_basic_ip4
ok 189 - getnameinfo_basic_ip4_sync
ok 190 - getnameinfo_basic_ip6
ok 191 - getsockname_tcp
ok 192 - getsockname_udp
not ok 193 - poll_duplex
# timeout
# Output from process `poll_duplex`: (no output)
not ok 194 - poll_unidirectional
# timeout
# Output from process `poll_unidirectional`: (no output)
ok 195 - poll_close
ok 196 - poll_bad_fdtype
ok 197 - socket_buffer_size
ok 198 - spawn_fails
ok 199 - spawn_fails_check_for_waitpid_cleanup
ok 200 - spawn_exit_code
ok 201 - spawn_stdout
ok 202 - spawn_stdin
ok 203 - spawn_stdio_greater_than_3
ok 204 - spawn_ignored_stdio
ok 205 - spawn_and_kill
ok 206 - spawn_detached
ok 207 - spawn_and_kill_with_std
ok 208 - spawn_and_ping
ok 209 - spawn_preserve_env
ok 210 - spawn_setuid_fails
ok 211 - spawn_setgid_fails
ok 212 - spawn_stdout_to_file
ok 213 - spawn_stdout_and_stderr_to_file
ok 214 - spawn_stdout_and_stderr_to_file2
ok 215 - spawn_stdout_and_stderr_to_file_swap
ok 216 - spawn_auto_unref
ok 217 - spawn_closed_process_io
ok 218 - spawn_reads_child_path
ok 219 - spawn_inherit_streams
ok 220 - fs_poll
ok 221 - fs_poll_getpath
ok 222 - kill
ok 223 - poll_close_doesnt_corrupt_stack # SKIP Test only relevant on Windows
ok 224 - poll_closesocket # SKIP Test only relevant on Windows
ok 225 - emfile
ok 226 - close_fd
ok 227 - spawn_fs_open
ok 228 - spawn_setuid_setgid # SKIP It should be run as root user
ok 229 - we_get_signal
ok 230 - we_get_signals
ok 231 - we_get_signal_one_shot
ok 232 - we_get_signals_mixed
ok 233 - signal_multiple_loops
ok 234 - closed_fd_events
ok 235 - fs_file_noent
ok 236 - fs_file_nametoolong
ok 237 - fs_file_loop
ok 238 - fs_file_async
ok 239 - fs_file_sync
ok 240 - fs_file_write_null_buffer
ok 241 - fs_async_dir
ok 242 - fs_async_sendfile
ok 243 - fs_mkdtemp
ok 244 - fs_fstat
ok 245 - fs_access
ok 246 - fs_chmod
ok 247 - fs_unlink_readonly
ok 248 - fs_chown
ok 249 - fs_utime
ok 250 - fs_futime
ok 251 - fs_readlink
ok 252 - fs_realpath
ok 253 - fs_symlink
ok 254 - fs_symlink_dir
ok 255 - fs_stat_missing_path
ok 256 - fs_read_file_eof
ok 257 - fs_file_open_append
not ok 258 - fs_event_watch_dir
# exit code 134
# Output from process `fs_event_watch_dir`:
# Assertion failed in test/test-fs-event.c on line 412: r == 0
ok 259 - fs_event_watch_dir_recursive # SKIP Recursive directory watching not supported on this platform.
not ok 260 - fs_event_watch_file
# exit code 134
# Output from process `fs_event_watch_file`:
# Assertion failed in test/test-fs-event.c on line 496: r == 0
not ok 261 - fs_event_watch_file_exact_path
# exit code 134
# Output from process `fs_event_watch_file_exact_path`:
# Assertion failed in test/test-fs-event.c on line 543: r == 0
not ok 262 - fs_event_watch_file_twice
# exit code 134
# Output from process `fs_event_watch_file_twice`:
# Assertion failed in test/test-fs-event.c on line 575: 0 == uv_fs_event_init(loop, watchers + 0)
not ok 263 - fs_event_watch_file_current_dir
# exit code 134
# Output from process `fs_event_watch_file_current_dir`:
# Assertion failed in test/test-fs-event.c on line 602: r == 0
not ok 264 - fs_event_watch_invalid_path
# exit code 134
# Output from process `fs_event_watch_invalid_path`:
# Assertion failed in test/test-fs-event.c on line 1041: r == 0
not ok 265 - fs_event_no_callback_after_close
# exit code 134
# Output from process `fs_event_no_callback_after_close`:
# Assertion failed in test/test-fs-event.c on line 675: r == 0
not ok 266 - fs_event_no_callback_on_close
# exit code 134
# Output from process `fs_event_no_callback_on_close`:
# Assertion failed in test/test-fs-event.c on line 713: r == 0
not ok 267 - fs_event_immediate_close
# exit code 134
# Output from process `fs_event_immediate_close`:
# Assertion failed in test/test-fs-event.c on line 740: r == 0
not ok 268 - fs_event_close_with_pending_event
# exit code 134
# Output from process `fs_event_close_with_pending_event`:
# Assertion failed in test/test-fs-event.c on line 787: r == 0
not ok 269 - fs_event_close_in_callback
# exit code 134
# Output from process `fs_event_close_in_callback`:
# Assertion failed in test/test-fs-event.c on line 833: r == 0
not ok 270 - fs_event_start_and_close
# exit code 134
# Output from process `fs_event_start_and_close`:
# Assertion failed in test/test-fs-event.c on line 873: r == 0
ok 271 - fs_event_error_reporting
not ok 272 - fs_event_getpath
# exit code 134
# Output from process `fs_event_getpath`:
# Assertion failed in test/test-fs-event.c on line 906: r == 0
ok 273 - fs_scandir_empty_dir
ok 274 - fs_scandir_non_existent_dir
ok 275 - fs_scandir_file
ok 276 - fs_open_dir
ok 277 - fs_rename_to_existing_file
ok 278 - fs_write_multiple_bufs
ok 279 - fs_write_alotof_bufs
ok 280 - fs_write_alotof_bufs_with_offset

ok 281 - fs_read_write_null_arguments
ok 282 - fs_file_pos_after_op_with_offset
ok 283 - get_osfhandle_valid_handle
ok 284 - threadpool_queue_work_simple
ok 285 - threadpool_queue_work_einval
ok 286 - threadpool_multiple_event_loops
ok 287 - threadpool_cancel_getaddrinfo
ok 288 - threadpool_cancel_getnameinfo
ok 289 - threadpool_cancel_work
ok 290 - threadpool_cancel_fs
ok 291 - threadpool_cancel_single
ok 292 - thread_local_storage
ok 293 - thread_stack_size # SKIP OSX only test
ok 294 - thread_mutex
ok 295 - thread_rwlock
ok 296 - thread_rwlock_trylock
ok 297 - thread_create
ok 298 - thread_equal
ok 299 - dlerror
ok 300 - ip4_addr
not ok 301 - ip6_addr_link_local
# exit code 134
# Output from process `ip6_addr_link_local`:
# Assertion failed in test/test-ip6-addr.c on line 50: 0 == uv_interface_addresses(&addresses, &count)
ok 302 - queue_foreach_delete
ok 303 - fork_timer
ok 304 - fork_socketpair
ok 305 - fork_socketpair_started
ok 306 - fork_signal_to_child
ok 307 - fork_signal_to_child_closed
not ok 308 - fork_fs_events_child
# exit code 134
# Output from process `fork_fs_events_child`:
# Assertion failed in test/test-fork.c on line 423: r == 0
ok 309 - fork_fs_events_child_dir
ok 310 - fork_fs_events_file_parent_child
ok 311 - fork_threadpool_queue_work_simple
FAIL: test/run-tests
======================================================
1 of 1 test failed
Please report to https://github.com/libuv/libuv/issues
======================================================
gmake[1]: *** [Makefile:4457: check-TESTS] Error 1
gmake[1]: Leaving directory '/export/home/vagrant/Documents/conan-mx/build-dir/libuv'
gmake: *** [Makefile:4714: check-am] Error 2
@saghul
Copy link
Member

saghul commented Aug 3, 2017

/cc @libuv/sunos

@misterdjules
Copy link

The ip6_addr_link_local and the platform_output tests do not handle the absence of ifaddrs.h, as it asserts that uv_interface_addresses returns 0 regardless of whether the SUNOS_NO_IFADDRS macro was set.

@saghul Would it make sense to skip the ip6_addr_link_local and the relevant parts of the platform_output tests when SUNOS_NO_IFADDRS is defined?

At a glance, most if not all of the fs_event tests fail because I would think that version of Solaris does not support the PORT_SOURCE_FILE source for port_associate. It might make sense to skip those tests on those platforms and investigate if we could support that feature on the Oracle Solaris platform.

I'm not sure why the poll_unidirectional and poll_unidirectional fail, we'd need to investigate more. Same for tcp_oob. It's a bit difficult to do that currently on the Oracle Solaris platform because it's not necessarily easily available for libuv contributors.

In general though, and with the disclaimer that I do not speak for the project, I think the Solaris platform, despite being documented as supported, is not really supported. The platform that is supported is the SmartOS platform, which varies from the Oracle Solaris platform in different ways.

It is possible that the name "SunOS" was used when defining the list of supported platforms at be0e24c either by mistake or due to some confusion, since the topic of the confusion between SmartOS and Solaris was discussed in the associated PR.

@saghul Is is something we could clarify?

One way to get better support for the Oracle Solaris platform would be to have at least one usable machine that we could easily get access to. But again, I'm not speaking on behalf of the project.

@saghul
Copy link
Member

saghul commented Aug 4, 2017

Would it make sense to skip the ip6_addr_link_local and the relevant parts of the platform_output tests when SUNOS_NO_IFADDRS is defined?

I would say so, yeah.

It is possible that the name "SunOS" was used when defining the list of supported platforms at be0e24c either by mistake or due to some confusion, since the topic of the confusion between SmartOS and Solaris was discussed in the associated PR.

@saghul Is is something we could clarify?

I think that was mostly heritage. Internally it's referred to as "SunOS". AFAICT, it was indeed SmartOS what we really supported initially. Now, if this no longer stands or a change is required in the supported platforms documentation, let's do it. In the end, if nobody maintains the port if will end up rotting away and eventually get the axe.

@misterdjules
Copy link

@saghul

Would it make sense to skip the ip6_addr_link_local and the relevant parts of the platform_output tests when SUNOS_NO_IFADDRS is defined?

I would say so, yeah.

I would be willing to make that change, but it would be hard for me to find an Oracle Solaris machine to run tests on.

AFAICT, it was indeed SmartOS what we really supported initially. Now, if this no longer stands or a change is required in the supported platforms documentation, let's do it.

SmartOS is definitely still supported. What is not supported is any other platform derived from Solaris (such as Oracle Solaris). The change I was thinking about is to change SunOS to SmartOS in the documentation of supported platforms, change the name of the @libuv/sunos team to "smartos" and change the "sunos" label to "smartos". Is that what you had in mind too?

In the end, if nobody maintains the port if will end up rotting away and eventually get the axe.

Which port were you referring to? If you were referring to the SmartOS support, I don't think it will be "rotting away" anytime soon. For instance, @cjihrig just added himself to the @libuv/sunos team, so there's now one maintainer in addition to myself in the team that supports it.

cjihrig added a commit to cjihrig/libuv that referenced this issue Aug 9, 2017
Refs: libuv#991
Refs: libuv#1458
PR-URL: libuv#1469
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
@Zikoel
Copy link

Zikoel commented Feb 6, 2018

Hi, I am interested to SunOS support... but I don't understand very well the situation! In my case I have some OpenIndiana machines where I really like to use libuv. On OpenIndiana seems that I have getifaddress() so is my case related to this issue? Seems that what fails on my machine was more or less the same tests!

@bnoordhuis
Copy link
Member

On OpenIndiana seems that I have getifaddress() so is my case related to this issue?

I can't say; it might. If you figure out the cause, you're welcome to send a pull request our way.

@bnoordhuis
Copy link
Member

Closing, issue appears to have stalled and the platform is unsupported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants