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

Update default libuv from 1.40.0 to 1.42.0 #1628

Closed
wants to merge 1 commit into from
Closed

Conversation

XVilka
Copy link
Member

@XVilka XVilka commented Sep 8, 2021

Your checklist for this pull request

  • I've read the guidelines for contributing to this repository
  • I made sure to follow the project's coding style
  • I've added tests that prove my fix is effective or that my feature works (if possible)
  • I've updated the documentation and the rizin book with the relevant information (if needed)

Detailed description

1.40.0 is very old version, new version has a few important Windows and BSD bugfixes:

Changes since version 1.40.0:

  • mailmap: update contact information for richardlau (Richard Lau)
  • build: add asan checks (gengjiawen)
  • unix: report bind error in uv_tcp_connect() (Ben Noordhuis)
  • doc: uv_tcp_bind() never returns UV_EADDRINUSE (Ben Noordhuis)
  • test: fix pump and tcp_write_batch benchmarks (Santiago Gimeno)
  • doc: mark IBM i as Tier 2 support (Jesse Gorzinski)
  • doc,poll: add notes (repeated cb & cancel pending cb) (Elad Nachmias)
  • linux: fix -Wincompatible-pointer-types warning (Ben Noordhuis)
  • linux: fix -Wsign-compare warning (Ben Noordhuis)
  • android: add system call api guards (Ben Noordhuis)
  • unix,win: harmonize uv_read_start() error handling (Ben Noordhuis)
  • unix,win: more uv_read_start() argument validation (Ben Noordhuis)
  • build: turn on -fno-strict-aliasing (Ben Noordhuis)
  • stream: add uv_pipe and uv_socketpair to the API (Jameson Nash)
  • unix,win: initialize timer timeout field (Ben Noordhuis)
  • bsd-ifaddrs: improve comments (Darshan Sen)
  • test: remove unnecessary uv_fs_stat() calls (Ben Noordhuis)
  • fs: fix utime/futime timestamp rounding errors (Ben Noordhuis)
  • test: ensure reliable floating point comparison (Jameson Nash)
  • unix,fs: fix uv_fs_sendfile() (Santiago Gimeno)
  • unix: fix uv_fs_stat when using statx (Simon Kadisch)
  • linux,macos: fix uv_set_process_title regression (Momtchil Momtchev)
  • doc: clarify UDP errors and recvmmsg (Ethel Weston)
  • test-getaddrinfo: use example.invalid (Drew DeVault)
  • Revert "build: fix android autotools build" (Bernardo Ramos)
  • unix,fs: on DVS fs, statx returns EOPNOTSUPP (Mark Klein)
  • win, fs: mkdir really return UV_EINVAL for invalid names (Nicholas Vavilov)
  • tools: migrate tools/make_dist_html.py to python3 (Dominique Dumont)
  • unix: fix uv_uptime() on linux (schamberg97)
  • unix: check for partial copy_file_range support (Momtchil Momtchev)
  • win: bump minimum supported version to windows 8 (Ben Noordhuis)
  • poll,unix: ensure safety of rapid fd reuse (Bob Weinand)
  • test: fix some warnings (Issam E. Maghni)
  • unix: fix uv_uptime() regression (Santiago Gimeno)
  • doc: fix versionadded metadata (cjihrig)
  • test: fix 'incompatible pointer types' warnings (cjihrig)
  • unix: check for EXDEV in uv__fs_sendfile() (Darshan Sen)

