aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2024-10-19 20:09:06 +0800
committerTing-Wei Lan <lantw44@gmail.com>2024-10-19 20:09:06 +0800
commit22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b (patch)
tree7bc04f18ca69e187160be42b1dffc3740f09b77a
parent5005940d41c892a02aec692e407f4c38fd16d8f2 (diff)
downloadcopr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar.gz
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar.bz2
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar.lz
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar.xz
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.tar.zst
copr-rpm-spec-22d75e670565d7f90d6a3a450d5b8b8d2a2ec86b.zip
arm-linux-gnueabi-toolchain: Fix Binutils build for Fedora 41 and later
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec9
-rw-r--r--arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/binutils-gprofng-Link-dbe_memmgr.o-directly.patch156
2 files changed, 164 insertions, 1 deletions
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
index e24e412..7c6bede 100644
--- a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/arm-linux-gnueabi-binutils.spec
@@ -8,13 +8,17 @@
Name: %{cross_triplet}-binutils
Version: 2.43.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A GNU collection of binary utilities (%{cross_triplet})
License: GPLv3+
URL: https://www.gnu.org/software/binutils
Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz
+# https://sourceware.org/bugzilla/show_bug.cgi?id=32241
+# https://sourceware.org/bugzilla/attachment.cgi?id=15731
+Patch0: binutils-gprofng-Link-dbe_memmgr.o-directly.patch
+
BuildRequires: gcc, gcc-c++
BuildRequires: texinfo, gettext, flex, bison, jansson-devel, zlib-devel
BuildRequires: %{cross_triplet}-filesystem
@@ -124,6 +128,9 @@ rmdir %{buildroot}%{_sysconfdir}
%changelog
+* Sat Oct 19 2024 Ting-Wei Lan <lantw44@gmail.com> - 2.43.1-2
+- Fix gprofng build for Fedora 41 and later
+
* Mon Sep 30 2024 Ting-Wei Lan <lantw44@gmail.com> - 2.43.1-1
- Update to 2.43.1
diff --git a/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/binutils-gprofng-Link-dbe_memmgr.o-directly.patch b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/binutils-gprofng-Link-dbe_memmgr.o-directly.patch
new file mode 100644
index 0000000..0c8f197
--- /dev/null
+++ b/arm-linux-gnueabi-toolchain/arm-linux-gnueabi-binutils/binutils-gprofng-Link-dbe_memmgr.o-directly.patch
@@ -0,0 +1,156 @@
+From 9a4c0a8e0160fadce4a578c80eb762b33563859c Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Sun, 6 Oct 2024 14:36:17 +0800
+Subject: [PATCH] gprofng: Link dbe_memmgr.o directly
+
+Since malloc wrappers don't work if they are placed in an archive:
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=32242
+
+link dbe_memmgr.o directly into gprofng program.
+
+ PR gprofng/32241
+ * src/Makefile.am (CSOURCES): Remove dbe_memmgr.c.
+ (gp_archive_SOURCES): Add dbe_memmgr.c.
+ (gp_collect_app_SOURCES): Likewise.
+ (gprofng_SOURCES): Likewise.
+ (gp_display_src_SOURCES): Likewise.
+ (gp_display_text_SOURCES): Likewise.
+
+Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
+---
+ gprofng/src/Makefile.am | 14 ++++++++------
+ gprofng/src/Makefile.in | 31 ++++++++++++++++++-------------
+ 2 files changed, 26 insertions(+), 19 deletions(-)
+
+diff --git a/gprofng/src/Makefile.am b/gprofng/src/Makefile.am
+index fb4b8a0fafa..51aefd042ca 100644
+--- a/gprofng/src/Makefile.am
++++ b/gprofng/src/Makefile.am
+@@ -92,7 +92,6 @@ CSOURCES = \
+ dbe_hwcdrv.c \
+ dbe_hwcfuncs.c \
+ dbe_hwctable.c \
+- dbe_memmgr.c \
+ gethrtime.c \
+ $(NULL)
+
+@@ -155,19 +154,22 @@ dbe_DATA = $(srcdir)/gprofng.rc
+
+ bin_PROGRAMS = gp-archive gp-collect-app gprofng gp-display-text gp-display-src
+
+-gp_archive_SOURCES = gp-archive.cc ArchiveExp.cc
++# NB: Don't put dbe_memmgr.o in libgprofng.a since malloc wrappers don't
++# work if they are placed in an archive. See:
++# https://sourceware.org/bugzilla/show_bug.cgi?id=32242
++gp_archive_SOURCES = gp-archive.cc ArchiveExp.cc dbe_memmgr.c
+ gp_archive_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+
+-gp_collect_app_SOURCES = gp-collect-app.cc checks.cc envsets.cc count.cc
++gp_collect_app_SOURCES = gp-collect-app.cc checks.cc envsets.cc count.cc dbe_memmgr.c
+ gp_collect_app_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+
+-gprofng_SOURCES = gprofng.cc
++gprofng_SOURCES = gprofng.cc dbe_memmgr.c
+ gprofng_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+
+-gp_display_src_SOURCES = gp-display-src.cc
++gp_display_src_SOURCES = gp-display-src.cc dbe_memmgr.c
+ gp_display_src_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+
+-gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc
++gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc dbe_memmgr.c
+ gp_display_text_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+
+ # Distribution involves building the binaries to generate the manpage,
+diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
+index cef4b275305..4572c0b4726 100644
+--- a/gprofng/src/Makefile.in
++++ b/gprofng/src/Makefile.in
+@@ -178,7 +178,7 @@ am__objects_1 = Application.lo BaseMetric.lo BaseMetricTreeNode.lo \
+ QLParser.tab.lo dbe_collctrl.lo i18n.lo parse.lo UserLabel.lo \
+ util.lo Dbe.lo
+ am__objects_2 = dbe_hwcdrv.lo dbe_hwcfuncs.lo dbe_hwctable.lo \
+- dbe_memmgr.lo gethrtime.lo
++ gethrtime.lo
+ am_libgprofng_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+ libgprofng_la_OBJECTS = $(am_libgprofng_la_OBJECTS)
+ AM_V_lt = $(am__v_lt_@AM_V@)
+@@ -190,25 +190,27 @@ libgprofng_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(libgprofng_la_LDFLAGS) $(LDFLAGS) \
+ -o $@
+ PROGRAMS = $(bin_PROGRAMS)
+-am_gp_archive_OBJECTS = gp-archive.$(OBJEXT) ArchiveExp.$(OBJEXT)
++am_gp_archive_OBJECTS = gp-archive.$(OBJEXT) ArchiveExp.$(OBJEXT) \
++ dbe_memmgr.$(OBJEXT)
+ gp_archive_OBJECTS = $(am_gp_archive_OBJECTS)
+ gp_archive_DEPENDENCIES = $(LIBGPROFNG) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+ am_gp_collect_app_OBJECTS = gp-collect-app.$(OBJEXT) checks.$(OBJEXT) \
+- envsets.$(OBJEXT) count.$(OBJEXT)
++ envsets.$(OBJEXT) count.$(OBJEXT) dbe_memmgr.$(OBJEXT)
+ gp_collect_app_OBJECTS = $(am_gp_collect_app_OBJECTS)
+ gp_collect_app_DEPENDENCIES = $(LIBGPROFNG) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+-am_gp_display_src_OBJECTS = gp-display-src.$(OBJEXT)
++am_gp_display_src_OBJECTS = gp-display-src.$(OBJEXT) \
++ dbe_memmgr.$(OBJEXT)
+ gp_display_src_OBJECTS = $(am_gp_display_src_OBJECTS)
+ gp_display_src_DEPENDENCIES = $(LIBGPROFNG) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+ am_gp_display_text_OBJECTS = gp-display-text.$(OBJEXT) ipc.$(OBJEXT) \
+- ipcio.$(OBJEXT)
++ ipcio.$(OBJEXT) dbe_memmgr.$(OBJEXT)
+ gp_display_text_OBJECTS = $(am_gp_display_text_OBJECTS)
+ gp_display_text_DEPENDENCIES = $(LIBGPROFNG) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+-am_gprofng_OBJECTS = gprofng.$(OBJEXT)
++am_gprofng_OBJECTS = gprofng.$(OBJEXT) dbe_memmgr.$(OBJEXT)
+ gprofng_OBJECTS = $(am_gprofng_OBJECTS)
+ gprofng_DEPENDENCIES = $(LIBGPROFNG) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+@@ -519,7 +521,6 @@ CSOURCES = \
+ dbe_hwcdrv.c \
+ dbe_hwcfuncs.c \
+ dbe_hwctable.c \
+- dbe_memmgr.c \
+ gethrtime.c \
+ $(NULL)
+
+@@ -559,15 +560,19 @@ libgprofng_la_LIBADD = $(top_builddir)/../opcodes/libopcodes.la \
+
+ dbedir = $(SYSCONFDIR)
+ dbe_DATA = $(srcdir)/gprofng.rc
+-gp_archive_SOURCES = gp-archive.cc ArchiveExp.cc
++
++# NB: Don't put dbe_memmgr.o in libgprofng.a since malloc wrappers don't
++# work if they are placed in an archive. See:
++# https://sourceware.org/bugzilla/show_bug.cgi?id=32242
++gp_archive_SOURCES = gp-archive.cc ArchiveExp.cc dbe_memmgr.c
+ gp_archive_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+-gp_collect_app_SOURCES = gp-collect-app.cc checks.cc envsets.cc count.cc
++gp_collect_app_SOURCES = gp-collect-app.cc checks.cc envsets.cc count.cc dbe_memmgr.c
+ gp_collect_app_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+-gprofng_SOURCES = gprofng.cc
++gprofng_SOURCES = gprofng.cc dbe_memmgr.c
+ gprofng_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+-gp_display_src_SOURCES = gp-display-src.cc
++gp_display_src_SOURCES = gp-display-src.cc dbe_memmgr.c
+ gp_display_src_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+-gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc
++gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc dbe_memmgr.c
+ gp_display_text_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
+ all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+@@ -786,7 +791,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbe_hwcdrv.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbe_hwcfuncs.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbe_hwctable.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbe_memmgr.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbe_memmgr.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/envsets.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethrtime.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gp-archive.Po@am__quote@
+--
+2.46.2
+