Merge branch 'rawhide' into epel8

This commit is contained in:
Rich Mattes 2021-06-09 21:07:13 -04:00
commit d8dbe368d1
5 changed files with 192 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/bloaty-1.1.tar.gz

89
bloaty-1.1-absl.patch Normal file
View File

@ -0,0 +1,89 @@
diff -up ./CMakeLists.txt.1 ./CMakeLists.txt
--- ./CMakeLists.txt.1 2020-05-24 00:36:23.000000000 -0400
+++ ./CMakeLists.txt 2020-12-19 12:32:29.021943521 -0500
@@ -2,7 +2,8 @@ cmake_minimum_required(VERSION 3.5)
cmake_policy(SET CMP0048 NEW)
project (Bloaty VERSION 1.0)
project (Bloaty VERSION 1.1)
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# Options we define for users.
option(BLOATY_ENABLE_ASAN "Enable address sanitizer." OFF)
@@ -36,6 +37,8 @@ else(${PKG_CONFIG_FOUND})
endif(${PKG_CONFIG_FOUND})
endif(UNIX)
+find_package(absl)
+
# Set default build type.
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
@@ -89,11 +92,10 @@ endif(UNIX)
include_directories(.)
include_directories(src)
-include_directories(third_party/abseil-cpp)
include_directories("${CMAKE_CURRENT_BINARY_DIR}/src")
# Baseline build flags.
-set(CMAKE_CXX_FLAGS "-std=c++11 -W -Wall -Wno-sign-compare")
+set(CMAKE_CXX_FLAGS "-W -Wall -Wno-sign-compare")
set(CMAKE_CXX_FLAGS_DEBUG "-g1")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g1")
@@ -149,7 +151,7 @@ endif(${PROTOC_FOUND})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/bloaty_package.bloaty
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-add_library(libbloaty
+add_library(libbloaty STATIC
src/bloaty.cc
src/demangle.cc
src/disassemble.cc
@@ -159,6 +161,13 @@ add_library(libbloaty
src/macho.cc
src/range_map.cc
src/webassembly.cc
+)
+
+if (absl_FOUND)
+ target_link_libraries(libbloaty PUBLIC absl::base absl::strings absl::numeric)
+else()
+ include_directories(third_party/abseil-cpp)
+ target_sources(libbloaty
# Until Abseil has a proper CMake build system
third_party/abseil-cpp/absl/base/internal/raw_logging.cc # Grrrr...
third_party/abseil-cpp/absl/base/internal/throw_delegate.cc
@@ -179,7 +188,8 @@ add_library(libbloaty
third_party/abseil-cpp/absl/types/bad_optional_access.cc
# One source file, no special build system needed.
third_party/demumble/third_party/libcxxabi/cxa_demangle.cpp
- )
+ )
+endif()
if(UNIX)
set(LIBBLOATY_LIBS libbloaty)
@@ -249,9 +259,8 @@ else()
enable_testing()
if(BUILD_TESTING)
- add_subdirectory(third_party/googletest)
- include_directories(third_party/googletest/googletest/include)
- include_directories(third_party/googletest/googlemock/include)
+ find_package(GTest)
+ pkg_search_module(GMock gmock)
set(TEST_TARGETS
bloaty_test
@@ -261,7 +270,7 @@ else()
foreach(target ${TEST_TARGETS})
add_executable(${target} tests/${target}.cc)
- target_link_libraries(${target} "${LIBBLOATY_LIBS}" gtest_main gmock "${CMAKE_THREAD_LIBS_INIT}")
+ target_link_libraries(${target} "${LIBBLOATY_LIBS}" GTest::Main GTest::GTest ${GMock_LIBRARIES} "${CMAKE_THREAD_LIBS_INIT}")
endforeach(target)
add_executable(fuzz_test tests/fuzz_target.cc tests/fuzz_driver.cc)

18
bloaty-1.1-longlong.patch Normal file
View File

@ -0,0 +1,18 @@
diff -up ./src/elf.cc.2 ./src/elf.cc
--- ./src/elf.cc.2 2020-08-02 17:34:06.872636546 -0400
+++ ./src/elf.cc 2020-08-02 17:34:26.293491457 -0400
@@ -794,12 +794,12 @@ void ForEachElf(const InputFile& file, R
//
// - 24 bits for index (up to 16M symbols with -ffunction-sections)
// - 40 bits for address (up to 1TB section)
-static uint64_t ToVMAddr(size_t addr, long ndx, bool is_object) {
+static uint64_t ToVMAddr(uint64_t addr, int64_t ndx, bool is_object) {
if (is_object) {
if (ndx >= 1 << 24) {
THROW("ndx overflow: too many sections");
}
- if (addr >= 1UL << 40) {
+ if (addr >= 1ULL << 40) {
THROW("address overflow: section too big");
}
return (ndx << 40) | addr;

83
bloaty.spec Normal file
View File

@ -0,0 +1,83 @@
Name: bloaty
Version: 1.1
Release: 8%{?dist}
Summary: A size profiler for binaries
License: ASL 2.0
URL: https://github.com/google/bloaty
Source0: https://github.com/google/bloaty/archive/v%{version}/%{name}-%{version}.tar.gz
# Patch to use system versions of abseil, google-test and google-mock
Patch0: bloaty-1.1-absl.patch
# Patch to fix size detection function to use 64 bit types on 32bit architectures
Patch1: bloaty-1.1-longlong.patch
BuildRequires: abseil-cpp-devel
BuildRequires: capstone-devel
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: gmock-devel
BuildRequires: gtest-devel
BuildRequires: pkgconfig
BuildRequires: protobuf-devel
BuildRequires: re2-devel
%description
Ever wondered what's making your binary big? Bloaty McBloatface will show
you a size profile of the binary so you can understand what's taking up
space inside.
Bloaty works on binaries, shared objects, object files, and static
libraries. Bloaty supports the ELF and Mach-O formats, and has experimental
support for WebAssembly.
%prep
%autosetup -p0 -S gendiff
%build
%cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBLOATY_ENABLE_CMAKETARGETS=OFF \
-DBUILD_TESTING=ON
%cmake_build
%install
%cmake_install
%check
%ctest --verbose || exit 0
%files
%license LICENSE
%doc README.md how-bloaty-works.md
%{_bindir}/bloaty
%changelog
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 13 08:55:29 CET 2021 Adrian Reber <adrian@lisas.de> - 1.1-7
- Rebuilt for protobuf 3.14
* Sat Dec 19 11:31:29 EST 2020 Rich Mattes <richmattes@gmail.com> - 1.1-6
- Rebuild for abseil-cpp 20200923.2
* Wed Sep 23 2020 Adrian Reber <adrian@lisas.de> - 1.1-5
- Rebuilt for protobuf 3.13
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-4
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed May 27 2020 Rich Mattes <richmattes@gmail.com> - 1.1-2
- Don't remove buildroot in install
- Patch to use system gtest and gmock, enable tests
* Sat May 23 2020 Rich Mattes <richmattes@gmail.com> - 1.1-1
- Inital Package

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (bloaty-1.1.tar.gz) = b02f8b75ac7e88f64c93be770d207936cfcd5085d3b62be1cd08a39741d57bb06dc8f96e3ef08de936a514d2d570700bbc24727cfb54d541233aaa91b0c87171