Skip to content
New issue

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

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

Already on GitHub? # to your account

[libdwarf] New port #34382

Merged
merged 47 commits into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9a28f97
Try to add libdwarf
jeremy-rifkin Oct 9, 2023
bf266e7
Has
jeremy-rifkin Oct 9, 2023
131b550
fix
jeremy-rifkin Oct 9, 2023
8c7c5b8
hash
jeremy-rifkin Oct 9, 2023
5bf8b33
fixes
jeremy-rifkin Oct 9, 2023
4039882
hash
jeremy-rifkin Oct 9, 2023
c34f657
Fixes
jeremy-rifkin Oct 9, 2023
539977b
bump hash
jeremy-rifkin Oct 9, 2023
b4fde2a
zlib fix
jeremy-rifkin Oct 9, 2023
5190170
bump hash
jeremy-rifkin Oct 9, 2023
2a509aa
fix
jeremy-rifkin Oct 9, 2023
8f9ab02
bump hash
jeremy-rifkin Oct 9, 2023
3ee7d2a
fixes
jeremy-rifkin Oct 10, 2023
207a499
Bump hash
jeremy-rifkin Oct 10, 2023
18e4f27
fix
jeremy-rifkin Oct 10, 2023
5cbfb95
bump
jeremy-rifkin Oct 10, 2023
b5c1e12
x
jeremy-rifkin Oct 10, 2023
4d79dbf
bump
jeremy-rifkin Oct 10, 2023
eac00ac
fix
jeremy-rifkin Oct 10, 2023
a644e53
bump
jeremy-rifkin Oct 10, 2023
3074522
fix
jeremy-rifkin Oct 10, 2023
38f7766
bump
jeremy-rifkin Oct 10, 2023
e64d603
fix
jeremy-rifkin Oct 10, 2023
152ea75
bump
jeremy-rifkin Oct 10, 2023
46607ed
fix
jeremy-rifkin Oct 10, 2023
747b4f1
bump
jeremy-rifkin Oct 10, 2023
dad31fc
fix
jeremy-rifkin Oct 10, 2023
05a1a9a
bump
jeremy-rifkin Oct 10, 2023
60830ae
Try this
jeremy-rifkin Oct 21, 2023
13fd06f
bump
jeremy-rifkin Oct 21, 2023
a2ccab2
cleanup
jeremy-rifkin Oct 21, 2023
deb7eb5
bump
jeremy-rifkin Oct 21, 2023
69040be
Update patches
jeremy-rifkin Oct 23, 2023
5d81996
bump hash
jeremy-rifkin Oct 23, 2023
303c83c
fix whitespace
jeremy-rifkin Oct 23, 2023
b89e54b
bump
jeremy-rifkin Oct 23, 2023
f5eb916
Update usage
jeremy-rifkin Oct 28, 2023
12a48c3
Bump
jeremy-rifkin Oct 28, 2023
7811b9e
Update portfile and patches (#1)
dg0yt Oct 30, 2023
0d0ca15
Re-introduce off_t patch
jeremy-rifkin Oct 31, 2023
2b1973a
Bump
jeremy-rifkin Oct 31, 2023
d398751
Fix patch
jeremy-rifkin Oct 31, 2023
cb24352
Bump
jeremy-rifkin Oct 31, 2023
54b32d1
Usage is now correct
jeremy-rifkin Oct 31, 2023
5035393
Bump
jeremy-rifkin Oct 31, 2023
5504ce0
Revert "Usage is now correct"
jeremy-rifkin Oct 31, 2023
8c4e78a
Bump
jeremy-rifkin Oct 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions ports/libdwarf/dependencies.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e9b75f..fd5fbe3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -195,6 +195,20 @@ check_c_source_compiles([=[
}]=] HAVE_STDAFX_H)
#message(STATUS "Checking have windows stdafx.h... ${HAVE_STDAFX_H}")

