Projects
home:yy:branches:Mega-LLVM:24.03
crash
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 22
View file
_service:tar_scm:crash.spec
Changed
@@ -1,6 +1,6 @@ Name: crash Version: 8.0.4 -Release: 4 +Release: 5 Summary: Linux kernel crash utility. License: GPLv3 URL: https://crash-utility.github.io @@ -11,7 +11,8 @@ Patch1: 0001-add-SDEI-stack-resolution.patch Patch2: 0002-crash-8.0.2-sw.patch Patch3: 0003-crash-8.0.4-add-support-for-loongarch64.patch -Patch4: 0004-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch +Patch4: 0004-support-vmp_area_list-replaced-with-VMALLOC_START.patch +Patch5: 0005-gdb-ignore-Wenum-constexpr-conversion-in-enum-flags.patch BuildRequires: ncurses-devel zlib-devel lzo-devel snappy-devel texinfo libzstd-devel BuildRequires: gcc gcc-c++ bison m4 @@ -50,8 +51,9 @@ %endif %ifarch loongarch64 %patch3 -p1 -%endif %patch4 -p1 +%endif +%patch5 -p1 %build cp %{SOURCE1} . @@ -86,8 +88,11 @@ %{_mandir}/man8/crash.8* %changelog -* Fri Aug 30 2024 yanying <201250106@smail.nju.edu.cn> - 8.0.4-4 -- Backport gdbsupport ignore Wenum-constexpr-conversion in enum +* Fri Sep 06 2024 yanying <201250106@smail.nju.edu.cn> - 8.0.4-5 +- Add gdbsupport ignore Wenum-constexpr-conversion in enum-flags.h to fix clang build error + +* Tue Jul 30 2024 zhangzikang <zhangzikang@kylinos.cn> - 8.0.4-4 +- Fix crash parsing vmcore file failed for loongarch64 * Tue May 28 2024 shaojiansong <shaojiansong@kylinos.cn> - 8.0.4-3 - Fix lack of loongarch64 and sw_64 patch files in src.rpm package which is build from any platform.
View file
_service:tar_scm:0004-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch
Deleted
@@ -1,219 +0,0 @@ -From 06f82e00858c2cc09d0b694082a8cd4e18516c80 Mon Sep 17 00:00:00 2001 -From: yanying <201250106@smail.nju.edu.cn> -Date: Fri, 30 Aug 2024 10:14:27 +0800 -Subject: PATCH gdbsupport: ignore -Wenum-constexpr-conversion in - enum-flags.h - ---- - ...e-Wenum-constexpr-conversion-in-enum.patch | 145 ++++++++++++++++++ - gdb-10.2.patch | 44 ++++++ - 2 files changed, 189 insertions(+) - create mode 100644 0001-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch - -diff --git a/0001-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch b/0001-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch -new file mode 100644 -index 0000000..fdb51b1 ---- /dev/null -+++ b/0001-gdbsupport-ignore-Wenum-constexpr-conversion-in-enum.patch -@@ -0,0 +1,145 @@ -+From 3996ae585fbdf3c620dae5955fc58e05ce8c3493 Mon Sep 17 00:00:00 2001 -+From: yanying <201250106@smail.nju.edu.cn> -+Date: Fri, 30 Aug 2024 10:01:35 +0800 -+Subject: PATCH gdbsupport: ignore -Wenum-constexpr-conversion in -+ enum-flags.h -+ -+When building with clang 16, we get: -+ -+ CXX gdb.o -+ In file included from /home/smarchi/src/binutils-gdb/gdb/gdb.c:19: -+ In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:65: -+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/enum-flags.h:95:52: error: integer value -1 is outside the valid range of values 0, 15 for this enumeration type -Wenum-constexpr-conversion -+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type -+ ^ -+ -+The error message does not make it clear in the context of which enum -+flag this fails (i.e. what is T in this context), but it doesn't really -+matter, we have similar warning/errors for many of them, if we let the -+build go through. -+ -+clang is right that the value -1 is invalid for the enum type we cast -1 -+to. However, we do need this expression in order to select an integer -+type with the appropriate signedness. That is, with the same signedness -+as the underlying type of the enum. -+ -+I first wondered if that was really needed, if we couldn't use -+std::underlying_type for that. It turns out that the comment just above -+says: -+ -+ /* Note that std::underlying_type<enum_type> is not what we want here, -+ since that returns unsigned int even when the enum decays to signed -+ int. */ -+ -+I was surprised, because std::is_signed<std::underlying_type<enum_type>> -+returns the right thing. So I tried replacing all this with -+std::underlying_type, see if that would work. Doing so causes some -+build failures in unittests/enum-flags-selftests.c: -+ -+ CXX unittests/enum-flags-selftests.o -+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is_same<selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<s -+ elftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selftests::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_fla -+ gs_tests::URE, int>, selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<selftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selfte -+ sts::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_flags_tests::URE, unsigned int>>::value == true': -+ CHECK_VALID (true, int, true ? EF () : EF2 ()) -+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:91:3: note: expanded from macro 'CHECK_VALID' -+ CHECK_VALID_EXPR_6 (EF, RE, EF2, RE2, UEF, URE, VALID, EXPR_TYPE, EXPR) -+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:105:3: note: expanded from macro 'CHECK_VALID_EXPR_6' -+ CHECK_VALID_EXPR_INT (ESC_PARENS (typename T1, typename T2, \ -+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:66:3: note: expanded from macro 'CHECK_VALID_EXPR_INT' -+ static_assert (gdb::is_detected_exact<archetype<TYPES, EXPR_TYPE>, \ -+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+ -+This is a bit hard to decode, but basically enumerations have the -+following funny property that they decay into a signed int, even if -+their implicit underlying type is unsigned. This code: -+ -+ enum A {}; -+ enum B {}; -+ -+ int main() { -+ std::cout << std::is_signed<std::underlying_type<A>::type>::value -+ << std::endl; -+ std::cout << std::is_signed<std::underlying_type<B>::type>::value -+ << std::endl; -+ auto result = true ? A() : B(); -+ std::cout << std::is_signed<decltype(result)>::value << std::endl; -+ } -+ -+produces: -+ -+ 0 -+ 0 -+ 1 -+ -+So, the "CHECK_VALID" above checks that this property works for enum flags the -+same way as it would if you were using their underlying enum types. And -+somehow, changing integer_for_size to use std::underlying_type breaks that. -+ -+Since the current code does what we want, and I don't see any way of doing it -+differently, ignore -Wenum-constexpr-conversion around it. -+ -+Change-Id: Ibc82ae7bbdb812102ae3f1dd099fc859dc6f3cc2 -+--- -+ gdb-10.2.patch | 44 ++++++++++++++++++++++++++++++++++++++++++++ -+ 1 file changed, 44 insertions(+) -+ -+diff --git a/gdb-10.2.patch b/gdb-10.2.patch -+index d81030d..ee96c03 100644 -+--- a/gdb-10.2.patch -++++ b/gdb-10.2.patch -+@@ -3187,3 +3187,47 @@ exit 0 -+ result = stringtab + symbol_entry->_n._n_n._n_offset; -+ } -+ else -++ -++--- gdb-10.2/gdbsupport/enum-flags.h.orig -+++++ gdb-10.2/gdbsupport/enum-flags.h -++@@ -81,9 +81,12 @@ -++ template<typename T> -++ struct enum_underlying_type -++ { -+++ DIAGNOSTIC_PUSH -+++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION -++ typedef typename -++ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type -++ type; -+++ DIAGNOSTIC_POP -++ }; -++ -++ template <typename E> -++ -++--- gdb-10.2/include/diagnostics.h.orig -+++++ gdb-10.2/include/diagnostics.h -++@@ -61,6 +61,24 @@ -++ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \ -++ DIAGNOSTIC_IGNORE ("-Wformat-nonliteral") -++ -+++# if __has_warning ("-Wuser-defined-warnings") -+++# define DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS \ -+++ DIAGNOSTIC_IGNORE ("-Wuser-defined-warnings") -+++# endif -+++ -+++# if __has_warning ("-Wunused-but-set-variable") -+++# define DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE \ -+++ DIAGNOSTIC_IGNORE ("-Wunused-but-set-variable") -+++# endif -+++ -+++# define DIAGNOSTIC_ERROR_SWITCH \ -+++ DIAGNOSTIC_ERROR ("-Wswitch") -+++ -+++# if __has_warning ("-Wenum-constexpr-conversion") -+++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \ -+++ DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion") -+++# endif -+++ -++ #elif defined (__GNUC__) /* GCC */ -++ -++ # if __GNUC__ >= 7 -+\ No newline at end of file -+-- -+2.43.0 -+ -diff --git a/gdb-10.2.patch b/gdb-10.2.patch -index d81030d..ee96c03 100644 ---- a/gdb-10.2.patch -+++ b/gdb-10.2.patch -@@ -3187,3 +3187,47 @@ exit 0 - result = stringtab + symbol_entry->_n._n_n._n_offset; - } - else -+ -+--- gdb-10.2/gdbsupport/enum-flags.h.orig -++++ gdb-10.2/gdbsupport/enum-flags.h -+@@ -81,9 +81,12 @@ -+ template<typename T> -+ struct enum_underlying_type -+ { -++ DIAGNOSTIC_PUSH -++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION -+ typedef typename -+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type -+ type; -++ DIAGNOSTIC_POP -+ }; -+ -+ template <typename E> -+ -+--- gdb-10.2/include/diagnostics.h.orig -++++ gdb-10.2/include/diagnostics.h -+@@ -61,6 +61,24 @@ -+ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \ -+ DIAGNOSTIC_IGNORE ("-Wformat-nonliteral") -+ -++# if __has_warning ("-Wuser-defined-warnings") -++# define DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS \ -++ DIAGNOSTIC_IGNORE ("-Wuser-defined-warnings") -++# endif -++
View file
_service:tar_scm:0004-support-vmp_area_list-replaced-with-VMALLOC_START.patch
Added
@@ -0,0 +1,38 @@ +From 1fd01b81fc1d7ba1a0dde4bfd10e6ad9189e8376 Mon Sep 17 00:00:00 2001 +From: zhangzikang <zhangzikang@kylinos.cn> +Date: Fri, 16 Aug 2024 14:45:33 +0800 +Subject: PATCH support vmp_area_list replaced with VMALLOC_START + +--- + memory.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/memory.c b/memory.c +index 86ccec5..c3c18a2 100644 +--- a/memory.c ++++ b/memory.c +@@ -17218,11 +17218,20 @@ first_vmalloc_address(void) + { + static ulong vmalloc_start = 0; + ulong vm_struct, vmap_area; ++ char *vmalloc_start_string; + + if (DUMPFILE() && vmalloc_start) + return vmalloc_start; + +- if (vt->flags & USE_VMAP_AREA) { ++ /* ++ * 'vmap_area_list' and 'vmlist' in Linux 6.9 and later kernels might be ++ * empty, prefer NUMBER(VMALLOC_START) if exported in vmcoreinfo. ++ */ ++ vmalloc_start_string = pc->read_vmcoreinfo("NUMBER(VMALLOC_START)"); ++ if (vmalloc_start_string) { ++ vmalloc_start = htol(vmalloc_start_string, QUIET, NULL); ++ free(vmalloc_start_string); ++ }else if (vt->flags & USE_VMAP_AREA) { + get_symbol_data("vmap_area_list", sizeof(void *), &vmap_area); + if (!vmap_area) + return 0; +-- +2.43.0 +
View file
_service:tar_scm:0005-gdb-ignore-Wenum-constexpr-conversion-in-enum-flags.patch
Added
@@ -0,0 +1,85 @@ +From a860b55b77720be43d4c30efea94d2cad55941cb Mon Sep 17 00:00:00 2001 +From: yanying <201250106@smail.nju.edu.cn> +Date: Sat, 7 Sep 2024 00:10:53 +0800 +Subject: PATCH hh + +--- + gdb-10.2.patch | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 65 insertions(+) + +diff --git a/gdb-10.2.patch b/gdb-10.2.patch +index d81030d..ea2d705 100644 +--- a/gdb-10.2.patch ++++ b/gdb-10.2.patch +@@ -3187,3 +3187,68 @@ exit 0 + result = stringtab + symbol_entry->_n._n_n._n_offset; + } + else ++--- gdb-10.2/gdbsupport/enum-flags.h.orig +++++ gdb-10.2/gdbsupport/enum-flags.h ++@@ -81,9 +81,12 @@ ++ template<typename T> ++ struct enum_underlying_type ++ { +++ DIAGNOSTIC_PUSH +++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION ++ typedef typename ++ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type ++ type; +++ DIAGNOSTIC_POP ++ }; ++ ++ template <typename E> ++ ++--- gdb-10.2/include/diagnostics.h.orig +++++ gdb-10.2/include/diagnostics.h ++@@ -61,6 +61,24 @@ ++ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \ ++ DIAGNOSTIC_IGNORE ("-Wformat-nonliteral") ++ +++# if __has_warning ("-Wuser-defined-warnings") +++# define DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS \ +++ DIAGNOSTIC_IGNORE ("-Wuser-defined-warnings") +++# endif +++ +++# if __has_warning ("-Wunused-but-set-variable") +++# define DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE \ +++ DIAGNOSTIC_IGNORE ("-Wunused-but-set-variable") +++# endif +++ +++# define DIAGNOSTIC_ERROR_SWITCH \ +++ DIAGNOSTIC_ERROR ("-Wswitch") +++ +++# if __has_warning ("-Wenum-constexpr-conversion") +++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \ +++ DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion") +++# endif +++ ++ #elif defined (__GNUC__) /* GCC */ ++ ++ # if __GNUC__ >= 7 ++@@ -100,4 +118,20 @@ ++ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL ++ #endif ++ +++#ifndef DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS +++# define DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS +++#endif +++ +++#ifndef DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE +++# define DIAGNOSTIC_IGNORE_UNUSED_BUT_SET_VARIABLE +++#endif +++ +++#ifndef DIAGNOSTIC_ERROR_SWITCH +++# define DIAGNOSTIC_ERROR_SWITCH +++#endif +++ +++#ifndef DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION +++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION +++#endif +++ ++ #endif /* DIAGNOSTICS_H */ ++ +-- +2.41.0.windows.1 +
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="tar_scm"> <param name="scm">git</param> <param name="url">git@gitee.com:yanyir/crash.git</param> - <param name="revision">openEuler-24.03-LTS-yy</param> + <param name="revision">openEuler-24.03-LTS-yy1</param> <param name="exclude">*</param> <param name="extract">*</param> </service>
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2