Changes since version 1.41.0:

  • win,tcp: make uv_close work more like unix
  • cleanup,win: Remove _WIN32 guards on threadpool
  • more errno mappings and fixes
  • higher performance try-writes
  • fix string encoding issue of uv_os_gethostname (note: MINGW-W64 upstream is broken on i686 due to https://sourceforge.net/p/mingw-w64/bugs/899/)
  • zOS support
  • Workarounds for a copy_file_range kernel bug
  • Better support for TSan
  • darwin: use RLIMIT_STACK for fsevents pthread

See more at:

Please note, that this will require Windows 8 at least. On the other hand, the Windows 7 builds will be still possible with previous version.

Test plan

CI is green

@wargio
Copy link
Member

wargio commented Sep 8, 2021

Please add the lib here: https://github.com/rizinorg/fallback-repo

@wargio
Copy link
Member

wargio commented Sep 8, 2021

Dependency openssl skipped: feature use_sys_openssl disabled
Found pkg-config: /usr/local/bin/pkg-config (1.7.4)
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency libuv found: NO (tried pkgconfig and cmake)
Downloading libuv source from https://github.com/rizinorg/fallback-repo/raw/main/libuv-v1.42.0.tar.gz
HTTP Error 404: Not Found
Downloading libuv source from https://dist.libuv.org/dist/v1.42.0/libuv-v1.42.0.tar.gz
Download size: 1284534
Downloading: ..........

meson.build:265:4: ERROR: Incorrect hash for source:
 371e5419708f6aaeb8656671f89400b92a9bba6443369af1bb70bcd6e4b3c764 expected
 43129625155a8aed796ebe90b8d4c990a73985ec717de2b2d5d3a23cfe4deb72 actual.

@XVilka
Copy link
Member Author

XVilka commented Sep 8, 2021

This is sha256dsum of the tar.gz I downloaded from GitHub, hmm.

@ret2libc
Copy link
Member

ret2libc commented Sep 8, 2021

On the other hand, the Windows 7 builds will be still possible with previous version.

That means we won't be able to compile rizin on win7 anymore?

@wargio
Copy link
Member

wargio commented Sep 8, 2021

This is sha256dsum of the tar.gz I downloaded from GitHub, hmm.

image

@wargio
Copy link
Member

wargio commented Sep 8, 2021

i have uploaded the targz to the fallback repo

@XVilka
Copy link
Member Author

XVilka commented Nov 1, 2021

ninja: job failed: cc  -o test/integration/test_open_analyse_save_load_project test/integration/test_open_analyse_save_load_project.p/test_open_analyse_save_load_project.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -static -Wl,--start-group librz/util/librz_util.a subprojects/sdb/src/libsdb.a subprojects/zlib-1.2.11/libz.a librz/main/librz_main.a librz/demangler/librz_demangler.a subprojects/libdemangle/libdemangle.a librz/magic/librz_magic.a librz/socket/librz_socket.a librz/flag/librz_flag.a librz/cons/librz_cons.a librz/hash/librz_hash.a subprojects/xxhash/libxxhash.a librz/crypto/librz_crypto.a librz/io/librz_io.a shlr/librzbochs.a shlr/gdb/libr2gdb.a shlr/librzwinkd.a shlr/librzqnx.a subprojects/libzip-1.7.3/liblibzip.a shlr/librzar.a shlr/ptrace-wrap/libptrace_wrap.a librz/reg/librz_reg.a librz/bp/librz_bp.a librz/syscall/librz_syscall.a librz/parse/librz_parse.a librz/asm/librz_asm.a librz/bin/librz_bin.a librz/type/librz_type.a subprojects/tree-sitter-0.19.5/libtree_sitter.a subprojects/tree-sitter-c/libtree-sitter-c.a subprojects/lz4-1.9.3/liblz4.a subprojects/yxml/libyxml.a subprojects/capstone-bundled/libcapstone.a librzspp.a librz/egg/librz_egg.a subprojects/mpc/libmpc.a librz/search/librz_search.a librz/analysis/librz_analysis.a librz/diff/librz_diff.a librz/il/librz_il.a librz/debug/librz_debug.a librz/config/librz_config.a librz/core/librz_core.a librz/lang/librz_lang.a shlr/rizin-shell-parser/libshell_parser.a subprojects/libuv-v1.42.0/libuv.a -lrt -ldl -lm -pthread /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../lib/libutil.a -Wl,--end-group
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_core.c.o): in function `uv_run':
core.c:(.text+0x496): undefined reference to `uv__io_poll'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_core.c.o): in function `uv__io_close':
core.c:(.text+0x12ca): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_linux-core.c.o): in function `uv__platform_loop_init':
linux-core.c:(.text+0x846): undefined reference to `uv__epoll_init'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_poll.c.o): in function `uv_poll_init':
poll.c:(.text+0xc7): undefined reference to `uv__io_check_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_poll.c.o): in function `uv_poll_stop':
poll.c:(.text+0x1ce): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: poll.c:(.text+0x1eb): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_poll.c.o): in function `uv_poll_start':
poll.c:(.text+0x2b0): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: poll.c:(.text+0x323): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_poll.c.o): in function `uv__poll_close':
poll.c:(.text+0x3b9): undefined reference to `uv__platform_invalidate_fd'
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: librz/core/librz_core.a(src_unix_poll.c.o):poll.c:(.text+0x3dc): more undefined references to `uv__platform_invalidate_fd' follow
collect2: error: ld returned 1 exit statu

@ret2libc
Copy link
Member

ret2libc commented Nov 3, 2021

@XVilka probably you just need to fix a bit the meson.build file of the libuv subproject, which was created by me AFAIR. For example, uv__io_check_fd does not exist in our current version, but it is in the src/unix/epoll.c file in the libuv master branch.

@XVilka
Copy link
Member Author

XVilka commented Dec 7, 2021

Let's wait first until libuv/libuv#3285 get merged then.

@XVilka
Copy link
Member Author

XVilka commented Apr 22, 2022

As libuv is doing nothing on addressing the Windows 7 compatibility regression, I propose to take the patch from libuv/libuv#3285 and apply using Meson as we did for tree-sitter, for example.

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

Successfully merging this pull request may close these issues.

3 participants