+find_package(ZLIB REQUIRED)
+add_library(z ALIAS ZLIB::ZLIB)
+set(HAVE_ZLIB 1)
+set(HAVE_ZLIB_H 1)
+
+find_package(zstd CONFIG REQUIRED)
+if(TARGET zstd::libzstd_shared)
+ add_library(zstd ALIAS zstd::libzstd_shared)
+else()
+ add_library(zstd ALIAS zstd::libzstd_static)
+endif()
+set(HAVE_ZSTD 1)
+set(HAVE_ZSTD_H 1)
+
set(CMAKE_REQUIRED_LIBRARIES z)
check_c_source_compiles( [=[
#include "zlib.h"
diff --git a/src/lib/libdwarf/cmake/libdwarf-config.cmake b/src/lib/libdwarf/cmake/libdwarf-config.cmake
index 604c563..5362360 100644
--- a/src/lib/libdwarf/cmake/libdwarf-config.cmake
+++ b/src/lib/libdwarf/cmake/libdwarf-config.cmake
@@ -1,3 +1,6 @@
+include(CMakeFindDependencyMacro)
+find_dependency(ZLIB)
+find_dependency(zstd CONFIG)
if (NOT TARGET libdwarf::libdwarf)
include(${CMAKE_CURRENT_LIST_DIR}/libdwarf-targets.cmake)
endif()
diff --git a/src/lib/libdwarf/libdwarf.pc.cmake b/src/lib/libdwarf/libdwarf.pc.cmake
index 6b18c77..5c97ce9 100644
--- a/src/lib/libdwarf/libdwarf.pc.cmake
+++ b/src/lib/libdwarf/libdwarf.pc.cmake
@@ -9,4 +9,5 @@ Description: DWARF debug symbols library
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -ldwarf
Cflags: -I${includedir}
+Requires.private: zlib libzstd

13 changes: 13 additions & 0 deletions ports/libdwarf/msvc-runtime.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 28076ee..f9795dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,8 @@ endmacro()
set(LIBDWARF_CRT "MD" CACHE STRING "Either MT or MD, specifies whether to use the static or dynamic MSVCRT.")

if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ set(LIBDWARF_CRT ignore)
+elseif(0)
# Use CMAKE_MSVC_RUNTIME in versions 3.15 and up
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15")
cmake_policy(SET CMP0091 NEW)
24 changes: 24 additions & 0 deletions ports/libdwarf/no-suffix.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/src/bin/dwarfdump/CMakeLists.txt b/src/bin/dwarfdump/CMakeLists.txt
index 1b8aa3a..c77d2f0 100644
--- a/src/bin/dwarfdump/CMakeLists.txt
+++ b/src/bin/dwarfdump/CMakeLists.txt
@@ -66,7 +66,6 @@ target_compile_options(dwarfdump PRIVATE ${DW_FWALL})
target_link_libraries(dwarfdump PRIVATE ${dwarf-target} ${DW_FZLIB} ${DW_FZSTD} )

if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
- set(SUFFIX 64)
endif()
set(LIBDIR lib${SUFFIX})
set(BINDIR bin${SUFFIX})
diff --git a/src/lib/libdwarf/CMakeLists.txt b/src/lib/libdwarf/CMakeLists.txt
index 09908bb..91a1447 100644
--- a/src/lib/libdwarf/CMakeLists.txt
+++ b/src/lib/libdwarf/CMakeLists.txt
@@ -109,7 +109,6 @@ foreach(i RANGE ${targetCount})

set_target_properties(${target} PROPERTIES OUTPUT_NAME dwarf)

- set(SUFFIX $<$<EQUAL:${CMAKE_SIZEOF_VOID_P},8>:64>)
set(LIBDIR lib${SUFFIX})
set(BINDIR bin${SUFFIX})

16 changes: 16 additions & 0 deletions ports/libdwarf/off_t.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/src/lib/libdwarf/libdwarf_private.h b/src/lib/libdwarf/libdwarf_private.h
index b37ae994..7fa89256 100644
--- a/src/lib/libdwarf/libdwarf_private.h
+++ b/src/lib/libdwarf/libdwarf_private.h
@@ -26,11 +26,7 @@
#ifdef _MSC_VER /* Macro to select VS compiler */
#include <windows.h>
typedef SSIZE_T ssize_t;
-#ifdef _WIN64
-typedef long long off_t;
-#else
typedef long off_t;
-#endif
#endif /* _MSC_VER */

#ifndef TRUE
36 changes: 36 additions & 0 deletions ports/libdwarf/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO davea42/libdwarf-code
REF "v${VERSION}"
SHA512 3117c69cc77d5a1189aeb1ea7e74d917dedfb84e9e9e98e3df7fec930f8183d12f55bb12e4871ed3746cdb19a29aba924bc73d6334b23bbb6413a1f4be67d499
HEAD_REF main
PATCHES
dependencies.diff
msvc-runtime.diff
no-suffix.diff
off_t.diff
)

string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_NON_SHARED)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBUILD_NON_SHARED=${BUILD_NON_SHARED}
-DBUILD_SHARED=${BUILD_SHARED}
)

vcpkg_cmake_install()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdwarf")
vcpkg_fixup_pkgconfig()

vcpkg_copy_tools(TOOL_NAMES dwarfdump AUTO_CLEAN)

if(BUILD_SHARED)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libdwarf/libdwarf.h" "ifndef LIBDWARF_STATIC" "if 1")
endif()

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
19 changes: 19 additions & 0 deletions ports/libdwarf/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "libdwarf",
"version": "0.8.0",
"description": "A library for reading DWARF2 and later DWARF.",
"homepage": "https://github.com/davea42/libdwarf-code",
"license": "LGPL-2.1-only",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib",
"zstd"
]
}
4 changes: 4 additions & 0 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -4088,6 +4088,10 @@
"baseline": "0.6.0",
"port-version": 3
},
"libdwarf": {
"baseline": "0.8.0",
"port-version": 0
},
"libe57": {
"baseline": "1.1.332",
"port-version": 4
Expand Down
9 changes: 9 additions & 0 deletions versions/l-/libdwarf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "2f7080c279a01a70d6ebf392c9f42e9ca2e22f11",
"version": "0.8.0",
"port-version": 0
}
]
}