From ab4013f00d7cf64458ec69cc772932fe44c831ae Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Mon, 18 Jan 2021 18:24:28 -0400 Subject: [PATCH 1/4] Downgrade required libuv version to 1.18 (1.18 is the version found in bionic). --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b525c0f4b2..2f69162d29 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ find_package(PkgConfig REQUIRED) if(NOT BUILD_STATIC_DEPS) - pkg_check_modules(LIBUV libuv>=1.28.0 IMPORTED_TARGET) + pkg_check_modules(LIBUV libuv>=1.18.0 IMPORTED_TARGET) endif() if(LIBUV_FOUND AND NOT BUILD_STATIC_DEPS) add_library(libuv INTERFACE) From 60a267a136309ec2d4d84e4c87e1ce6374a86bff Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Mon, 18 Jan 2021 20:45:04 -0400 Subject: [PATCH 2/4] Add automake+libtool for libuv static build --- .drone.jsonnet | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.drone.jsonnet b/.drone.jsonnet index 88dceca253..40074f5ccb 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -90,7 +90,7 @@ local windows_cross_pipeline(name, image, 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections', apt_get_quiet + ' update', apt_get_quiet + ' install -y eatmydata', - 'eatmydata ' + apt_get_quiet + ' install -y build-essential cmake git ninja-build pkg-config ccache g++-mingw-w64-x86-64-posix nsis zip', + 'eatmydata ' + apt_get_quiet + ' install -y build-essential cmake git ninja-build pkg-config ccache g++-mingw-w64-x86-64-posix nsis zip automake libtool', 'update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix', 'update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix', 'git clone https://github.com/despair86/libuv.git win32-setup/libuv', @@ -216,7 +216,7 @@ local mac_builder(name, build_type='Release', werror=true, cmake_extra='', extra debian_pipeline("Debian sid (ARM64)", "debian:sid", arch="arm64"), debian_pipeline("Debian buster (armhf)", "arm32v7/debian:buster", arch="arm64", cmake_extra='-DDOWNLOAD_SODIUM=ON'), // Static armhf build (gets uploaded) - debian_pipeline("Static (buster armhf)", "arm32v7/debian:buster", arch="arm64", deps='g++ python3-dev', + debian_pipeline("Static (buster armhf)", "arm32v7/debian:buster", arch="arm64", deps='g++ python3-dev automake libtool', cmake_extra='-DBUILD_STATIC_DEPS=ON -DBUILD_SHARED_LIBS=OFF -DSTATIC_LINK=ON ' + '-DCMAKE_CXX_FLAGS="-march=armv7-a+fp" -DCMAKE_C_FLAGS="-march=armv7-a+fp" -DNATIVE_BUILD=OFF ' + '-DWITH_SYSTEMD=OFF', @@ -232,7 +232,7 @@ local mac_builder(name, build_type='Release', werror=true, cmake_extra='', extra ]), // Static build (on bionic) which gets uploaded to builds.lokinet.dev: - debian_pipeline("Static (bionic amd64)", "ubuntu:bionic", deps='g++-8 python3-dev', lto=true, + debian_pipeline("Static (bionic amd64)", "ubuntu:bionic", deps='g++-8 python3-dev automake libtool', lto=true, cmake_extra='-DBUILD_STATIC_DEPS=ON -DBUILD_SHARED_LIBS=OFF -DSTATIC_LINK=ON -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 ' + '-DCMAKE_CXX_FLAGS="-march=x86-64 -mtune=haswell" -DCMAKE_C_FLAGS="-march=x86-64 -mtune=haswell" -DNATIVE_BUILD=OFF ' + '-DWITH_SYSTEMD=OFF', From 231674e5a53cdbd586f4a19b5ca95e649a24710b Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Mon, 25 Jan 2021 13:06:59 -0400 Subject: [PATCH 3/4] Remove CMAKE_CROSSCOMPILE We set CMAKE_CROSSCOMPILE in a few places, but that is just a typo for CMAKE_CROSSCOMPILING. However we don't need to set it at all: cmake does so automatically whenever CMAKE_SYSTEM_NAME is set (which is why our cross compiling actually works currently.) --- .drone.jsonnet | 2 +- contrib/cross/mingw_core.cmake | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.drone.jsonnet b/.drone.jsonnet index 40074f5ccb..5657a8aa2e 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -96,7 +96,7 @@ local windows_cross_pipeline(name, image, 'git clone https://github.com/despair86/libuv.git win32-setup/libuv', 'mkdir build', 'cd build', - 'cmake .. -G Ninja -DCMAKE_CROSSCOMPILE=ON -DCMAKE_EXE_LINKER_FLAGS=-fstack-protector -DLIBUV_ROOT=$PWD/../win32-setup/libuv -DCMAKE_CXX_FLAGS=-fdiagnostics-color=always -DCMAKE_TOOLCHAIN_FILE=../contrib/cross/mingw'+toolchain+'.cmake -DCMAKE_BUILD_TYPE='+build_type+' ' + + 'cmake .. -G Ninja -DCMAKE_EXE_LINKER_FLAGS=-fstack-protector -DCMAKE_CXX_FLAGS=-fdiagnostics-color=always -DCMAKE_TOOLCHAIN_FILE=../contrib/cross/mingw'+toolchain+'.cmake -DCMAKE_BUILD_TYPE='+build_type+' ' + (if werror then '-DWARNINGS_AS_ERRORS=ON ' else '') + (if lto then '' else '-DWITH_LTO=OFF ') + "-DBUILD_STATIC_DEPS=ON -DDOWNLOAD_SODIUM=ON -DBUILD_PACKAGE=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DNATIVE_BUILD=OFF -DSTATIC_LINK=ON" + diff --git a/contrib/cross/mingw_core.cmake b/contrib/cross/mingw_core.cmake index d4702c74ee..a42673eda6 100644 --- a/contrib/cross/mingw_core.cmake +++ b/contrib/cross/mingw_core.cmake @@ -23,5 +23,4 @@ else() endif() set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) -set(CMAKE_CROSSCOMPILE ON) set(ARCH_TRIPLET ${CROSS_TARGET}) From 3d0c9a90a840037f37d0a15f2b08a4dc8f9bf8a3 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Mon, 25 Jan 2021 15:52:15 -0400 Subject: [PATCH 4/4] Link against libdl for libuv --- cmake/StaticBuild.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/StaticBuild.cmake b/cmake/StaticBuild.cmake index 024a2e4dbf..e16591f43f 100644 --- a/cmake/StaticBuild.cmake +++ b/cmake/StaticBuild.cmake @@ -202,6 +202,7 @@ build_external(libuv ${DEPS_DESTDIR}/include/uv.h ) add_static_target(libuv libuv_external libuv.a) +target_link_libraries(libuv INTERFACE ${CMAKE_DL_LIBS})