* [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) @ 2020-07-25 19:12 Robert Schwebel 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel ` (8 more replies) 0 siblings, 9 replies; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:12 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel The libmount option has changed from boolean to feature, so we need to provide enabled/disabled to meson. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/glib.make | 6 +++--- rules/host-glib.make | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rules/glib.make b/rules/glib.make index f6e68a692..fb8b25bd8 100644 --- a/rules/glib.make +++ b/rules/glib.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_GLIB) += glib # # Paths and names # -GLIB_VERSION := 2.62.2 -GLIB_MD5 := bed3a70397a019965efac0c49f9c8164 +GLIB_VERSION := 2.64.4 +GLIB_MD5 := 0a4f67e9a9d729976e2f797e36fc1a57 GLIB := glib-$(GLIB_VERSION) GLIB_SUFFIX := tar.xz GLIB_SOURCE := $(SRCDIR)/$(GLIB).$(GLIB_SUFFIX) @@ -44,7 +44,7 @@ GLIB_CONF_OPT := \ -Diconv=libc \ -Dinstalled_tests=false \ -Dinternal_pcre=false \ - -Dlibmount=$(call ptx/truefalse, PTXCONF_GLIB_LIBMOUNT) \ + -Dlibmount=$(call ptx/endis, PTXCONF_GLIB_LIBMOUNT)d \ -Dman=false \ -Dnls=disabled \ -Dselinux=disabled \ diff --git a/rules/host-glib.make b/rules/host-glib.make index 443d6577a..49220bbc9 100644 --- a/rules/host-glib.make +++ b/rules/host-glib.make @@ -34,7 +34,7 @@ HOST_GLIB_CONF_OPT := \ -Diconv=libc \ -Dinstalled_tests=false \ -Dinternal_pcre=false \ - -Dlibmount=false \ + -Dlibmount=disabled \ -Dman=false \ -Dnls=disabled \ -Dselinux=disabled \ -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-07-30 13:35 ` Michael Olbrich 2020-07-30 13:37 ` [ptxdist] [PATCH 2/9] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 3/9] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) Robert Schwebel ` (7 subsequent siblings) 8 siblings, 2 replies; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Adapt configure options accordingly. Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, so they don't have to be installed separately any more. See upstream commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/libelf.make | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/rules/libelf.make b/rules/libelf.make index 815ac1205..21cbf3b32 100644 --- a/rules/libelf.make +++ b/rules/libelf.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf # # Paths and names # -LIBELF_VERSION := 0.176 -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 +LIBELF_VERSION := 0.180 +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b LIBELF := elfutils-$(LIBELF_VERSION) LIBELF_SUFFIX := tar.bz2 LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ --disable-gcov \ --disable-sanitize-undefined \ --disable-valgrind \ + --disable-valgrind-annotations \ --disable-tests-rpath \ - --enable-libebl-subdir=elfutils \ --enable-textrelcheck \ --enable-symbol-versioning \ --disable-nls \ + --disable-debuginfod \ + --without-valgrind \ --with-zlib \ --without-bzlib \ --without-lzma \ @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: ifdef PTXCONF_LIBELF_LIBDW @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) - @$(call install_lib, libelf, 0, 0, 0644, \ - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) endif ifdef PTXCONF_LIBELF_LIBASM -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel @ 2020-07-30 13:35 ` Michael Olbrich 2020-07-30 14:54 ` [ptxdist] [PATCHv2] " Robert Schwebel 2020-07-30 13:37 ` [ptxdist] [PATCH 2/9] " Michael Olbrich 1 sibling, 1 reply; 26+ messages in thread From: Michael Olbrich @ 2020-07-30 13:35 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel On Sat, Jul 25, 2020 at 09:13:00PM +0200, Robert Schwebel wrote: > Adapt configure options accordingly. > > Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, > so they don't have to be installed separately any more. See upstream > commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > --- > rules/libelf.make | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/rules/libelf.make b/rules/libelf.make > index 815ac1205..21cbf3b32 100644 > --- a/rules/libelf.make > +++ b/rules/libelf.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf > # > # Paths and names > # > -LIBELF_VERSION := 0.176 > -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 > +LIBELF_VERSION := 0.180 > +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b > LIBELF := elfutils-$(LIBELF_VERSION) > LIBELF_SUFFIX := tar.bz2 > LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) > @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ > --disable-gcov \ > --disable-sanitize-undefined \ > --disable-valgrind \ > + --disable-valgrind-annotations \ > --disable-tests-rpath \ > - --enable-libebl-subdir=elfutils \ > --enable-textrelcheck \ > --enable-symbol-versioning \ > --disable-nls \ > + --disable-debuginfod \ > + --without-valgrind \ Configure options of host-libelf must be updated as well. > --with-zlib \ > --without-bzlib \ > --without-lzma \ > @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: > > ifdef PTXCONF_LIBELF_LIBDW > @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) > - @$(call install_lib, libelf, 0, 0, 0644, \ > - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) > - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ > - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) > endif > > ifdef PTXCONF_LIBELF_LIBASM > -- > 2.27.0 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCHv2] libelf: version bump 0.176 -> 0.180 2020-07-30 13:35 ` Michael Olbrich @ 2020-07-30 14:54 ` Robert Schwebel 0 siblings, 0 replies; 26+ messages in thread From: Robert Schwebel @ 2020-07-30 14:54 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Adapt configure options accordingly. Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, so they don't have to be installed separately any more. See upstream commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/host-libelf.make | 4 +++- rules/libelf.make | 12 +++++------- 2 files changed, 8 insertions(+), 8 deletions(-) Changes in v2: * add configure options for host-libelf as well diff --git a/rules/host-libelf.make b/rules/host-libelf.make index 7a319b9f3..25ff97259 100644 --- a/rules/host-libelf.make +++ b/rules/host-libelf.make @@ -28,11 +28,13 @@ HOST_LIBELF_CONF_OPT := \ --disable-gcov \ --disable-sanitize-undefined \ --disable-valgrind \ + --disable-valgrind-annotations \ --disable-tests-rpath \ - --enable-libebl-subdir=elfutils \ --enable-textrelcheck \ --enable-symbol-versioning \ --disable-nls \ + --disable-debuginfod \ + --without-valgrind \ --with-zlib \ --without-bzlib \ --without-lzma \ diff --git a/rules/libelf.make b/rules/libelf.make index 815ac1205..21cbf3b32 100644 --- a/rules/libelf.make +++ b/rules/libelf.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf # # Paths and names # -LIBELF_VERSION := 0.176 -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 +LIBELF_VERSION := 0.180 +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b LIBELF := elfutils-$(LIBELF_VERSION) LIBELF_SUFFIX := tar.bz2 LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ --disable-gcov \ --disable-sanitize-undefined \ --disable-valgrind \ + --disable-valgrind-annotations \ --disable-tests-rpath \ - --enable-libebl-subdir=elfutils \ --enable-textrelcheck \ --enable-symbol-versioning \ --disable-nls \ + --disable-debuginfod \ + --without-valgrind \ --with-zlib \ --without-bzlib \ --without-lzma \ @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: ifdef PTXCONF_LIBELF_LIBDW @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) - @$(call install_lib, libelf, 0, 0, 0644, \ - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) endif ifdef PTXCONF_LIBELF_LIBASM -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel 2020-07-30 13:35 ` Michael Olbrich @ 2020-07-30 13:37 ` Michael Olbrich 2020-07-30 14:52 ` Robert Schwebel 1 sibling, 1 reply; 26+ messages in thread From: Michael Olbrich @ 2020-07-30 13:37 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel On Sat, Jul 25, 2020 at 09:13:00PM +0200, Robert Schwebel wrote: > Adapt configure options accordingly. > > Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, > so they don't have to be installed separately any more. See upstream > commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> There are patches for the old version. Michael > --- > rules/libelf.make | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/rules/libelf.make b/rules/libelf.make > index 815ac1205..21cbf3b32 100644 > --- a/rules/libelf.make > +++ b/rules/libelf.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf > # > # Paths and names > # > -LIBELF_VERSION := 0.176 > -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 > +LIBELF_VERSION := 0.180 > +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b > LIBELF := elfutils-$(LIBELF_VERSION) > LIBELF_SUFFIX := tar.bz2 > LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) > @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ > --disable-gcov \ > --disable-sanitize-undefined \ > --disable-valgrind \ > + --disable-valgrind-annotations \ > --disable-tests-rpath \ > - --enable-libebl-subdir=elfutils \ > --enable-textrelcheck \ > --enable-symbol-versioning \ > --disable-nls \ > + --disable-debuginfod \ > + --without-valgrind \ > --with-zlib \ > --without-bzlib \ > --without-lzma \ > @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: > > ifdef PTXCONF_LIBELF_LIBDW > @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) > - @$(call install_lib, libelf, 0, 0, 0644, \ > - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) > - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ > - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) > endif > > ifdef PTXCONF_LIBELF_LIBASM > -- > 2.27.0 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 2020-07-30 13:37 ` [ptxdist] [PATCH 2/9] " Michael Olbrich @ 2020-07-30 14:52 ` Robert Schwebel 2020-07-30 17:59 ` Michael Olbrich 0 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-30 14:52 UTC (permalink / raw) To: ptxdist On Thu, Jul 30, 2020 at 03:37:08PM +0200, Michael Olbrich wrote: > On Sat, Jul 25, 2020 at 09:13:00PM +0200, Robert Schwebel wrote: > > Adapt configure options accordingly. > > > > Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, > > so they don't have to be installed separately any more. See upstream > > commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. > > > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > > There are patches for the old version. Are you sure? For libelf? rsc -- Pengutronix e.K. | Dipl.-Ing. Robert Schwebel | Steuerwalder Str. 21 | https://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 2020-07-30 14:52 ` Robert Schwebel @ 2020-07-30 17:59 ` Michael Olbrich 2020-07-30 19:00 ` [ptxdist] [PATCHv3] " Robert Schwebel 0 siblings, 1 reply; 26+ messages in thread From: Michael Olbrich @ 2020-07-30 17:59 UTC (permalink / raw) To: ptxdist On Thu, Jul 30, 2020 at 04:52:45PM +0200, Robert Schwebel wrote: > On Thu, Jul 30, 2020 at 03:37:08PM +0200, Michael Olbrich wrote: > > On Sat, Jul 25, 2020 at 09:13:00PM +0200, Robert Schwebel wrote: > > > Adapt configure options accordingly. > > > > > > Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, > > > so they don't have to be installed separately any more. See upstream > > > commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. > > > > > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > > > > There are patches for the old version. > > Are you sure? For libelf? patches/elfutils-0.176/ Michael -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCHv3] libelf: version bump 0.176 -> 0.180 2020-07-30 17:59 ` Michael Olbrich @ 2020-07-30 19:00 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 0 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-30 19:00 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Adapt configure options accordingly. Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, so they don't have to be installed separately any more. See upstream commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. The old patch series was ported from debian; most of the patches have been applied upstream; from the new debian patch series for 0.180-1, only the -Werror patch seems relevant to me, so I leave it inside. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- .../elfutils-0.176/0001-hppa_backend.patch | 831 ------------------ patches/elfutils-0.176/0002-arm_backend.patch | 620 ------------- .../elfutils-0.176/0003-mips_backend.patch | 712 --------------- ...f-w-output-debug-information-on-mips.patch | 29 - ...ces-between-mips-machine-identifiers.patch | 34 - ...ort-for-mips64-abis-in-mips_retval.c.patch | 168 ---- ...-Add-mips-n64-relocation-format-hack.patch | 229 ----- patches/elfutils-0.176/0009-mips_cfi.patch | 125 --- patches/elfutils-0.176/series | 12 - ...-it-tends-to-break-with-new-gcc-ver.patch} | 20 +- .../autogen.sh | 0 patches/elfutils-0.180/series | 4 + rules/host-libelf.make | 4 +- rules/libelf.make | 12 +- 14 files changed, 26 insertions(+), 2774 deletions(-) delete mode 100644 patches/elfutils-0.176/0001-hppa_backend.patch delete mode 100644 patches/elfutils-0.176/0002-arm_backend.patch delete mode 100644 patches/elfutils-0.176/0003-mips_backend.patch delete mode 100644 patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch delete mode 100644 patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch delete mode 100644 patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch delete mode 100644 patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch delete mode 100644 patches/elfutils-0.176/0009-mips_cfi.patch delete mode 100644 patches/elfutils-0.176/series rename patches/{elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch => elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch} (51%) rename patches/{elfutils-0.176 => elfutils-0.180}/autogen.sh (100%) create mode 100644 patches/elfutils-0.180/series Changes in v3: * remove old patches, leave only 0001 Changes in v2: * add configure options for host-libelf as well diff --git a/patches/elfutils-0.176/0001-hppa_backend.patch b/patches/elfutils-0.176/0001-hppa_backend.patch deleted file mode 100644 index dcb4f1eeb..000000000 --- a/patches/elfutils-0.176/0001-hppa_backend.patch +++ /dev/null @@ -1,831 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Mon, 4 Mar 2019 13:20:35 +0100 -Subject: [PATCH] hppa_backend - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/Makefile.am | 8 +- - backends/libebl_parisc.h | 9 ++ - backends/parisc_init.c | 73 ++++++++++++++++ - backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++++++++ - backends/parisc_reloc.def | 128 ++++++++++++++++++++++++++++ - backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++++++++++ - backends/parisc_symbol.c | 113 ++++++++++++++++++++++++ - libelf/elf.h | 11 +++ - 8 files changed, 712 insertions(+), 2 deletions(-) - create mode 100644 backends/libebl_parisc.h - create mode 100644 backends/parisc_init.c - create mode 100644 backends/parisc_regs.c - create mode 100644 backends/parisc_reloc.def - create mode 100644 backends/parisc_retval.c - create mode 100644 backends/parisc_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 2126a2eca42e..5671a32c4210 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -33,12 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv -+ tilegx m68k bpf riscv parisc - libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ - libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ - libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ - libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ -- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a -+ libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ -+ libebl_parisc_pic.a - noinst_LIBRARIES = $(libebl_pic) - noinst_DATA = $(libebl_pic:_pic.a=.so) - -@@ -136,6 +137,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - libebl_riscv_pic_a_SOURCES = $(riscv_SRCS) - am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os) - -+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c -+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) -+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) - - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) - @rm -f $(@:.so=.map) -diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h -new file mode 100644 -index 000000000000..f473b793e533 ---- /dev/null -+++ b/backends/libebl_parisc.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_HPPA_H -+#define _LIBEBL_HPPA_H 1 -+ -+#include <libdw.h> -+ -+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp); -+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/backends/parisc_init.c b/backends/parisc_init.c -new file mode 100644 -index 000000000000..f1e401cfe1d2 ---- /dev/null -+++ b/backends/parisc_init.c -@@ -0,0 +1,73 @@ -+/* Initialization of PA-RISC specific backend library. -+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#define BACKEND parisc_ -+#define RELOC_PREFIX R_PARISC_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* This defines the common reloc hooks based on parisc_reloc.def. */ -+#include "common-reloc.c" -+ -+ -+const char * -+parisc_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ int pa64 = 0; -+ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE)) -+ pa64 = 1; -+ } -+ /* We handle it. */ -+ eh->name = "PA-RISC"; -+ parisc_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, machine_flag_check); -+ HOOK (eh, symbol_type_name); -+ HOOK (eh, segment_type_name); -+ HOOK (eh, section_type_name); -+ HOOK (eh, register_info); -+ if (pa64) -+ eh->return_value_location = parisc_return_value_location_64; -+ else -+ eh->return_value_location = parisc_return_value_location_32; -+ -+ return MODVERSION; -+} -diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c -new file mode 100644 -index 000000000000..3895f8eb00b6 ---- /dev/null -+++ b/backends/parisc_regs.c -@@ -0,0 +1,159 @@ -+/* Register names and numbers for PA-RISC DWARF. -+ Copyright (C) 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <dwarf.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+ssize_t -+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ int pa64 = 0; -+ -+ if (ebl->elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); -+ if (ehdr->e_flags & EF_PARISC_WIDE) -+ pa64 = 1; -+ } -+ -+ int nregs = pa64 ? 127 : 128; -+ -+ if (name == NULL) -+ return nregs; -+ -+ if (regno < 0 || regno >= nregs || namelen < 6) -+ return -1; -+ -+ *prefix = "%"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ else if (regno == 32) -+ { -+ *setname = "special"; -+ if (pa64) -+ { -+ *bits = 6; -+ } -+ else -+ { -+ *bits = 5; -+ } -+ *type = DW_ATE_unsigned; -+ } -+ else -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ -+ if (regno < 33) { -+ switch (regno) -+ { -+ case 0 ... 9: -+ name[0] = 'r'; -+ name[1] = regno + '0'; -+ namelen = 2; -+ break; -+ case 10 ... 31: -+ name[0] = 'r'; -+ name[1] = regno / 10 + '0'; -+ name[2] = regno % 10 + '0'; -+ namelen = 3; -+ break; -+ case 32: -+ *prefix = NULL; -+ name[0] = 'S'; -+ name[1] = 'A'; -+ name[2] = 'R'; -+ namelen = 3; -+ break; -+ } -+ } -+ else { -+ if (pa64 && ((regno - 72) % 2)) { -+ *setname = NULL; -+ return 0; -+ } -+ -+ switch (regno) -+ { -+ case 72 + 0 ... 72 + 11: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 + '0'; -+ namelen = 3; -+ if ((regno + 8 - 72) % 2) { -+ name[3] = 'R'; -+ namelen++; -+ } -+ break; -+ case 72 + 12 ... 72 + 55: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 / 10 + '0'; -+ name[3] = (regno + 8 - 72) / 2 % 10 + '0'; -+ namelen = 4; -+ if ((regno + 8 - 72) % 2) { -+ name[4] = 'R'; -+ namelen++; -+ } -+ break; -+ default: -+ *setname = NULL; -+ return 0; -+ } -+ } -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def -new file mode 100644 -index 000000000000..1f875bab33a0 ---- /dev/null -+++ b/backends/parisc_reloc.def -@@ -0,0 +1,128 @@ -+/* List the relocation types for PA-RISC. -*- C -*- -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, EXEC|DYN) -+RELOC_TYPE (DIR32, REL|EXEC|DYN) -+RELOC_TYPE (DIR21L, REL|EXEC|DYN) -+RELOC_TYPE (DIR17R, REL) -+RELOC_TYPE (DIR17F, REL) -+RELOC_TYPE (DIR14R, REL|DYN) -+RELOC_TYPE (PCREL32, REL) -+RELOC_TYPE (PCREL21L, REL) -+RELOC_TYPE (PCREL17R, REL) -+RELOC_TYPE (PCREL17F, REL) -+RELOC_TYPE (PCREL14R, REL|EXEC) -+RELOC_TYPE (DPREL21L, REL) -+RELOC_TYPE (DPREL14WR, REL) -+RELOC_TYPE (DPREL14DR, REL) -+RELOC_TYPE (DPREL14R, REL) -+RELOC_TYPE (GPREL21L, 0) -+RELOC_TYPE (GPREL14R, 0) -+RELOC_TYPE (LTOFF21L, REL) -+RELOC_TYPE (LTOFF14R, REL) -+RELOC_TYPE (DLTIND14F, 0) -+RELOC_TYPE (SETBASE, 0) -+RELOC_TYPE (SECREL32, REL) -+RELOC_TYPE (BASEREL21L, 0) -+RELOC_TYPE (BASEREL17R, 0) -+RELOC_TYPE (BASEREL14R, 0) -+RELOC_TYPE (SEGBASE, 0) -+RELOC_TYPE (SEGREL32, REL) -+RELOC_TYPE (PLTOFF21L, 0) -+RELOC_TYPE (PLTOFF14R, 0) -+RELOC_TYPE (PLTOFF14F, 0) -+RELOC_TYPE (LTOFF_FPTR32, 0) -+RELOC_TYPE (LTOFF_FPTR21L, 0) -+RELOC_TYPE (LTOFF_FPTR14R, 0) -+RELOC_TYPE (FPTR64, 0) -+RELOC_TYPE (PLABEL32, REL|DYN) -+RELOC_TYPE (PCREL64, 0) -+RELOC_TYPE (PCREL22C, 0) -+RELOC_TYPE (PCREL22F, 0) -+RELOC_TYPE (PCREL14WR, 0) -+RELOC_TYPE (PCREL14DR, 0) -+RELOC_TYPE (PCREL16F, 0) -+RELOC_TYPE (PCREL16WF, 0) -+RELOC_TYPE (PCREL16DF, 0) -+RELOC_TYPE (DIR64, REL|DYN) -+RELOC_TYPE (DIR14WR, REL) -+RELOC_TYPE (DIR14DR, REL) -+RELOC_TYPE (DIR16F, REL) -+RELOC_TYPE (DIR16WF, REL) -+RELOC_TYPE (DIR16DF, REL) -+RELOC_TYPE (GPREL64, 0) -+RELOC_TYPE (GPREL14WR, 0) -+RELOC_TYPE (GPREL14DR, 0) -+RELOC_TYPE (GPREL16F, 0) -+RELOC_TYPE (GPREL16WF, 0) -+RELOC_TYPE (GPREL16DF, 0) -+RELOC_TYPE (LTOFF64, 0) -+RELOC_TYPE (LTOFF14WR, 0) -+RELOC_TYPE (LTOFF14DR, 0) -+RELOC_TYPE (LTOFF16F, 0) -+RELOC_TYPE (LTOFF16WF, 0) -+RELOC_TYPE (LTOFF16DF, 0) -+RELOC_TYPE (SECREL64, 0) -+RELOC_TYPE (BASEREL14WR, 0) -+RELOC_TYPE (BASEREL14DR, 0) -+RELOC_TYPE (SEGREL64, 0) -+RELOC_TYPE (PLTOFF14WR, 0) -+RELOC_TYPE (PLTOFF14DR, 0) -+RELOC_TYPE (PLTOFF16F, 0) -+RELOC_TYPE (PLTOFF16WF, 0) -+RELOC_TYPE (PLTOFF16DF, 0) -+RELOC_TYPE (LTOFF_FPTR64, 0) -+RELOC_TYPE (LTOFF_FPTR14WR, 0) -+RELOC_TYPE (LTOFF_FPTR14DR, 0) -+RELOC_TYPE (LTOFF_FPTR16F, 0) -+RELOC_TYPE (LTOFF_FPTR16WF, 0) -+RELOC_TYPE (LTOFF_FPTR16DF, 0) -+RELOC_TYPE (COPY, EXEC) -+RELOC_TYPE (IPLT, EXEC|DYN) -+RELOC_TYPE (EPLT, 0) -+RELOC_TYPE (TPREL32, DYN) -+RELOC_TYPE (TPREL21L, 0) -+RELOC_TYPE (TPREL14R, 0) -+RELOC_TYPE (LTOFF_TP21L, 0) -+RELOC_TYPE (LTOFF_TP14R, 0) -+RELOC_TYPE (LTOFF_TP14F, 0) -+RELOC_TYPE (TPREL64, 0) -+RELOC_TYPE (TPREL14WR, 0) -+RELOC_TYPE (TPREL14DR, 0) -+RELOC_TYPE (TPREL16F, 0) -+RELOC_TYPE (TPREL16WF, 0) -+RELOC_TYPE (TPREL16DF, 0) -+RELOC_TYPE (LTOFF_TP64, 0) -+RELOC_TYPE (LTOFF_TP14WR, 0) -+RELOC_TYPE (LTOFF_TP14DR, 0) -+RELOC_TYPE (LTOFF_TP16F, 0) -+RELOC_TYPE (LTOFF_TP16WF, 0) -+RELOC_TYPE (LTOFF_TP16DF, 0) -+RELOC_TYPE (TLS_DTPMOD32, DYN) -+RELOC_TYPE (TLS_DTPMOD64, DYN) -+ -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c -new file mode 100644 -index 000000000000..df7ec3a06e85 ---- /dev/null -+++ b/backends/parisc_retval.c -@@ -0,0 +1,213 @@ -+/* Function return value location for Linux/PA-RISC ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <assert.h> -+#include <dwarf.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* %r28, or pair %r28, %r29. */ -+static const Dwarf_Op loc_intreg32[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */ -+static const Dwarf_Op loc_fpreg32[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+#define nloc_fpreg32 2 -+#define nloc_fpregpair32 4 -+ -+/* $fr4 */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, -+ }; -+#define nloc_fpreg 1 -+ -+#if 0 -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. Address of the location is stored -+ in %r28 before function call, but it may be changed by function. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg28 }, -+ }; -+#define nloc_aggregate 1 -+#endif -+ -+static int -+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64) -+{ -+ Dwarf_Word regsize = pa64 ? 8 : 4; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = 4; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if (encoding == DW_ATE_float) -+ { -+ if (pa64) { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ } -+ else { -+ *locp = loc_fpreg32; -+ if (size <= 4) -+ return nloc_fpreg32; -+ else if (size <= 8) -+ return nloc_fpregpair32; -+ } -+ goto aggregate; -+ } -+ } -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: { -+ Dwarf_Word size; -+ if (dwarf_aggregate_size (typedie, &size) != 0) -+ return -1; -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+#if 0 -+ /* there should be some way to know this location... But I do not see it. */ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+#endif -+ /* fall through. */ -+ } -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -+ -+int -+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 0); -+} -+ -+int -+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 1); -+} -+ -diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c -new file mode 100644 -index 000000000000..5754bd8a2384 ---- /dev/null -+++ b/backends/parisc_symbol.c -@@ -0,0 +1,113 @@ -+/* PA-RISC specific symbolic name handling. -+ Copyright (C) 2002, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <elf.h> -+#include <stddef.h> -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+const char * -+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (segment) -+ { -+ case PT_PARISC_ARCHEXT: -+ return "PARISC_ARCHEXT"; -+ case PT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ default: -+ break; -+ } -+ return NULL; -+} -+ -+/* Return symbolic representation of symbol type. */ -+const char * -+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ if (symbol == STT_PARISC_MILLICODE) -+ return "PARISC_MILLI"; -+ return NULL; -+} -+ -+/* Return symbolic representation of section type. */ -+const char * -+parisc_section_type_name (int type, -+ char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case SHT_PARISC_EXT: -+ return "PARISC_EXT"; -+ case SHT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ case SHT_PARISC_DOC: -+ return "PARISC_DOC"; -+ } -+ -+ return NULL; -+} -+ -+/* Check whether machine flags are valid. */ -+bool -+parisc_machine_flag_check (GElf_Word flags) -+{ -+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB | -+ EF_PARISC_WIDE | EF_PARISC_NO_KABP | -+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH)) -+ return 0; -+ -+ GElf_Word arch = flags & EF_PARISC_ARCH; -+ -+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) || -+ (arch == EFA_PARISC_2_0)); -+} -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_PARISC_DIR64: -+ case R_PARISC_SECREL64: -+ return ELF_T_XWORD; -+ case R_PARISC_DIR32: -+ case R_PARISC_SECREL32: -+ return ELF_T_WORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libelf/elf.h b/libelf/elf.h -index 75043bcbf900..631005418650 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2155,16 +2155,24 @@ enum - #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ - #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ - #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ -+#define R_PARISC_DPREL14WR 19 -+#define R_PARISC_DPREL14DR 20 - #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ - #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ - #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ - #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ - #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -+#define R_PARISC_DLTIND14F 39 -+#define R_PARISC_SETBASE 40 - #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -+#define R_PARISC_BASEREL21L 42 -+#define R_PARISC_BASEREL17R 43 -+#define R_PARISC_BASEREL14R 46 - #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ - #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ - #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ - #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -+#define R_PARISC_PLTOFF14F 55 - #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ - #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ - #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -@@ -2173,6 +2181,7 @@ enum - #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ - #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ - #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -+#define R_PARISC_PCREL22C 73 - #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ - #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ - #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -@@ -2198,6 +2207,8 @@ enum - #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ - #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ - #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -+#define R_PARISC_BASEREL14WR 107 -+#define R_PARISC_BASEREL14DR 108 - #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ - #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ - #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ diff --git a/patches/elfutils-0.176/0002-arm_backend.patch b/patches/elfutils-0.176/0002-arm_backend.patch deleted file mode 100644 index 0c19e2968..000000000 --- a/patches/elfutils-0.176/0002-arm_backend.patch +++ /dev/null @@ -1,620 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Mon, 4 Mar 2019 13:20:36 +0100 -Subject: [PATCH] arm_backend - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/arm_init.c | 18 ++++- - backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++ - backends/arm_retval.c | 43 +++++++++++- - backends/libebl_arm.h | 9 +++ - libelf/elf.h | 11 +++ - tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++- - tests/run-allregs.sh | 95 +++++++++++++++++++++++++- - tests/run-readelf-mixed-corenote.sh | 11 ++- - 8 files changed, 400 insertions(+), 12 deletions(-) - create mode 100644 backends/libebl_arm.h - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index f2b1b11ea5bb..1b71f1615e6d 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -35,20 +35,31 @@ - #define RELOC_PREFIX R_ARM_ - #include "libebl_CPU.h" - -+#include "libebl_arm.h" -+ - /* This defines the common reloc hooks based on arm_reloc.def. */ - #include "common-reloc.c" - - - const char * --arm_init (Elf *elf __attribute__ ((unused)), -+arm_init (Elf *elf, - GElf_Half machine __attribute__ ((unused)), - Ebl *eh, - size_t ehlen) - { -+ int soft_float = 0; -+ - /* Check whether the Elf_BH object has a sufficent size. */ - if (ehlen < sizeof (Ebl)) - return NULL; - -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT)) -+ soft_float = 1; -+ } -+ - /* We handle it. */ - eh->name = "ARM"; - arm_init_reloc (eh); -@@ -60,7 +71,10 @@ arm_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, core_note); - HOOK (eh, auxv_info); - HOOK (eh, check_object_attribute); -- HOOK (eh, return_value_location); -+ if (soft_float) -+ eh->return_value_location = arm_return_value_location_soft; -+ else -+ eh->return_value_location = arm_return_value_location_hard; - HOOK (eh, abi_cfi); - HOOK (eh, check_reloc_target_type); - HOOK (eh, symbol_type_name); -diff --git a/backends/arm_regs.c b/backends/arm_regs.c -index a46a4c9982cc..418c93180b31 100644 ---- a/backends/arm_regs.c -+++ b/backends/arm_regs.c -@@ -31,6 +31,7 @@ - #endif - - #include <string.h> -+#include <stdio.h> - #include <dwarf.h> - - #define BACKEND arm_ -@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - break; - - case 16 + 0 ... 16 + 7: -+ /* AADWARF says that there are no registers in that range, -+ * but gcc maps FPA registers here -+ */ - regno += 96 - 16; - FALLTHROUGH; - case 96 + 0 ... 96 + 7: -@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - namelen = 2; - break; - -+ case 64 + 0 ... 64 + 9: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = regno - 64 + '0'; -+ namelen = 2; -+ break; -+ -+ case 64 + 10 ... 64 + 31: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = (regno - 64) / 10 + '0'; -+ name[2] = (regno - 64) % 10 + '0'; -+ namelen = 3; -+ break; -+ -+ case 104 + 0 ... 104 + 7: -+ /* XXX TODO: -+ * This can be either intel wireless MMX general purpose/control -+ * registers or xscale accumulator, which have different usage. -+ * We only have the intel wireless MMX here now. -+ * The name needs to be changed for the xscale accumulator too. */ -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 32; -+ memcpy(name, "wcgr", 4); -+ name[4] = regno - 104 + '0'; -+ namelen = 5; -+ break; -+ -+ case 112 + 0 ... 112 + 9: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = regno - 112 + '0'; -+ namelen = 3; -+ break; -+ -+ case 112 + 10 ... 112 + 15: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = '1'; -+ name[3] = regno - 112 - 10 + '0'; -+ namelen = 4; -+ break; -+ - case 128: -+ *setname = "state"; - *type = DW_ATE_unsigned; - return stpcpy (name, "spsr") + 1 - name; - -+ case 129: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_fiq") + 1 - name; -+ -+ case 130: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_irq") + 1 - name; -+ -+ case 131: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_abt") + 1 - name; -+ -+ case 132: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_und") + 1 - name; -+ -+ case 133: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_svc") + 1 - name; -+ -+ case 144 ... 150: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1; -+ -+ case 151 ... 157: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1; -+ -+ case 158 ... 159: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1; -+ -+ case 160 ... 161: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1; -+ -+ case 162 ... 163: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1; -+ -+ case 164 ... 165: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1; -+ -+ case 192 ... 199: -+ *setname = "MMX"; -+ *bits = 32; -+ *type = DW_ATE_unsigned; -+ name[0] = 'w'; -+ name[1] = 'c'; -+ name[2] = regno - 192 + '0'; -+ namelen = 3; -+ break; -+ - case 256 + 0 ... 256 + 9: -+ /* XXX TODO: Neon also uses those registers and can contain -+ * both float and integers */ - *setname = "VFP"; - *type = DW_ATE_float; - *bits = 64; -diff --git a/backends/arm_retval.c b/backends/arm_retval.c -index 1c28f016b5bc..313e4eb266a3 100644 ---- a/backends/arm_retval.c -+++ b/backends/arm_retval.c -@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] = - #define nloc_intreg 1 - #define nloc_intregs(n) (2 * (n)) - -+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_reg16 }, -+ }; -+#define nloc_fpreg 1 -+ - /* The return value is a structure and is actually stored in stack space - passed in a hidden argument by the caller. But, the compiler - helpfully returns the address of that space in r0. */ -@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] = - #define nloc_aggregate 1 - - --int --arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+static int -+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, -+ int soft_float) - { - /* Start with the function's type, and get the DW_AT_type attribute, - which is the type of the return value. */ -@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - else - return -1; - } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if ((encoding == DW_ATE_float) && !soft_float) -+ { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ goto aggregate; -+ } -+ } - if (size <= 16) - { - intreg: -@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - } - - aggregate: -+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */ - *locp = loc_aggregate; - return nloc_aggregate; - } -@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - DWARF and might be valid. */ - return -2; - } -+ -+/* return location for -mabi=apcs-gnu -msoft-float */ -+int -+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 1); -+} -+ -+/* return location for -mabi=apcs-gnu -mhard-float (current default) */ -+int -+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 0); -+} -+ -diff --git a/backends/libebl_arm.h b/backends/libebl_arm.h -new file mode 100644 -index 000000000000..c00770c2e887 ---- /dev/null -+++ b/backends/libebl_arm.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_ARM_H -+#define _LIBEBL_ARM_H 1 -+ -+#include <libdw.h> -+ -+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp); -+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/libelf/elf.h b/libelf/elf.h -index 631005418650..5dc632b73a3b 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2694,6 +2694,9 @@ enum - #define EF_ARM_EABI_VER4 0x04000000 - #define EF_ARM_EABI_VER5 0x05000000 - -+/* EI_OSABI values */ -+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */ -+ - /* Additional symbol types for Thumb. */ - #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ - #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -@@ -2711,12 +2714,19 @@ enum - - /* Processor specific values for the Phdr p_type field. */ - #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ -+#define PT_ARM_UNWIND PT_ARM_EXIDX - - /* Processor specific values for the Shdr sh_type field. */ - #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ - #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ - #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ - -+/* Processor specific values for the Dyn d_tag field. */ -+#define DT_ARM_RESERVED1 (DT_LOPROC + 0) -+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1) -+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2) -+#define DT_ARM_RESERVED2 (DT_LOPROC + 3) -+#define DT_ARM_NUM 4 - - /* AArch64 relocs. */ - -@@ -3009,6 +3019,7 @@ enum - TLS block (LDR, STR). */ - #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative - to GOT origin (LDR). */ -+/* 112 - 127 private range */ - #define R_ARM_ME_TOO 128 /* Obsolete. */ - #define R_ARM_THM_TLS_DESCSEQ 129 - #define R_ARM_THM_TLS_DESCSEQ16 129 -diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh -index fd89d025a3f6..462d7c58b7cb 100755 ---- a/tests/run-addrcfi.sh -+++ b/tests/run-addrcfi.sh -@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg21 (f5): undefined - FPA reg22 (f6): undefined - FPA reg23 (f7): undefined -+ VFP reg64 (s0): undefined -+ VFP reg65 (s1): undefined -+ VFP reg66 (s2): undefined -+ VFP reg67 (s3): undefined -+ VFP reg68 (s4): undefined -+ VFP reg69 (s5): undefined -+ VFP reg70 (s6): undefined -+ VFP reg71 (s7): undefined -+ VFP reg72 (s8): undefined -+ VFP reg73 (s9): undefined -+ VFP reg74 (s10): undefined -+ VFP reg75 (s11): undefined -+ VFP reg76 (s12): undefined -+ VFP reg77 (s13): undefined -+ VFP reg78 (s14): undefined -+ VFP reg79 (s15): undefined -+ VFP reg80 (s16): undefined -+ VFP reg81 (s17): undefined -+ VFP reg82 (s18): undefined -+ VFP reg83 (s19): undefined -+ VFP reg84 (s20): undefined -+ VFP reg85 (s21): undefined -+ VFP reg86 (s22): undefined -+ VFP reg87 (s23): undefined -+ VFP reg88 (s24): undefined -+ VFP reg89 (s25): undefined -+ VFP reg90 (s26): undefined -+ VFP reg91 (s27): undefined -+ VFP reg92 (s28): undefined -+ VFP reg93 (s29): undefined -+ VFP reg94 (s30): undefined -+ VFP reg95 (s31): undefined - FPA reg96 (f0): undefined - FPA reg97 (f1): undefined - FPA reg98 (f2): undefined -@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg101 (f5): undefined - FPA reg102 (f6): undefined - FPA reg103 (f7): undefined -- integer reg128 (spsr): undefined -+ MMX reg104 (wcgr0): undefined -+ MMX reg105 (wcgr1): undefined -+ MMX reg106 (wcgr2): undefined -+ MMX reg107 (wcgr3): undefined -+ MMX reg108 (wcgr4): undefined -+ MMX reg109 (wcgr5): undefined -+ MMX reg110 (wcgr6): undefined -+ MMX reg111 (wcgr7): undefined -+ MMX reg112 (wr0): undefined -+ MMX reg113 (wr1): undefined -+ MMX reg114 (wr2): undefined -+ MMX reg115 (wr3): undefined -+ MMX reg116 (wr4): undefined -+ MMX reg117 (wr5): undefined -+ MMX reg118 (wr6): undefined -+ MMX reg119 (wr7): undefined -+ MMX reg120 (wr8): undefined -+ MMX reg121 (wr9): undefined -+ MMX reg122 (wr10): undefined -+ MMX reg123 (wr11): undefined -+ MMX reg124 (wr12): undefined -+ MMX reg125 (wr13): undefined -+ MMX reg126 (wr14): undefined -+ MMX reg127 (wr15): undefined -+ state reg128 (spsr): undefined -+ state reg129 (spsr_fiq): undefined -+ state reg130 (spsr_irq): undefined -+ state reg131 (spsr_abt): undefined -+ state reg132 (spsr_und): undefined -+ state reg133 (spsr_svc): undefined -+ integer reg144 (r8_usr): undefined -+ integer reg145 (r9_usr): undefined -+ integer reg146 (r10_usr): undefined -+ integer reg147 (r11_usr): undefined -+ integer reg148 (r12_usr): undefined -+ integer reg149 (r13_usr): undefined -+ integer reg150 (r14_usr): undefined -+ integer reg151 (r8_fiq): undefined -+ integer reg152 (r9_fiq): undefined -+ integer reg153 (r10_fiq): undefined -+ integer reg154 (r11_fiq): undefined -+ integer reg155 (r12_fiq): undefined -+ integer reg156 (r13_fiq): undefined -+ integer reg157 (r14_fiq): undefined -+ integer reg158 (r13_irq): undefined -+ integer reg159 (r14_irq): undefined -+ integer reg160 (r13_abt): undefined -+ integer reg161 (r14_abt): undefined -+ integer reg162 (r13_und): undefined -+ integer reg163 (r14_und): undefined -+ integer reg164 (r13_svc): undefined -+ integer reg165 (r14_svc): undefined -+ MMX reg192 (wc0): undefined -+ MMX reg193 (wc1): undefined -+ MMX reg194 (wc2): undefined -+ MMX reg195 (wc3): undefined -+ MMX reg196 (wc4): undefined -+ MMX reg197 (wc5): undefined -+ MMX reg198 (wc6): undefined -+ MMX reg199 (wc7): undefined - VFP reg256 (d0): undefined - VFP reg257 (d1): undefined - VFP reg258 (d2): undefined -diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh -index 1422bd67dbf0..dc0fc9914873 100755 ---- a/tests/run-allregs.sh -+++ b/tests/run-allregs.sh -@@ -2672,7 +2672,28 @@ integer registers: - 13: sp (sp), address 32 bits - 14: lr (lr), address 32 bits - 15: pc (pc), address 32 bits -- 128: spsr (spsr), unsigned 32 bits -+ 144: r8_usr (r8_usr), signed 32 bits -+ 145: r9_usr (r9_usr), signed 32 bits -+ 146: r10_usr (r10_usr), signed 32 bits -+ 147: r11_usr (r11_usr), signed 32 bits -+ 148: r12_usr (r12_usr), signed 32 bits -+ 149: r13_usr (r13_usr), signed 32 bits -+ 150: r14_usr (r14_usr), signed 32 bits -+ 151: r8_fiq (r8_fiq), signed 32 bits -+ 152: r9_fiq (r9_fiq), signed 32 bits -+ 153: r10_fiq (r10_fiq), signed 32 bits -+ 154: r11_fiq (r11_fiq), signed 32 bits -+ 155: r12_fiq (r12_fiq), signed 32 bits -+ 156: r13_fiq (r13_fiq), signed 32 bits -+ 157: r14_fiq (r14_fiq), signed 32 bits -+ 158: r13_irq (r13_irq), signed 32 bits -+ 159: r14_irq (r14_irq), signed 32 bits -+ 160: r13_abt (r13_abt), signed 32 bits -+ 161: r14_abt (r14_abt), signed 32 bits -+ 162: r13_und (r13_und), signed 32 bits -+ 163: r14_und (r14_und), signed 32 bits -+ 164: r13_svc (r13_svc), signed 32 bits -+ 165: r14_svc (r14_svc), signed 32 bits - FPA registers: - 16: f0 (f0), float 96 bits - 17: f1 (f1), float 96 bits -@@ -2690,7 +2711,72 @@ FPA registers: - 101: f5 (f5), float 96 bits - 102: f6 (f6), float 96 bits - 103: f7 (f7), float 96 bits -+MMX registers: -+ 104: wcgr0 (wcgr0), unsigned 32 bits -+ 105: wcgr1 (wcgr1), unsigned 32 bits -+ 106: wcgr2 (wcgr2), unsigned 32 bits -+ 107: wcgr3 (wcgr3), unsigned 32 bits -+ 108: wcgr4 (wcgr4), unsigned 32 bits -+ 109: wcgr5 (wcgr5), unsigned 32 bits -+ 110: wcgr6 (wcgr6), unsigned 32 bits -+ 111: wcgr7 (wcgr7), unsigned 32 bits -+ 112: wr0 (wr0), unsigned 64 bits -+ 113: wr1 (wr1), unsigned 64 bits -+ 114: wr2 (wr2), unsigned 64 bits -+ 115: wr3 (wr3), unsigned 64 bits -+ 116: wr4 (wr4), unsigned 64 bits -+ 117: wr5 (wr5), unsigned 64 bits -+ 118: wr6 (wr6), unsigned 64 bits -+ 119: wr7 (wr7), unsigned 64 bits -+ 120: wr8 (wr8), unsigned 64 bits -+ 121: wr9 (wr9), unsigned 64 bits -+ 122: wr10 (wr10), unsigned 64 bits -+ 123: wr11 (wr11), unsigned 64 bits -+ 124: wr12 (wr12), unsigned 64 bits -+ 125: wr13 (wr13), unsigned 64 bits -+ 126: wr14 (wr14), unsigned 64 bits -+ 127: wr15 (wr15), unsigned 64 bits -+ 192: wc0 (wc0), unsigned 32 bits -+ 193: wc1 (wc1), unsigned 32 bits -+ 194: wc2 (wc2), unsigned 32 bits -+ 195: wc3 (wc3), unsigned 32 bits -+ 196: wc4 (wc4), unsigned 32 bits -+ 197: wc5 (wc5), unsigned 32 bits -+ 198: wc6 (wc6), unsigned 32 bits -+ 199: wc7 (wc7), unsigned 32 bits - VFP registers: -+ 64: s0 (s0), float 32 bits -+ 65: s1 (s1), float 32 bits -+ 66: s2 (s2), float 32 bits -+ 67: s3 (s3), float 32 bits -+ 68: s4 (s4), float 32 bits -+ 69: s5 (s5), float 32 bits -+ 70: s6 (s6), float 32 bits -+ 71: s7 (s7), float 32 bits -+ 72: s8 (s8), float 32 bits -+ 73: s9 (s9), float 32 bits -+ 74: s10 (s10), float 32 bits -+ 75: s11 (s11), float 32 bits -+ 76: s12 (s12), float 32 bits -+ 77: s13 (s13), float 32 bits -+ 78: s14 (s14), float 32 bits -+ 79: s15 (s15), float 32 bits -+ 80: s16 (s16), float 32 bits -+ 81: s17 (s17), float 32 bits -+ 82: s18 (s18), float 32 bits -+ 83: s19 (s19), float 32 bits -+ 84: s20 (s20), float 32 bits -+ 85: s21 (s21), float 32 bits -+ 86: s22 (s22), float 32 bits -+ 87: s23 (s23), float 32 bits -+ 88: s24 (s24), float 32 bits -+ 89: s25 (s25), float 32 bits -+ 90: s26 (s26), float 32 bits -+ 91: s27 (s27), float 32 bits -+ 92: s28 (s28), float 32 bits -+ 93: s29 (s29), float 32 bits -+ 94: s30 (s30), float 32 bits -+ 95: s31 (s31), float 32 bits - 256: d0 (d0), float 64 bits - 257: d1 (d1), float 64 bits - 258: d2 (d2), float 64 bits -@@ -2723,6 +2809,13 @@ VFP registers: - 285: d29 (d29), float 64 bits - 286: d30 (d30), float 64 bits - 287: d31 (d31), float 64 bits -+state registers: -+ 128: spsr (spsr), unsigned 32 bits -+ 129: spsr_fiq (spsr_fiq), unsigned 32 bits -+ 130: spsr_irq (spsr_irq), unsigned 32 bits -+ 131: spsr_abt (spsr_abt), unsigned 32 bits -+ 132: spsr_und (spsr_und), unsigned 32 bits -+ 133: spsr_svc (spsr_svc), unsigned 32 bits - EOF - - # See run-readelf-mixed-corenote.sh for instructions to regenerate -diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh -index c960f1d6160e..e4bf0746b208 100755 ---- a/tests/run-readelf-mixed-corenote.sh -+++ b/tests/run-readelf-mixed-corenote.sh -@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x274: - pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 - utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 - orig_r0: -1, fpvalid: 1 -- r0: 1 r1: -1091672508 r2: -1091672500 -- r3: 0 r4: 0 r5: 0 -- r6: 33728 r7: 0 r8: 0 -- r9: 0 r10: -1225703496 r11: -1091672844 -- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 -- pc: 0x00008500 spsr: 0x60000010 -+ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0 -+ r4: 0 r5: 0 r6: 33728 r7: 0 -+ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844 -+ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500 -+ spsr: 0x60000010 - CORE 124 PRPSINFO - state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 - uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 diff --git a/patches/elfutils-0.176/0003-mips_backend.patch b/patches/elfutils-0.176/0003-mips_backend.patch deleted file mode 100644 index e613f4a05..000000000 --- a/patches/elfutils-0.176/0003-mips_backend.patch +++ /dev/null @@ -1,712 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Mon, 4 Mar 2019 13:20:36 +0100 -Subject: [PATCH] mips_backend - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/Makefile.am | 8 +- - backends/mips_init.c | 59 +++++++++ - backends/mips_regs.c | 104 ++++++++++++++++ - backends/mips_reloc.def | 79 ++++++++++++ - backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++++++++++ - backends/mips_symbol.c | 53 ++++++++ - libebl/eblopenbackend.c | 2 + - 7 files changed, 624 insertions(+), 2 deletions(-) - create mode 100644 backends/mips_init.c - create mode 100644 backends/mips_regs.c - create mode 100644 backends/mips_reloc.def - create mode 100644 backends/mips_retval.c - create mode 100644 backends/mips_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 5671a32c4210..ba84da61cd20 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv parisc -+ tilegx m68k bpf riscv parisc mips - libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ - libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ - libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ - libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ - libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ -- libebl_parisc_pic.a -+ libebl_parisc_pic.a libebl_mips_pic.a - noinst_LIBRARIES = $(libebl_pic) - noinst_DATA = $(libebl_pic:_pic.a=.so) - -@@ -141,6 +141,10 @@ parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) - am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) - -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+libebl_mips_pic_a_SOURCES = $(mips_SRCS) -+am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) -+ - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) - @rm -f $(@:.so=.map) - $(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \ -diff --git a/backends/mips_init.c b/backends/mips_init.c -new file mode 100644 -index 000000000000..975c04e1e168 ---- /dev/null -+++ b/backends/mips_init.c -@@ -0,0 +1,59 @@ -+/* Initialization of mips specific backend library. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#define BACKEND mips_ -+#define RELOC_PREFIX R_MIPS_ -+#include "libebl_CPU.h" -+ -+/* This defines the common reloc hooks based on mips_reloc.def. */ -+#include "common-reloc.c" -+ -+const char * -+mips_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ /* We handle it. */ -+ if (machine == EM_MIPS) -+ eh->name = "MIPS R3000 big-endian"; -+ else if (machine == EM_MIPS_RS3_LE) -+ eh->name = "MIPS R3000 little-endian"; -+ -+ mips_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, return_value_location); -+ HOOK (eh, register_info); -+ -+ return MODVERSION; -+} -diff --git a/backends/mips_regs.c b/backends/mips_regs.c -new file mode 100644 -index 000000000000..44f86cb46302 ---- /dev/null -+++ b/backends/mips_regs.c -@@ -0,0 +1,104 @@ -+/* Register names and numbers for MIPS DWARF. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <dwarf.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+ssize_t -+mips_register_info (Ebl *ebl __attribute__((unused)), -+ int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ if (name == NULL) -+ return 66; -+ -+ if (regno < 0 || regno > 65 || namelen < 4) -+ return -1; -+ -+ *prefix = "$"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ if (regno < 32 + 10) -+ { -+ name[0] = regno + '0'; -+ namelen = 1; -+ } -+ else -+ { -+ name[0] = (regno / 10) + '0'; -+ name[1] = (regno % 10) + '0'; -+ namelen = 2; -+ } -+ } -+ else if (regno < 64) -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ *bits = 32; -+ name[0] = 'f'; -+ if (regno < 32 + 10) -+ { -+ name[1] = (regno - 32) + '0'; -+ namelen = 2; -+ } -+ else -+ { -+ name[1] = (regno - 32) / 10 + '0'; -+ name[2] = (regno - 32) % 10 + '0'; -+ namelen = 3; -+ } -+ } -+ else if (regno == 64) -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'h'; -+ name[1] = 'i'; -+ namelen = 2; -+ } -+ else -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'l'; -+ name[1] = 'o'; -+ namelen = 2; -+ } -+ -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def -new file mode 100644 -index 000000000000..457997020340 ---- /dev/null -+++ b/backends/mips_reloc.def -@@ -0,0 +1,79 @@ -+/* List the relocation types for mips. -*- C -*- -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, 0) -+RELOC_TYPE (16, 0) -+RELOC_TYPE (32, 0) -+RELOC_TYPE (REL32, 0) -+RELOC_TYPE (26, 0) -+RELOC_TYPE (HI16, 0) -+RELOC_TYPE (LO16, 0) -+RELOC_TYPE (GPREL16, 0) -+RELOC_TYPE (LITERAL, 0) -+RELOC_TYPE (GOT16, 0) -+RELOC_TYPE (PC16, 0) -+RELOC_TYPE (CALL16, 0) -+RELOC_TYPE (GPREL32, 0) -+ -+RELOC_TYPE (SHIFT5, 0) -+RELOC_TYPE (SHIFT6, 0) -+RELOC_TYPE (64, 0) -+RELOC_TYPE (GOT_DISP, 0) -+RELOC_TYPE (GOT_PAGE, 0) -+RELOC_TYPE (GOT_OFST, 0) -+RELOC_TYPE (GOT_HI16, 0) -+RELOC_TYPE (GOT_LO16, 0) -+RELOC_TYPE (SUB, 0) -+RELOC_TYPE (INSERT_A, 0) -+RELOC_TYPE (INSERT_B, 0) -+RELOC_TYPE (DELETE, 0) -+RELOC_TYPE (HIGHER, 0) -+RELOC_TYPE (HIGHEST, 0) -+RELOC_TYPE (CALL_HI16, 0) -+RELOC_TYPE (CALL_LO16, 0) -+RELOC_TYPE (SCN_DISP, 0) -+RELOC_TYPE (REL16, 0) -+RELOC_TYPE (ADD_IMMEDIATE, 0) -+RELOC_TYPE (PJUMP, 0) -+RELOC_TYPE (RELGOT, 0) -+RELOC_TYPE (JALR, 0) -+RELOC_TYPE (TLS_DTPMOD32, 0) -+RELOC_TYPE (TLS_DTPREL32, 0) -+RELOC_TYPE (TLS_DTPMOD64, 0) -+RELOC_TYPE (TLS_DTPREL64, 0) -+RELOC_TYPE (TLS_GD, 0) -+RELOC_TYPE (TLS_LDM, 0) -+RELOC_TYPE (TLS_DTPREL_HI16, 0) -+RELOC_TYPE (TLS_DTPREL_LO16, 0) -+RELOC_TYPE (TLS_GOTTPREL, 0) -+RELOC_TYPE (TLS_TPREL32, 0) -+RELOC_TYPE (TLS_TPREL64, 0) -+RELOC_TYPE (TLS_TPREL_HI16, 0) -+RELOC_TYPE (TLS_TPREL_LO16, 0) -+ -+#define NO_COPY_RELOC 1 -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -new file mode 100644 -index 000000000000..656cd1f47507 ---- /dev/null -+++ b/backends/mips_retval.c -@@ -0,0 +1,321 @@ -+/* Function return value location for Linux/mips ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <string.h> -+#include <assert.h> -+#include <dwarf.h> -+#include <elf.h> -+ -+#include "../libebl/libeblP.h" -+#include "../libdw/libdwP.h" -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ -+#define EF_MIPS_ABI 0x0000F000 -+ -+/* The original o32 abi. */ -+#define E_MIPS_ABI_O32 0x00001000 -+ -+/* O32 extended to work on 64 bit architectures */ -+#define E_MIPS_ABI_O64 0x00002000 -+ -+/* EABI in 32 bit mode */ -+#define E_MIPS_ABI_EABI32 0x00003000 -+ -+/* EABI in 64 bit mode */ -+#define E_MIPS_ABI_EABI64 0x00004000 -+ -+/* All the possible MIPS ABIs. */ -+enum mips_abi -+ { -+ MIPS_ABI_UNKNOWN = 0, -+ MIPS_ABI_N32, -+ MIPS_ABI_O32, -+ MIPS_ABI_N64, -+ MIPS_ABI_O64, -+ MIPS_ABI_EABI32, -+ MIPS_ABI_EABI64, -+ MIPS_ABI_LAST -+ }; -+ -+/* Find the mips ABI of the current file */ -+enum mips_abi find_mips_abi(Elf *elf) -+{ -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ -+ if (ehdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ GElf_Word elf_flags = ehdr->e_flags; -+ -+ /* Check elf_flags to see if it specifies the ABI being used. */ -+ switch ((elf_flags & EF_MIPS_ABI)) -+ { -+ case E_MIPS_ABI_O32: -+ return MIPS_ABI_O32; -+ case E_MIPS_ABI_O64: -+ return MIPS_ABI_O64; -+ case E_MIPS_ABI_EABI32: -+ return MIPS_ABI_EABI32; -+ case E_MIPS_ABI_EABI64: -+ return MIPS_ABI_EABI64; -+ default: -+ if ((elf_flags & EF_MIPS_ABI2)) -+ return MIPS_ABI_N32; -+ } -+ -+ /* GCC creates a pseudo-section whose name describes the ABI. */ -+ size_t shstrndx; -+ if (elf_getshdrstrndx (elf, &shstrndx) < 0) -+ return MIPS_ABI_LAST; -+ -+ const char *name; -+ Elf_Scn *scn = NULL; -+ while ((scn = elf_nextscn (elf, scn)) != NULL) -+ { -+ GElf_Shdr shdr_mem; -+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); -+ if (shdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: ""; -+ if (strncmp (name, ".mdebug.", 8) != 0) -+ continue; -+ -+ if (strcmp (name, ".mdebug.abi32") == 0) -+ return MIPS_ABI_O32; -+ else if (strcmp (name, ".mdebug.abiN32") == 0) -+ return MIPS_ABI_N32; -+ else if (strcmp (name, ".mdebug.abi64") == 0) -+ return MIPS_ABI_N64; -+ else if (strcmp (name, ".mdebug.abiO64") == 0) -+ return MIPS_ABI_O64; -+ else if (strcmp (name, ".mdebug.eabi32") == 0) -+ return MIPS_ABI_EABI32; -+ else if (strcmp (name, ".mdebug.eabi64") == 0) -+ return MIPS_ABI_EABI64; -+ else -+ return MIPS_ABI_UNKNOWN; -+ } -+ -+ return MIPS_ABI_UNKNOWN; -+} -+ -+unsigned int -+mips_abi_regsize (enum mips_abi abi) -+{ -+ switch (abi) -+ { -+ case MIPS_ABI_EABI32: -+ case MIPS_ABI_O32: -+ return 4; -+ case MIPS_ABI_N32: -+ case MIPS_ABI_N64: -+ case MIPS_ABI_O64: -+ case MIPS_ABI_EABI64: -+ return 8; -+ case MIPS_ABI_UNKNOWN: -+ case MIPS_ABI_LAST: -+ default: -+ return 0; -+ } -+} -+ -+ -+/* $v0 or pair $v0, $v1 */ -+static const Dwarf_Op loc_intreg_o32[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* $f0 (float), or pair $f0, $f1 (double). -+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */ -+static const Dwarf_Op loc_fpreg_o32[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+/* $f0, or pair $f0, $f2. */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_fpreg 1 -+#define nloc_fpregpair 4 -+#define nloc_fpregquad 8 -+ -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. But, the compiler -+ helpfully returns the address of that space in $v0. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg2, .number = 0 } -+ }; -+#define nloc_aggregate 1 -+ -+int -+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ /* First find the ABI used by the elf object */ -+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf); -+ -+ /* Something went seriously wrong while trying to figure out the ABI */ -+ if (abi == MIPS_ABI_LAST) -+ return -1; -+ -+ /* We couldn't identify the ABI, but the file seems valid */ -+ if (abi == MIPS_ABI_UNKNOWN) -+ return -2; -+ -+ /* Can't handle EABI variants */ -+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64)) -+ return -2; -+ -+ unsigned int regsize = mips_abi_regsize (abi); -+ if (!regsize) -+ return -2; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = regsize; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc)) -+ -+ if (encoding == DW_ATE_float) -+ { -+ *locp = ABI_LOC(loc_fpreg, regsize); -+ if (size <= regsize) -+ return nloc_fpreg; -+ -+ if (size <= 2*regsize) -+ return nloc_fpregpair; -+ -+ if (size <= 4*regsize && abi == MIPS_ABI_O32) -+ return nloc_fpregquad; -+ -+ goto aggregate; -+ } -+ } -+ *locp = ABI_LOC(loc_intreg, regsize); -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2*regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. Shouldn't happen though (at least with gcc) */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: -+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -+ return -2; -+ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c -new file mode 100644 -index 000000000000..261b05dad2d3 ---- /dev/null -+++ b/backends/mips_symbol.c -@@ -0,0 +1,53 @@ -+/* MIPS specific symbolic name handling. -+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Jakub Jelinek <jakub@redhat.com>, 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ <http://www.openinventionnetwork.com>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <elf.h> -+#include <stddef.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_MIPS_16: -+ return ELF_T_HALF; -+ case R_MIPS_32: -+ return ELF_T_WORD; -+ case R_MIPS_64: -+ return ELF_T_XWORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c -index d54b720756c3..6cf766f65115 100644 ---- a/libebl/eblopenbackend.c -+++ b/libebl/eblopenbackend.c -@@ -71,6 +71,8 @@ static const struct - { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, - { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, - { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 }, -+ { "mips", "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, -+ { "mips", "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, - - { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, - { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, diff --git a/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch b/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch deleted file mode 100644 index 445f7ab60..000000000 --- a/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Kurt Roeckx <kurt@roeckx.be> -Date: Mon, 4 Mar 2019 13:20:36 +0100 -Subject: [PATCH] Make readelf -w output debug information on mips - -Upstreams wants a change where this is handled by a hook that needs -to be filled in by the backend for the arch. - - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - src/readelf.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 33706bdefacf..ef13159b744d 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -11148,7 +11148,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - GElf_Shdr shdr_mem; - GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); - -- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS) -+ if (shdr != NULL && ( -+ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF))) - { - static const struct - { diff --git a/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch b/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch deleted file mode 100644 index 9860b4548..000000000 --- a/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:16:58 +0000 -Subject: [PATCH] Ignore differences between mips machine identifiers - -Little endian binaries actually use EM_MIPS so you can't tell the endianness -from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the -kernel will not load binaries containing it). - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/mips_init.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/backends/mips_init.c b/backends/mips_init.c -index 975c04e1e168..8482e7fe6e96 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unused)), - return NULL; - - /* We handle it. */ -- if (machine == EM_MIPS) -- eh->name = "MIPS R3000 big-endian"; -- else if (machine == EM_MIPS_RS3_LE) -- eh->name = "MIPS R3000 little-endian"; -- -+ eh->name = "MIPS"; - mips_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); diff --git a/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch b/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch deleted file mode 100644 index 29c754e2e..000000000 --- a/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch +++ /dev/null @@ -1,168 +0,0 @@ -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:17:01 +0000 -Subject: [PATCH] Add support for mips64 abis in mips_retval.c - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 94 insertions(+), 10 deletions(-) - -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -index 656cd1f47507..57487bbb8e2f 100644 ---- a/backends/mips_retval.c -+++ b/backends/mips_retval.c -@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) - default: - if ((elf_flags & EF_MIPS_ABI2)) - return MIPS_ABI_N32; -+ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64)) -+ return MIPS_ABI_N64; - } - - /* GCC creates a pseudo-section whose name describes the ABI. */ -@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] = - }; - #define nloc_aggregate 1 - -+/* Test if a struct member is a float */ -+static int is_float_child(Dwarf_Die *childdie) -+{ -+ /* Test if this is actually a struct member */ -+ if (dwarf_tag(childdie) != DW_TAG_member) -+ return 0; -+ -+ /* Get type of member */ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Die child_type_mem; -+ Dwarf_Die *child_typedie = -+ dwarf_formref_die(dwarf_attr_integrate(childdie, -+ DW_AT_type, -+ &attr_mem), &child_type_mem); -+ -+ if (dwarf_tag(child_typedie) != DW_TAG_base_type) -+ return 0; -+ -+ /* Get base subtype */ -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (child_typedie, -+ DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return 0; -+ -+ return encoding == DW_ATE_float; -+} -+ -+/* Returns the number of fpregs which can be returned in the given struct */ -+static int get_struct_fpregs(Dwarf_Die *structtypedie) -+{ -+ Dwarf_Die child_mem; -+ int fpregs = 0; -+ -+ /* Get first structure member */ -+ if (dwarf_child(structtypedie, &child_mem) != 0) -+ return 0; -+ -+ do -+ { -+ /* Ensure this register is a float */ -+ if (!is_float_child(&child_mem)) -+ return 0; -+ -+ fpregs++; -+ } -+ while (dwarf_siblingof (&child_mem, &child_mem) == 0); -+ -+ return fpregs; -+} -+ - int - mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - { -@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - tag = dwarf_tag (typedie); - } - -+ Dwarf_Word size; - switch (tag) - { - case -1: -@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - case DW_TAG_enumeration_type: - case DW_TAG_pointer_type: - case DW_TAG_ptr_to_member_type: -- { -- Dwarf_Word size; - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, - &attr_mem), &size) != 0) - { -@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 4*regsize && abi == MIPS_ABI_O32) - return nloc_fpregquad; - -- goto aggregate; -+ goto large; - } - } - *locp = ABI_LOC(loc_intreg, regsize); -@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 2*regsize) - return nloc_intregpair; - -- /* Else fall through. Shouldn't happen though (at least with gcc) */ -- } -+ /* Else pass in memory. Shouldn't happen though (at least with gcc) */ -+ goto large; - - case DW_TAG_structure_type: - case DW_TAG_class_type: - case DW_TAG_union_type: -- case DW_TAG_array_type: -- aggregate: -- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -- return -2; -+ /* Handle special cases for structures <= 128 bytes in newer ABIs */ -+ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 || -+ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64) -+ { -+ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16) -+ { -+ /* -+ * Special case in N64 / N32 - -+ * structures containing only floats are returned in fp regs. -+ * Everything else is returned in integer regs. -+ */ -+ if (tag != DW_TAG_union_type && -+ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)) -+ { -+ int num_fpregs = get_struct_fpregs(typedie); -+ if (num_fpregs == 1 || num_fpregs == 2) -+ { -+ *locp = loc_fpreg; -+ if (num_fpregs == 1) -+ return nloc_fpreg; -+ else -+ return nloc_fpregpair; -+ } -+ } -+ -+ *locp = loc_intreg; -+ if (size <= 8) -+ return nloc_intreg; -+ else -+ return nloc_intregpair; -+ } -+ } -+ -+ /* Fallthrough to handle large types */ - -+ case DW_TAG_array_type: -+ large: -+ /* Return large structures in memory */ - *locp = loc_aggregate; - return nloc_aggregate; - } diff --git a/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch b/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch deleted file mode 100644 index 46d7240ac..000000000 --- a/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch +++ /dev/null @@ -1,229 +0,0 @@ -From: James Cowgill <james410@cowgill.org.uk> -Date: Mon, 5 Jan 2015 15:17:02 +0000 -Subject: [PATCH] Add mips n64 relocation format hack - -MIPSEL N64 ELF files use a slightly different format for storing relocation -entries which is incompatible with the normal R_SYM / R_INFO macros. -To workaround this, we rearrange the bytes in the relocation's r_info field -when reading and writing the relocations. - -This patch also ensures that strip.c sets the correct value of e_machine -before manipulating relocations so that these changes take effect. - -Signed-off-by: James Cowgill <james410@cowgill.org.uk> - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- - libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- - libelf/gelf_update_rel.c | 20 +++++++++++++++++++- - libelf/gelf_update_rela.c | 20 +++++++++++++++++++- - src/strip.c | 17 +++++++++++++++++ - 5 files changed, 101 insertions(+), 6 deletions(-) - -diff --git a/libelf/gelf_getrel.c b/libelf/gelf_getrel.c -index 309e3d37457b..2a81a97c9a45 100644 ---- a/libelf/gelf_getrel.c -+++ b/libelf/gelf_getrel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rel * - gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) -@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rel)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rel)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -diff --git a/libelf/gelf_getrela.c b/libelf/gelf_getrela.c -index d695f6593dc4..1f42a80b4c7e 100644 ---- a/libelf/gelf_getrela.c -+++ b/libelf/gelf_getrela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rela * - gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) -@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rela)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rela)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -diff --git a/libelf/gelf_update_rel.c b/libelf/gelf_update_rel.c -index 14f62e973a5e..90955566e4ad 100644 ---- a/libelf/gelf_update_rel.c -+++ b/libelf/gelf_update_rel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) -@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rel value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { -@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) - goto out; - } - -- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -diff --git a/libelf/gelf_update_rela.c b/libelf/gelf_update_rela.c -index 88252703976f..4caa85fb9f8e 100644 ---- a/libelf/gelf_update_rela.c -+++ b/libelf/gelf_update_rela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) -@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rela value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) - { -@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) - goto out; - } - -- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -diff --git a/src/strip.c b/src/strip.c -index a73009d980e6..75bd7ba60eb8 100644 ---- a/src/strip.c -+++ b/src/strip.c -@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, - goto fail; - } - -+ /* Copy identity part of the ELF header now */ -+ newehdr = gelf_getehdr (newelf, &newehdr_mem); -+ if (newehdr == NULL) -+ INTERNAL_ERROR (fname); -+ -+ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT); -+ newehdr->e_type = ehdr->e_type; -+ newehdr->e_machine = ehdr->e_machine; -+ newehdr->e_version = ehdr->e_version; -+ -+ if (gelf_update_ehdr (newelf, newehdr) == 0) -+ { -+ error (0, 0, gettext ("%s: error while creating ELF header: %s"), -+ fname, elf_errmsg (-1)); -+ return 1; -+ } -+ - /* Copy over the old program header if needed. */ - if (phnum > 0) - { diff --git a/patches/elfutils-0.176/0009-mips_cfi.patch b/patches/elfutils-0.176/0009-mips_cfi.patch deleted file mode 100644 index 8920f0882..000000000 --- a/patches/elfutils-0.176/0009-mips_cfi.patch +++ /dev/null @@ -1,125 +0,0 @@ -From: Michael Olbrich <m.olbrich@pengutronix.de> -Date: Mon, 4 Mar 2019 13:20:36 +0100 -Subject: [PATCH] mips_cfi - -Imported from elfutils_0.176-1.debian.tar.xz - -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> ---- - backends/Makefile.am | 2 +- - backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ - backends/mips_init.c | 1 + - 3 files changed, 82 insertions(+), 1 deletion(-) - create mode 100644 backends/mips_cfi.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index ba84da61cd20..8949a59210c3 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -141,7 +141,7 @@ parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) - am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) - --mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c - libebl_mips_pic_a_SOURCES = $(mips_SRCS) - am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) - -diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c -new file mode 100644 -index 000000000000..9ffdab5beb03 ---- /dev/null -+++ b/backends/mips_cfi.c -@@ -0,0 +1,80 @@ -+/* MIPS ABI-specified defaults for DWARF CFI. -+ Copyright (C) 2018 Kurt Roeckx, Inc. -+ This file is part of elfutils. -+ -+ This file is free software; you can redistribute it and/or modify -+ it under the terms of either -+ -+ * the GNU Lesser General Public License as published by the Free -+ Software Foundation; either version 3 of the License, or (at -+ your option) any later version -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or (at -+ your option) any later version -+ -+ or both in parallel, as here. -+ -+ elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received copies of the GNU General Public License and -+ the GNU Lesser General Public License along with this program. If -+ not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+ -+#include <dwarf.h> -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+int -+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) -+{ -+ static const uint8_t abi_cfi[] = -+ { -+ /* Call-saved regs. */ -+ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ -+ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ -+ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ -+ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ -+ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ -+ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ -+ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ -+ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ -+ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ -+ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ -+ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ -+ -+ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ -+ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ -+ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ -+ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ -+ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ -+ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ -+ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ -+ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ -+ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ -+ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ -+ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ -+ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ -+ -+ /* The CFA is the SP. */ -+ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), -+ }; -+ -+ abi_info->initial_instructions = abi_cfi; -+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; -+ abi_info->data_alignment_factor = 4; -+ -+ abi_info->return_address_register = 31; /* $31 */ -+ -+ return 0; -+} -diff --git a/backends/mips_init.c b/backends/mips_init.c -index 8482e7fe6e96..bce5abe1d98a 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); - HOOK (eh, register_info); -+ HOOK (eh, abi_cfi); - - return MODVERSION; - } diff --git a/patches/elfutils-0.176/series b/patches/elfutils-0.176/series deleted file mode 100644 index 7736db947..000000000 --- a/patches/elfutils-0.176/series +++ /dev/null @@ -1,12 +0,0 @@ -# generated by git-ptx-patches -#tag:base --start-number 1 -0001-hppa_backend.patch -0002-arm_backend.patch -0003-mips_backend.patch -0004-Make-readelf-w-output-debug-information-on-mips.patch -0005-Ignore-differences-between-mips-machine-identifiers.patch -0006-Add-support-for-mips64-abis-in-mips_retval.c.patch -0007-Add-mips-n64-relocation-format-hack.patch -0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch -0009-mips_cfi.patch -# f467d91cf75ddf16b549e11a748e16ba - git-ptx-patches magic diff --git a/patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch b/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch similarity index 51% rename from patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch rename to patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch index 667043c89..15ec6a6d8 100644 --- a/patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch +++ b/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch @@ -1,16 +1,16 @@ From: Helmut Grohne <helmut@subdivi.de> -Date: Mon, 4 Mar 2019 13:20:36 +0100 +Date: Thu, 30 Jul 2020 20:37:12 +0200 Subject: [PATCH] disable -Werror as it tends to break with new gcc versions -Imported from elfutils_0.176-1.debian.tar.xz +Patch imported from debian 0.180-1. -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- - config/eu.am | 1 - - 1 file changed, 1 deletion(-) + config/eu.am | 2 -- + 1 file changed, 2 deletions(-) diff --git a/config/eu.am b/config/eu.am -index 82acda3ab2cd..dede5c65811f 100644 +index 6c3c444f143a..3bc0dc95b1fd 100644 --- a/config/eu.am +++ b/config/eu.am @@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ @@ -21,3 +21,11 @@ index 82acda3ab2cd..dede5c65811f 100644 $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ +@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ + -Wtrampolines \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ diff --git a/patches/elfutils-0.176/autogen.sh b/patches/elfutils-0.180/autogen.sh similarity index 100% rename from patches/elfutils-0.176/autogen.sh rename to patches/elfutils-0.180/autogen.sh diff --git a/patches/elfutils-0.180/series b/patches/elfutils-0.180/series new file mode 100644 index 000000000..6e83826e3 --- /dev/null +++ b/patches/elfutils-0.180/series @@ -0,0 +1,4 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch +# 881dc427356ca2d007dd3d3f576ea5a8 - git-ptx-patches magic diff --git a/rules/host-libelf.make b/rules/host-libelf.make index 7a319b9f3..25ff97259 100644 --- a/rules/host-libelf.make +++ b/rules/host-libelf.make @@ -28,11 +28,13 @@ HOST_LIBELF_CONF_OPT := \ --disable-gcov \ --disable-sanitize-undefined \ --disable-valgrind \ + --disable-valgrind-annotations \ --disable-tests-rpath \ - --enable-libebl-subdir=elfutils \ --enable-textrelcheck \ --enable-symbol-versioning \ --disable-nls \ + --disable-debuginfod \ + --without-valgrind \ --with-zlib \ --without-bzlib \ --without-lzma \ diff --git a/rules/libelf.make b/rules/libelf.make index 815ac1205..21cbf3b32 100644 --- a/rules/libelf.make +++ b/rules/libelf.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf # # Paths and names # -LIBELF_VERSION := 0.176 -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 +LIBELF_VERSION := 0.180 +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b LIBELF := elfutils-$(LIBELF_VERSION) LIBELF_SUFFIX := tar.bz2 LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ --disable-gcov \ --disable-sanitize-undefined \ --disable-valgrind \ + --disable-valgrind-annotations \ --disable-tests-rpath \ - --enable-libebl-subdir=elfutils \ --enable-textrelcheck \ --enable-symbol-versioning \ --disable-nls \ + --disable-debuginfod \ + --without-valgrind \ --with-zlib \ --without-bzlib \ --without-lzma \ @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: ifdef PTXCONF_LIBELF_LIBDW @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) - @$(call install_lib, libelf, 0, 0, 0644, \ - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) endif ifdef PTXCONF_LIBELF_LIBASM -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] libelf: version bump 0.176 -> 0.180 2020-07-30 19:00 ` [ptxdist] [PATCHv3] " Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 05d3ca083559903486ed883fffead6df987985cd. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:14 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > Adapt configure options accordingly. > > Since 0.180, the libebl_$ARCH.so libraries are compiled into libdw.so, > so they don't have to be installed separately any more. See upstream > commit 4f937e24dc7ad1820fc7c99a6dd6422657f14666 for details. > > The old patch series was ported from debian; most of the patches have > been applied upstream; from the new debian patch series for 0.180-1, > only the -Werror patch seems relevant to me, so I leave it inside. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200730190000.3332966-1-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/patches/elfutils-0.176/0001-hppa_backend.patch b/patches/elfutils-0.176/0001-hppa_backend.patch > deleted file mode 100644 > index dcb4f1eeb743..000000000000 > --- a/patches/elfutils-0.176/0001-hppa_backend.patch > +++ /dev/null > @@ -1,831 +0,0 @@ > -From: Michael Olbrich <m.olbrich@pengutronix.de> > -Date: Mon, 4 Mar 2019 13:20:35 +0100 > -Subject: [PATCH] hppa_backend > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/Makefile.am | 8 +- > - backends/libebl_parisc.h | 9 ++ > - backends/parisc_init.c | 73 ++++++++++++++++ > - backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++++++++ > - backends/parisc_reloc.def | 128 ++++++++++++++++++++++++++++ > - backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++++++++++ > - backends/parisc_symbol.c | 113 ++++++++++++++++++++++++ > - libelf/elf.h | 11 +++ > - 8 files changed, 712 insertions(+), 2 deletions(-) > - create mode 100644 backends/libebl_parisc.h > - create mode 100644 backends/parisc_init.c > - create mode 100644 backends/parisc_regs.c > - create mode 100644 backends/parisc_reloc.def > - create mode 100644 backends/parisc_retval.c > - create mode 100644 backends/parisc_symbol.c > - > -diff --git a/backends/Makefile.am b/backends/Makefile.am > -index 2126a2eca42e..5671a32c4210 100644 > ---- a/backends/Makefile.am > -+++ b/backends/Makefile.am > -@@ -33,12 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ > - > - > - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ > -- tilegx m68k bpf riscv > -+ tilegx m68k bpf riscv parisc > - libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ > - libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ > - libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ > - libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ > -- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a > -+ libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ > -+ libebl_parisc_pic.a > - noinst_LIBRARIES = $(libebl_pic) > - noinst_DATA = $(libebl_pic:_pic.a=.so) > - > -@@ -136,6 +137,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ > - libebl_riscv_pic_a_SOURCES = $(riscv_SRCS) > - am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os) > - > -+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c > -+libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) > -+am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) > - > - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) > - @rm -f $(@:.so=.map) > -diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h > -new file mode 100644 > -index 000000000000..f473b793e533 > ---- /dev/null > -+++ b/backends/libebl_parisc.h > -@@ -0,0 +1,9 @@ > -+#ifndef _LIBEBL_HPPA_H > -+#define _LIBEBL_HPPA_H 1 > -+ > -+#include <libdw.h> > -+ > -+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp); > -+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp); > -+ > -+#endif > -diff --git a/backends/parisc_init.c b/backends/parisc_init.c > -new file mode 100644 > -index 000000000000..f1e401cfe1d2 > ---- /dev/null > -+++ b/backends/parisc_init.c > -@@ -0,0 +1,73 @@ > -+/* Initialization of PA-RISC specific backend library. > -+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#define BACKEND parisc_ > -+#define RELOC_PREFIX R_PARISC_ > -+#include "libebl_CPU.h" > -+#include "libebl_parisc.h" > -+ > -+/* This defines the common reloc hooks based on parisc_reloc.def. */ > -+#include "common-reloc.c" > -+ > -+ > -+const char * > -+parisc_init (Elf *elf __attribute__ ((unused)), > -+ GElf_Half machine __attribute__ ((unused)), > -+ Ebl *eh, > -+ size_t ehlen) > -+{ > -+ int pa64 = 0; > -+ > -+ /* Check whether the Elf_BH object has a sufficent size. */ > -+ if (ehlen < sizeof (Ebl)) > -+ return NULL; > -+ > -+ if (elf) { > -+ GElf_Ehdr ehdr_mem; > -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); > -+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE)) > -+ pa64 = 1; > -+ } > -+ /* We handle it. */ > -+ eh->name = "PA-RISC"; > -+ parisc_init_reloc (eh); > -+ HOOK (eh, reloc_simple_type); > -+ HOOK (eh, machine_flag_check); > -+ HOOK (eh, symbol_type_name); > -+ HOOK (eh, segment_type_name); > -+ HOOK (eh, section_type_name); > -+ HOOK (eh, register_info); > -+ if (pa64) > -+ eh->return_value_location = parisc_return_value_location_64; > -+ else > -+ eh->return_value_location = parisc_return_value_location_32; > -+ > -+ return MODVERSION; > -+} > -diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c > -new file mode 100644 > -index 000000000000..3895f8eb00b6 > ---- /dev/null > -+++ b/backends/parisc_regs.c > -@@ -0,0 +1,159 @@ > -+/* Register names and numbers for PA-RISC DWARF. > -+ Copyright (C) 2005, 2006 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <string.h> > -+#include <dwarf.h> > -+ > -+#define BACKEND parisc_ > -+#include "libebl_CPU.h" > -+ > -+ssize_t > -+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen, > -+ const char **prefix, const char **setname, > -+ int *bits, int *type) > -+{ > -+ int pa64 = 0; > -+ > -+ if (ebl->elf) { > -+ GElf_Ehdr ehdr_mem; > -+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); > -+ if (ehdr->e_flags & EF_PARISC_WIDE) > -+ pa64 = 1; > -+ } > -+ > -+ int nregs = pa64 ? 127 : 128; > -+ > -+ if (name == NULL) > -+ return nregs; > -+ > -+ if (regno < 0 || regno >= nregs || namelen < 6) > -+ return -1; > -+ > -+ *prefix = "%"; > -+ > -+ if (regno < 32) > -+ { > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ if (pa64) > -+ { > -+ *bits = 64; > -+ } > -+ else > -+ { > -+ *bits = 32; > -+ } > -+ } > -+ else if (regno == 32) > -+ { > -+ *setname = "special"; > -+ if (pa64) > -+ { > -+ *bits = 6; > -+ } > -+ else > -+ { > -+ *bits = 5; > -+ } > -+ *type = DW_ATE_unsigned; > -+ } > -+ else > -+ { > -+ *setname = "FPU"; > -+ *type = DW_ATE_float; > -+ if (pa64) > -+ { > -+ *bits = 64; > -+ } > -+ else > -+ { > -+ *bits = 32; > -+ } > -+ } > -+ > -+ if (regno < 33) { > -+ switch (regno) > -+ { > -+ case 0 ... 9: > -+ name[0] = 'r'; > -+ name[1] = regno + '0'; > -+ namelen = 2; > -+ break; > -+ case 10 ... 31: > -+ name[0] = 'r'; > -+ name[1] = regno / 10 + '0'; > -+ name[2] = regno % 10 + '0'; > -+ namelen = 3; > -+ break; > -+ case 32: > -+ *prefix = NULL; > -+ name[0] = 'S'; > -+ name[1] = 'A'; > -+ name[2] = 'R'; > -+ namelen = 3; > -+ break; > -+ } > -+ } > -+ else { > -+ if (pa64 && ((regno - 72) % 2)) { > -+ *setname = NULL; > -+ return 0; > -+ } > -+ > -+ switch (regno) > -+ { > -+ case 72 + 0 ... 72 + 11: > -+ name[0] = 'f'; > -+ name[1] = 'r'; > -+ name[2] = (regno + 8 - 72) / 2 + '0'; > -+ namelen = 3; > -+ if ((regno + 8 - 72) % 2) { > -+ name[3] = 'R'; > -+ namelen++; > -+ } > -+ break; > -+ case 72 + 12 ... 72 + 55: > -+ name[0] = 'f'; > -+ name[1] = 'r'; > -+ name[2] = (regno + 8 - 72) / 2 / 10 + '0'; > -+ name[3] = (regno + 8 - 72) / 2 % 10 + '0'; > -+ namelen = 4; > -+ if ((regno + 8 - 72) % 2) { > -+ name[4] = 'R'; > -+ namelen++; > -+ } > -+ break; > -+ default: > -+ *setname = NULL; > -+ return 0; > -+ } > -+ } > -+ name[namelen++] = '\0'; > -+ return namelen; > -+} > -diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def > -new file mode 100644 > -index 000000000000..1f875bab33a0 > ---- /dev/null > -+++ b/backends/parisc_reloc.def > -@@ -0,0 +1,128 @@ > -+/* List the relocation types for PA-RISC. -*- C -*- > -+ Copyright (C) 2005 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+/* NAME, REL|EXEC|DYN */ > -+ > -+RELOC_TYPE (NONE, EXEC|DYN) > -+RELOC_TYPE (DIR32, REL|EXEC|DYN) > -+RELOC_TYPE (DIR21L, REL|EXEC|DYN) > -+RELOC_TYPE (DIR17R, REL) > -+RELOC_TYPE (DIR17F, REL) > -+RELOC_TYPE (DIR14R, REL|DYN) > -+RELOC_TYPE (PCREL32, REL) > -+RELOC_TYPE (PCREL21L, REL) > -+RELOC_TYPE (PCREL17R, REL) > -+RELOC_TYPE (PCREL17F, REL) > -+RELOC_TYPE (PCREL14R, REL|EXEC) > -+RELOC_TYPE (DPREL21L, REL) > -+RELOC_TYPE (DPREL14WR, REL) > -+RELOC_TYPE (DPREL14DR, REL) > -+RELOC_TYPE (DPREL14R, REL) > -+RELOC_TYPE (GPREL21L, 0) > -+RELOC_TYPE (GPREL14R, 0) > -+RELOC_TYPE (LTOFF21L, REL) > -+RELOC_TYPE (LTOFF14R, REL) > -+RELOC_TYPE (DLTIND14F, 0) > -+RELOC_TYPE (SETBASE, 0) > -+RELOC_TYPE (SECREL32, REL) > -+RELOC_TYPE (BASEREL21L, 0) > -+RELOC_TYPE (BASEREL17R, 0) > -+RELOC_TYPE (BASEREL14R, 0) > -+RELOC_TYPE (SEGBASE, 0) > -+RELOC_TYPE (SEGREL32, REL) > -+RELOC_TYPE (PLTOFF21L, 0) > -+RELOC_TYPE (PLTOFF14R, 0) > -+RELOC_TYPE (PLTOFF14F, 0) > -+RELOC_TYPE (LTOFF_FPTR32, 0) > -+RELOC_TYPE (LTOFF_FPTR21L, 0) > -+RELOC_TYPE (LTOFF_FPTR14R, 0) > -+RELOC_TYPE (FPTR64, 0) > -+RELOC_TYPE (PLABEL32, REL|DYN) > -+RELOC_TYPE (PCREL64, 0) > -+RELOC_TYPE (PCREL22C, 0) > -+RELOC_TYPE (PCREL22F, 0) > -+RELOC_TYPE (PCREL14WR, 0) > -+RELOC_TYPE (PCREL14DR, 0) > -+RELOC_TYPE (PCREL16F, 0) > -+RELOC_TYPE (PCREL16WF, 0) > -+RELOC_TYPE (PCREL16DF, 0) > -+RELOC_TYPE (DIR64, REL|DYN) > -+RELOC_TYPE (DIR14WR, REL) > -+RELOC_TYPE (DIR14DR, REL) > -+RELOC_TYPE (DIR16F, REL) > -+RELOC_TYPE (DIR16WF, REL) > -+RELOC_TYPE (DIR16DF, REL) > -+RELOC_TYPE (GPREL64, 0) > -+RELOC_TYPE (GPREL14WR, 0) > -+RELOC_TYPE (GPREL14DR, 0) > -+RELOC_TYPE (GPREL16F, 0) > -+RELOC_TYPE (GPREL16WF, 0) > -+RELOC_TYPE (GPREL16DF, 0) > -+RELOC_TYPE (LTOFF64, 0) > -+RELOC_TYPE (LTOFF14WR, 0) > -+RELOC_TYPE (LTOFF14DR, 0) > -+RELOC_TYPE (LTOFF16F, 0) > -+RELOC_TYPE (LTOFF16WF, 0) > -+RELOC_TYPE (LTOFF16DF, 0) > -+RELOC_TYPE (SECREL64, 0) > -+RELOC_TYPE (BASEREL14WR, 0) > -+RELOC_TYPE (BASEREL14DR, 0) > -+RELOC_TYPE (SEGREL64, 0) > -+RELOC_TYPE (PLTOFF14WR, 0) > -+RELOC_TYPE (PLTOFF14DR, 0) > -+RELOC_TYPE (PLTOFF16F, 0) > -+RELOC_TYPE (PLTOFF16WF, 0) > -+RELOC_TYPE (PLTOFF16DF, 0) > -+RELOC_TYPE (LTOFF_FPTR64, 0) > -+RELOC_TYPE (LTOFF_FPTR14WR, 0) > -+RELOC_TYPE (LTOFF_FPTR14DR, 0) > -+RELOC_TYPE (LTOFF_FPTR16F, 0) > -+RELOC_TYPE (LTOFF_FPTR16WF, 0) > -+RELOC_TYPE (LTOFF_FPTR16DF, 0) > -+RELOC_TYPE (COPY, EXEC) > -+RELOC_TYPE (IPLT, EXEC|DYN) > -+RELOC_TYPE (EPLT, 0) > -+RELOC_TYPE (TPREL32, DYN) > -+RELOC_TYPE (TPREL21L, 0) > -+RELOC_TYPE (TPREL14R, 0) > -+RELOC_TYPE (LTOFF_TP21L, 0) > -+RELOC_TYPE (LTOFF_TP14R, 0) > -+RELOC_TYPE (LTOFF_TP14F, 0) > -+RELOC_TYPE (TPREL64, 0) > -+RELOC_TYPE (TPREL14WR, 0) > -+RELOC_TYPE (TPREL14DR, 0) > -+RELOC_TYPE (TPREL16F, 0) > -+RELOC_TYPE (TPREL16WF, 0) > -+RELOC_TYPE (TPREL16DF, 0) > -+RELOC_TYPE (LTOFF_TP64, 0) > -+RELOC_TYPE (LTOFF_TP14WR, 0) > -+RELOC_TYPE (LTOFF_TP14DR, 0) > -+RELOC_TYPE (LTOFF_TP16F, 0) > -+RELOC_TYPE (LTOFF_TP16WF, 0) > -+RELOC_TYPE (LTOFF_TP16DF, 0) > -+RELOC_TYPE (TLS_DTPMOD32, DYN) > -+RELOC_TYPE (TLS_DTPMOD64, DYN) > -+ > -+#define NO_RELATIVE_RELOC 1 > -diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c > -new file mode 100644 > -index 000000000000..df7ec3a06e85 > ---- /dev/null > -+++ b/backends/parisc_retval.c > -@@ -0,0 +1,213 @@ > -+/* Function return value location for Linux/PA-RISC ABI. > -+ Copyright (C) 2005 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <assert.h> > -+#include <dwarf.h> > -+ > -+#define BACKEND parisc_ > -+#include "libebl_CPU.h" > -+#include "libebl_parisc.h" > -+ > -+/* %r28, or pair %r28, %r29. */ > -+static const Dwarf_Op loc_intreg32[] = > -+ { > -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 }, > -+ }; > -+ > -+static const Dwarf_Op loc_intreg[] = > -+ { > -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 }, > -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 }, > -+ }; > -+#define nloc_intreg 1 > -+#define nloc_intregpair 4 > -+ > -+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */ > -+static const Dwarf_Op loc_fpreg32[] = > -+ { > -+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 }, > -+ }; > -+#define nloc_fpreg32 2 > -+#define nloc_fpregpair32 4 > -+ > -+/* $fr4 */ > -+static const Dwarf_Op loc_fpreg[] = > -+ { > -+ { .atom = DW_OP_regx, .number = 72 }, > -+ }; > -+#define nloc_fpreg 1 > -+ > -+#if 0 > -+/* The return value is a structure and is actually stored in stack space > -+ passed in a hidden argument by the caller. Address of the location is stored > -+ in %r28 before function call, but it may be changed by function. */ > -+static const Dwarf_Op loc_aggregate[] = > -+ { > -+ { .atom = DW_OP_breg28 }, > -+ }; > -+#define nloc_aggregate 1 > -+#endif > -+ > -+static int > -+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64) > -+{ > -+ Dwarf_Word regsize = pa64 ? 8 : 4; > -+ > -+ /* Start with the function's type, and get the DW_AT_type attribute, > -+ which is the type of the return value. */ > -+ > -+ Dwarf_Attribute attr_mem; > -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); > -+ if (attr == NULL) > -+ /* The function has no return value, like a `void' function in C. */ > -+ return 0; > -+ > -+ Dwarf_Die die_mem; > -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); > -+ int tag = dwarf_tag (typedie); > -+ > -+ /* Follow typedefs and qualifiers to get to the actual type. */ > -+ while (tag == DW_TAG_typedef > -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type > -+ || tag == DW_TAG_restrict_type) > -+ { > -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); > -+ typedie = dwarf_formref_die (attr, &die_mem); > -+ tag = dwarf_tag (typedie); > -+ } > -+ > -+ switch (tag) > -+ { > -+ case -1: > -+ return -1; > -+ > -+ case DW_TAG_subrange_type: > -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) > -+ { > -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); > -+ typedie = dwarf_formref_die (attr, &die_mem); > -+ tag = dwarf_tag (typedie); > -+ } > -+ /* Fall through. */ > -+ > -+ case DW_TAG_base_type: > -+ case DW_TAG_enumeration_type: > -+ case DW_TAG_pointer_type: > -+ case DW_TAG_ptr_to_member_type: > -+ { > -+ Dwarf_Word size; > -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, > -+ &attr_mem), &size) != 0) > -+ { > -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) > -+ size = 4; > -+ else > -+ return -1; > -+ } > -+ if (tag == DW_TAG_base_type) > -+ { > -+ Dwarf_Word encoding; > -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, > -+ &attr_mem), &encoding) != 0) > -+ return -1; > -+ > -+ if (encoding == DW_ATE_float) > -+ { > -+ if (pa64) { > -+ *locp = loc_fpreg; > -+ if (size <= 8) > -+ return nloc_fpreg; > -+ } > -+ else { > -+ *locp = loc_fpreg32; > -+ if (size <= 4) > -+ return nloc_fpreg32; > -+ else if (size <= 8) > -+ return nloc_fpregpair32; > -+ } > -+ goto aggregate; > -+ } > -+ } > -+ if (pa64) > -+ *locp = loc_intreg; > -+ else > -+ *locp = loc_intreg32; > -+ if (size <= regsize) > -+ return nloc_intreg; > -+ if (size <= 2 * regsize) > -+ return nloc_intregpair; > -+ > -+ /* Else fall through. */ > -+ } > -+ > -+ case DW_TAG_structure_type: > -+ case DW_TAG_class_type: > -+ case DW_TAG_union_type: > -+ case DW_TAG_array_type: > -+ aggregate: { > -+ Dwarf_Word size; > -+ if (dwarf_aggregate_size (typedie, &size) != 0) > -+ return -1; > -+ if (pa64) > -+ *locp = loc_intreg; > -+ else > -+ *locp = loc_intreg32; > -+ if (size <= regsize) > -+ return nloc_intreg; > -+ if (size <= 2 * regsize) > -+ return nloc_intregpair; > -+#if 0 > -+ /* there should be some way to know this location... But I do not see it. */ > -+ *locp = loc_aggregate; > -+ return nloc_aggregate; > -+#endif > -+ /* fall through. */ > -+ } > -+ } > -+ > -+ /* XXX We don't have a good way to return specific errors from ebl calls. > -+ This value means we do not understand the type, but it is well-formed > -+ DWARF and might be valid. */ > -+ return -2; > -+} > -+ > -+int > -+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+{ > -+ return parisc_return_value_location_ (functypedie, locp, 0); > -+} > -+ > -+int > -+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+{ > -+ return parisc_return_value_location_ (functypedie, locp, 1); > -+} > -+ > -diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c > -new file mode 100644 > -index 000000000000..5754bd8a2384 > ---- /dev/null > -+++ b/backends/parisc_symbol.c > -@@ -0,0 +1,113 @@ > -+/* PA-RISC specific symbolic name handling. > -+ Copyright (C) 2002, 2005 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ Written by Ulrich Drepper <drepper@redhat.com>, 2002. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <elf.h> > -+#include <stddef.h> > -+ > -+#define BACKEND parisc_ > -+#include "libebl_CPU.h" > -+ > -+const char * > -+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)), > -+ size_t len __attribute__ ((unused))) > -+{ > -+ switch (segment) > -+ { > -+ case PT_PARISC_ARCHEXT: > -+ return "PARISC_ARCHEXT"; > -+ case PT_PARISC_UNWIND: > -+ return "PARISC_UNWIND"; > -+ default: > -+ break; > -+ } > -+ return NULL; > -+} > -+ > -+/* Return symbolic representation of symbol type. */ > -+const char * > -+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)), > -+ size_t len __attribute__ ((unused))) > -+{ > -+ if (symbol == STT_PARISC_MILLICODE) > -+ return "PARISC_MILLI"; > -+ return NULL; > -+} > -+ > -+/* Return symbolic representation of section type. */ > -+const char * > -+parisc_section_type_name (int type, > -+ char *buf __attribute__ ((unused)), > -+ size_t len __attribute__ ((unused))) > -+{ > -+ switch (type) > -+ { > -+ case SHT_PARISC_EXT: > -+ return "PARISC_EXT"; > -+ case SHT_PARISC_UNWIND: > -+ return "PARISC_UNWIND"; > -+ case SHT_PARISC_DOC: > -+ return "PARISC_DOC"; > -+ } > -+ > -+ return NULL; > -+} > -+ > -+/* Check whether machine flags are valid. */ > -+bool > -+parisc_machine_flag_check (GElf_Word flags) > -+{ > -+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB | > -+ EF_PARISC_WIDE | EF_PARISC_NO_KABP | > -+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH)) > -+ return 0; > -+ > -+ GElf_Word arch = flags & EF_PARISC_ARCH; > -+ > -+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) || > -+ (arch == EFA_PARISC_2_0)); > -+} > -+ > -+/* Check for the simple reloc types. */ > -+Elf_Type > -+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, > -+ int *addsub __attribute__ ((unused))) > -+{ > -+ switch (type) > -+ { > -+ case R_PARISC_DIR64: > -+ case R_PARISC_SECREL64: > -+ return ELF_T_XWORD; > -+ case R_PARISC_DIR32: > -+ case R_PARISC_SECREL32: > -+ return ELF_T_WORD; > -+ default: > -+ return ELF_T_NUM; > -+ } > -+} > -diff --git a/libelf/elf.h b/libelf/elf.h > -index 75043bcbf900..631005418650 100644 > ---- a/libelf/elf.h > -+++ b/libelf/elf.h > -@@ -2155,16 +2155,24 @@ enum > - #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ > - #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ > - #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ > -+#define R_PARISC_DPREL14WR 19 > -+#define R_PARISC_DPREL14DR 20 > - #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ > - #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ > - #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ > - #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ > - #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ > -+#define R_PARISC_DLTIND14F 39 > -+#define R_PARISC_SETBASE 40 > - #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ > -+#define R_PARISC_BASEREL21L 42 > -+#define R_PARISC_BASEREL17R 43 > -+#define R_PARISC_BASEREL14R 46 > - #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ > - #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ > - #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ > - #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ > -+#define R_PARISC_PLTOFF14F 55 > - #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ > - #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ > - #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ > -@@ -2173,6 +2181,7 @@ enum > - #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ > - #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ > - #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ > -+#define R_PARISC_PCREL22C 73 > - #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ > - #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ > - #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ > -@@ -2198,6 +2207,8 @@ enum > - #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ > - #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ > - #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ > -+#define R_PARISC_BASEREL14WR 107 > -+#define R_PARISC_BASEREL14DR 108 > - #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ > - #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ > - #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ > diff --git a/patches/elfutils-0.176/0002-arm_backend.patch b/patches/elfutils-0.176/0002-arm_backend.patch > deleted file mode 100644 > index 0c19e2968125..000000000000 > --- a/patches/elfutils-0.176/0002-arm_backend.patch > +++ /dev/null > @@ -1,620 +0,0 @@ > -From: Michael Olbrich <m.olbrich@pengutronix.de> > -Date: Mon, 4 Mar 2019 13:20:36 +0100 > -Subject: [PATCH] arm_backend > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/arm_init.c | 18 ++++- > - backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++ > - backends/arm_retval.c | 43 +++++++++++- > - backends/libebl_arm.h | 9 +++ > - libelf/elf.h | 11 +++ > - tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++- > - tests/run-allregs.sh | 95 +++++++++++++++++++++++++- > - tests/run-readelf-mixed-corenote.sh | 11 ++- > - 8 files changed, 400 insertions(+), 12 deletions(-) > - create mode 100644 backends/libebl_arm.h > - > -diff --git a/backends/arm_init.c b/backends/arm_init.c > -index f2b1b11ea5bb..1b71f1615e6d 100644 > ---- a/backends/arm_init.c > -+++ b/backends/arm_init.c > -@@ -35,20 +35,31 @@ > - #define RELOC_PREFIX R_ARM_ > - #include "libebl_CPU.h" > - > -+#include "libebl_arm.h" > -+ > - /* This defines the common reloc hooks based on arm_reloc.def. */ > - #include "common-reloc.c" > - > - > - const char * > --arm_init (Elf *elf __attribute__ ((unused)), > -+arm_init (Elf *elf, > - GElf_Half machine __attribute__ ((unused)), > - Ebl *eh, > - size_t ehlen) > - { > -+ int soft_float = 0; > -+ > - /* Check whether the Elf_BH object has a sufficent size. */ > - if (ehlen < sizeof (Ebl)) > - return NULL; > - > -+ if (elf) { > -+ GElf_Ehdr ehdr_mem; > -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); > -+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT)) > -+ soft_float = 1; > -+ } > -+ > - /* We handle it. */ > - eh->name = "ARM"; > - arm_init_reloc (eh); > -@@ -60,7 +71,10 @@ arm_init (Elf *elf __attribute__ ((unused)), > - HOOK (eh, core_note); > - HOOK (eh, auxv_info); > - HOOK (eh, check_object_attribute); > -- HOOK (eh, return_value_location); > -+ if (soft_float) > -+ eh->return_value_location = arm_return_value_location_soft; > -+ else > -+ eh->return_value_location = arm_return_value_location_hard; > - HOOK (eh, abi_cfi); > - HOOK (eh, check_reloc_target_type); > - HOOK (eh, symbol_type_name); > -diff --git a/backends/arm_regs.c b/backends/arm_regs.c > -index a46a4c9982cc..418c93180b31 100644 > ---- a/backends/arm_regs.c > -+++ b/backends/arm_regs.c > -@@ -31,6 +31,7 @@ > - #endif > - > - #include <string.h> > -+#include <stdio.h> > - #include <dwarf.h> > - > - #define BACKEND arm_ > -@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), > - break; > - > - case 16 + 0 ... 16 + 7: > -+ /* AADWARF says that there are no registers in that range, > -+ * but gcc maps FPA registers here > -+ */ > - regno += 96 - 16; > - FALLTHROUGH; > - case 96 + 0 ... 96 + 7: > -@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), > - namelen = 2; > - break; > - > -+ case 64 + 0 ... 64 + 9: > -+ *setname = "VFP"; > -+ *bits = 32; > -+ *type = DW_ATE_float; > -+ name[0] = 's'; > -+ name[1] = regno - 64 + '0'; > -+ namelen = 2; > -+ break; > -+ > -+ case 64 + 10 ... 64 + 31: > -+ *setname = "VFP"; > -+ *bits = 32; > -+ *type = DW_ATE_float; > -+ name[0] = 's'; > -+ name[1] = (regno - 64) / 10 + '0'; > -+ name[2] = (regno - 64) % 10 + '0'; > -+ namelen = 3; > -+ break; > -+ > -+ case 104 + 0 ... 104 + 7: > -+ /* XXX TODO: > -+ * This can be either intel wireless MMX general purpose/control > -+ * registers or xscale accumulator, which have different usage. > -+ * We only have the intel wireless MMX here now. > -+ * The name needs to be changed for the xscale accumulator too. */ > -+ *setname = "MMX"; > -+ *type = DW_ATE_unsigned; > -+ *bits = 32; > -+ memcpy(name, "wcgr", 4); > -+ name[4] = regno - 104 + '0'; > -+ namelen = 5; > -+ break; > -+ > -+ case 112 + 0 ... 112 + 9: > -+ *setname = "MMX"; > -+ *type = DW_ATE_unsigned; > -+ *bits = 64; > -+ name[0] = 'w'; > -+ name[1] = 'r'; > -+ name[2] = regno - 112 + '0'; > -+ namelen = 3; > -+ break; > -+ > -+ case 112 + 10 ... 112 + 15: > -+ *setname = "MMX"; > -+ *type = DW_ATE_unsigned; > -+ *bits = 64; > -+ name[0] = 'w'; > -+ name[1] = 'r'; > -+ name[2] = '1'; > -+ name[3] = regno - 112 - 10 + '0'; > -+ namelen = 4; > -+ break; > -+ > - case 128: > -+ *setname = "state"; > - *type = DW_ATE_unsigned; > - return stpcpy (name, "spsr") + 1 - name; > - > -+ case 129: > -+ *setname = "state"; > -+ *type = DW_ATE_unsigned; > -+ return stpcpy(name, "spsr_fiq") + 1 - name; > -+ > -+ case 130: > -+ *setname = "state"; > -+ *type = DW_ATE_unsigned; > -+ return stpcpy(name, "spsr_irq") + 1 - name; > -+ > -+ case 131: > -+ *setname = "state"; > -+ *type = DW_ATE_unsigned; > -+ return stpcpy(name, "spsr_abt") + 1 - name; > -+ > -+ case 132: > -+ *setname = "state"; > -+ *type = DW_ATE_unsigned; > -+ return stpcpy(name, "spsr_und") + 1 - name; > -+ > -+ case 133: > -+ *setname = "state"; > -+ *type = DW_ATE_unsigned; > -+ return stpcpy(name, "spsr_svc") + 1 - name; > -+ > -+ case 144 ... 150: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1; > -+ > -+ case 151 ... 157: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1; > -+ > -+ case 158 ... 159: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1; > -+ > -+ case 160 ... 161: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1; > -+ > -+ case 162 ... 163: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1; > -+ > -+ case 164 ... 165: > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1; > -+ > -+ case 192 ... 199: > -+ *setname = "MMX"; > -+ *bits = 32; > -+ *type = DW_ATE_unsigned; > -+ name[0] = 'w'; > -+ name[1] = 'c'; > -+ name[2] = regno - 192 + '0'; > -+ namelen = 3; > -+ break; > -+ > - case 256 + 0 ... 256 + 9: > -+ /* XXX TODO: Neon also uses those registers and can contain > -+ * both float and integers */ > - *setname = "VFP"; > - *type = DW_ATE_float; > - *bits = 64; > -diff --git a/backends/arm_retval.c b/backends/arm_retval.c > -index 1c28f016b5bc..313e4eb266a3 100644 > ---- a/backends/arm_retval.c > -+++ b/backends/arm_retval.c > -@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] = > - #define nloc_intreg 1 > - #define nloc_intregs(n) (2 * (n)) > - > -+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */ > -+static const Dwarf_Op loc_fpreg[] = > -+ { > -+ { .atom = DW_OP_reg16 }, > -+ }; > -+#define nloc_fpreg 1 > -+ > - /* The return value is a structure and is actually stored in stack space > - passed in a hidden argument by the caller. But, the compiler > - helpfully returns the address of that space in r0. */ > -@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] = > - #define nloc_aggregate 1 > - > - > --int > --arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+static int > -+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, > -+ int soft_float) > - { > - /* Start with the function's type, and get the DW_AT_type attribute, > - which is the type of the return value. */ > -@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - else > - return -1; > - } > -+ if (tag == DW_TAG_base_type) > -+ { > -+ Dwarf_Word encoding; > -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, > -+ &attr_mem), &encoding) != 0) > -+ return -1; > -+ > -+ if ((encoding == DW_ATE_float) && !soft_float) > -+ { > -+ *locp = loc_fpreg; > -+ if (size <= 8) > -+ return nloc_fpreg; > -+ goto aggregate; > -+ } > -+ } > - if (size <= 16) > - { > - intreg: > -@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - } > - > - aggregate: > -+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */ > - *locp = loc_aggregate; > - return nloc_aggregate; > - } > -@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - DWARF and might be valid. */ > - return -2; > - } > -+ > -+/* return location for -mabi=apcs-gnu -msoft-float */ > -+int > -+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+{ > -+ return arm_return_value_location_ (functypedie, locp, 1); > -+} > -+ > -+/* return location for -mabi=apcs-gnu -mhard-float (current default) */ > -+int > -+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+{ > -+ return arm_return_value_location_ (functypedie, locp, 0); > -+} > -+ > -diff --git a/backends/libebl_arm.h b/backends/libebl_arm.h > -new file mode 100644 > -index 000000000000..c00770c2e887 > ---- /dev/null > -+++ b/backends/libebl_arm.h > -@@ -0,0 +1,9 @@ > -+#ifndef _LIBEBL_ARM_H > -+#define _LIBEBL_ARM_H 1 > -+ > -+#include <libdw.h> > -+ > -+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp); > -+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp); > -+ > -+#endif > -diff --git a/libelf/elf.h b/libelf/elf.h > -index 631005418650..5dc632b73a3b 100644 > ---- a/libelf/elf.h > -+++ b/libelf/elf.h > -@@ -2694,6 +2694,9 @@ enum > - #define EF_ARM_EABI_VER4 0x04000000 > - #define EF_ARM_EABI_VER5 0x05000000 > - > -+/* EI_OSABI values */ > -+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */ > -+ > - /* Additional symbol types for Thumb. */ > - #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ > - #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ > -@@ -2711,12 +2714,19 @@ enum > - > - /* Processor specific values for the Phdr p_type field. */ > - #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ > -+#define PT_ARM_UNWIND PT_ARM_EXIDX > - > - /* Processor specific values for the Shdr sh_type field. */ > - #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ > - #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ > - #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ > - > -+/* Processor specific values for the Dyn d_tag field. */ > -+#define DT_ARM_RESERVED1 (DT_LOPROC + 0) > -+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1) > -+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2) > -+#define DT_ARM_RESERVED2 (DT_LOPROC + 3) > -+#define DT_ARM_NUM 4 > - > - /* AArch64 relocs. */ > - > -@@ -3009,6 +3019,7 @@ enum > - TLS block (LDR, STR). */ > - #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative > - to GOT origin (LDR). */ > -+/* 112 - 127 private range */ > - #define R_ARM_ME_TOO 128 /* Obsolete. */ > - #define R_ARM_THM_TLS_DESCSEQ 129 > - #define R_ARM_THM_TLS_DESCSEQ16 129 > -diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh > -index fd89d025a3f6..462d7c58b7cb 100755 > ---- a/tests/run-addrcfi.sh > -+++ b/tests/run-addrcfi.sh > -@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range > - FPA reg21 (f5): undefined > - FPA reg22 (f6): undefined > - FPA reg23 (f7): undefined > -+ VFP reg64 (s0): undefined > -+ VFP reg65 (s1): undefined > -+ VFP reg66 (s2): undefined > -+ VFP reg67 (s3): undefined > -+ VFP reg68 (s4): undefined > -+ VFP reg69 (s5): undefined > -+ VFP reg70 (s6): undefined > -+ VFP reg71 (s7): undefined > -+ VFP reg72 (s8): undefined > -+ VFP reg73 (s9): undefined > -+ VFP reg74 (s10): undefined > -+ VFP reg75 (s11): undefined > -+ VFP reg76 (s12): undefined > -+ VFP reg77 (s13): undefined > -+ VFP reg78 (s14): undefined > -+ VFP reg79 (s15): undefined > -+ VFP reg80 (s16): undefined > -+ VFP reg81 (s17): undefined > -+ VFP reg82 (s18): undefined > -+ VFP reg83 (s19): undefined > -+ VFP reg84 (s20): undefined > -+ VFP reg85 (s21): undefined > -+ VFP reg86 (s22): undefined > -+ VFP reg87 (s23): undefined > -+ VFP reg88 (s24): undefined > -+ VFP reg89 (s25): undefined > -+ VFP reg90 (s26): undefined > -+ VFP reg91 (s27): undefined > -+ VFP reg92 (s28): undefined > -+ VFP reg93 (s29): undefined > -+ VFP reg94 (s30): undefined > -+ VFP reg95 (s31): undefined > - FPA reg96 (f0): undefined > - FPA reg97 (f1): undefined > - FPA reg98 (f2): undefined > -@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range > - FPA reg101 (f5): undefined > - FPA reg102 (f6): undefined > - FPA reg103 (f7): undefined > -- integer reg128 (spsr): undefined > -+ MMX reg104 (wcgr0): undefined > -+ MMX reg105 (wcgr1): undefined > -+ MMX reg106 (wcgr2): undefined > -+ MMX reg107 (wcgr3): undefined > -+ MMX reg108 (wcgr4): undefined > -+ MMX reg109 (wcgr5): undefined > -+ MMX reg110 (wcgr6): undefined > -+ MMX reg111 (wcgr7): undefined > -+ MMX reg112 (wr0): undefined > -+ MMX reg113 (wr1): undefined > -+ MMX reg114 (wr2): undefined > -+ MMX reg115 (wr3): undefined > -+ MMX reg116 (wr4): undefined > -+ MMX reg117 (wr5): undefined > -+ MMX reg118 (wr6): undefined > -+ MMX reg119 (wr7): undefined > -+ MMX reg120 (wr8): undefined > -+ MMX reg121 (wr9): undefined > -+ MMX reg122 (wr10): undefined > -+ MMX reg123 (wr11): undefined > -+ MMX reg124 (wr12): undefined > -+ MMX reg125 (wr13): undefined > -+ MMX reg126 (wr14): undefined > -+ MMX reg127 (wr15): undefined > -+ state reg128 (spsr): undefined > -+ state reg129 (spsr_fiq): undefined > -+ state reg130 (spsr_irq): undefined > -+ state reg131 (spsr_abt): undefined > -+ state reg132 (spsr_und): undefined > -+ state reg133 (spsr_svc): undefined > -+ integer reg144 (r8_usr): undefined > -+ integer reg145 (r9_usr): undefined > -+ integer reg146 (r10_usr): undefined > -+ integer reg147 (r11_usr): undefined > -+ integer reg148 (r12_usr): undefined > -+ integer reg149 (r13_usr): undefined > -+ integer reg150 (r14_usr): undefined > -+ integer reg151 (r8_fiq): undefined > -+ integer reg152 (r9_fiq): undefined > -+ integer reg153 (r10_fiq): undefined > -+ integer reg154 (r11_fiq): undefined > -+ integer reg155 (r12_fiq): undefined > -+ integer reg156 (r13_fiq): undefined > -+ integer reg157 (r14_fiq): undefined > -+ integer reg158 (r13_irq): undefined > -+ integer reg159 (r14_irq): undefined > -+ integer reg160 (r13_abt): undefined > -+ integer reg161 (r14_abt): undefined > -+ integer reg162 (r13_und): undefined > -+ integer reg163 (r14_und): undefined > -+ integer reg164 (r13_svc): undefined > -+ integer reg165 (r14_svc): undefined > -+ MMX reg192 (wc0): undefined > -+ MMX reg193 (wc1): undefined > -+ MMX reg194 (wc2): undefined > -+ MMX reg195 (wc3): undefined > -+ MMX reg196 (wc4): undefined > -+ MMX reg197 (wc5): undefined > -+ MMX reg198 (wc6): undefined > -+ MMX reg199 (wc7): undefined > - VFP reg256 (d0): undefined > - VFP reg257 (d1): undefined > - VFP reg258 (d2): undefined > -diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh > -index 1422bd67dbf0..dc0fc9914873 100755 > ---- a/tests/run-allregs.sh > -+++ b/tests/run-allregs.sh > -@@ -2672,7 +2672,28 @@ integer registers: > - 13: sp (sp), address 32 bits > - 14: lr (lr), address 32 bits > - 15: pc (pc), address 32 bits > -- 128: spsr (spsr), unsigned 32 bits > -+ 144: r8_usr (r8_usr), signed 32 bits > -+ 145: r9_usr (r9_usr), signed 32 bits > -+ 146: r10_usr (r10_usr), signed 32 bits > -+ 147: r11_usr (r11_usr), signed 32 bits > -+ 148: r12_usr (r12_usr), signed 32 bits > -+ 149: r13_usr (r13_usr), signed 32 bits > -+ 150: r14_usr (r14_usr), signed 32 bits > -+ 151: r8_fiq (r8_fiq), signed 32 bits > -+ 152: r9_fiq (r9_fiq), signed 32 bits > -+ 153: r10_fiq (r10_fiq), signed 32 bits > -+ 154: r11_fiq (r11_fiq), signed 32 bits > -+ 155: r12_fiq (r12_fiq), signed 32 bits > -+ 156: r13_fiq (r13_fiq), signed 32 bits > -+ 157: r14_fiq (r14_fiq), signed 32 bits > -+ 158: r13_irq (r13_irq), signed 32 bits > -+ 159: r14_irq (r14_irq), signed 32 bits > -+ 160: r13_abt (r13_abt), signed 32 bits > -+ 161: r14_abt (r14_abt), signed 32 bits > -+ 162: r13_und (r13_und), signed 32 bits > -+ 163: r14_und (r14_und), signed 32 bits > -+ 164: r13_svc (r13_svc), signed 32 bits > -+ 165: r14_svc (r14_svc), signed 32 bits > - FPA registers: > - 16: f0 (f0), float 96 bits > - 17: f1 (f1), float 96 bits > -@@ -2690,7 +2711,72 @@ FPA registers: > - 101: f5 (f5), float 96 bits > - 102: f6 (f6), float 96 bits > - 103: f7 (f7), float 96 bits > -+MMX registers: > -+ 104: wcgr0 (wcgr0), unsigned 32 bits > -+ 105: wcgr1 (wcgr1), unsigned 32 bits > -+ 106: wcgr2 (wcgr2), unsigned 32 bits > -+ 107: wcgr3 (wcgr3), unsigned 32 bits > -+ 108: wcgr4 (wcgr4), unsigned 32 bits > -+ 109: wcgr5 (wcgr5), unsigned 32 bits > -+ 110: wcgr6 (wcgr6), unsigned 32 bits > -+ 111: wcgr7 (wcgr7), unsigned 32 bits > -+ 112: wr0 (wr0), unsigned 64 bits > -+ 113: wr1 (wr1), unsigned 64 bits > -+ 114: wr2 (wr2), unsigned 64 bits > -+ 115: wr3 (wr3), unsigned 64 bits > -+ 116: wr4 (wr4), unsigned 64 bits > -+ 117: wr5 (wr5), unsigned 64 bits > -+ 118: wr6 (wr6), unsigned 64 bits > -+ 119: wr7 (wr7), unsigned 64 bits > -+ 120: wr8 (wr8), unsigned 64 bits > -+ 121: wr9 (wr9), unsigned 64 bits > -+ 122: wr10 (wr10), unsigned 64 bits > -+ 123: wr11 (wr11), unsigned 64 bits > -+ 124: wr12 (wr12), unsigned 64 bits > -+ 125: wr13 (wr13), unsigned 64 bits > -+ 126: wr14 (wr14), unsigned 64 bits > -+ 127: wr15 (wr15), unsigned 64 bits > -+ 192: wc0 (wc0), unsigned 32 bits > -+ 193: wc1 (wc1), unsigned 32 bits > -+ 194: wc2 (wc2), unsigned 32 bits > -+ 195: wc3 (wc3), unsigned 32 bits > -+ 196: wc4 (wc4), unsigned 32 bits > -+ 197: wc5 (wc5), unsigned 32 bits > -+ 198: wc6 (wc6), unsigned 32 bits > -+ 199: wc7 (wc7), unsigned 32 bits > - VFP registers: > -+ 64: s0 (s0), float 32 bits > -+ 65: s1 (s1), float 32 bits > -+ 66: s2 (s2), float 32 bits > -+ 67: s3 (s3), float 32 bits > -+ 68: s4 (s4), float 32 bits > -+ 69: s5 (s5), float 32 bits > -+ 70: s6 (s6), float 32 bits > -+ 71: s7 (s7), float 32 bits > -+ 72: s8 (s8), float 32 bits > -+ 73: s9 (s9), float 32 bits > -+ 74: s10 (s10), float 32 bits > -+ 75: s11 (s11), float 32 bits > -+ 76: s12 (s12), float 32 bits > -+ 77: s13 (s13), float 32 bits > -+ 78: s14 (s14), float 32 bits > -+ 79: s15 (s15), float 32 bits > -+ 80: s16 (s16), float 32 bits > -+ 81: s17 (s17), float 32 bits > -+ 82: s18 (s18), float 32 bits > -+ 83: s19 (s19), float 32 bits > -+ 84: s20 (s20), float 32 bits > -+ 85: s21 (s21), float 32 bits > -+ 86: s22 (s22), float 32 bits > -+ 87: s23 (s23), float 32 bits > -+ 88: s24 (s24), float 32 bits > -+ 89: s25 (s25), float 32 bits > -+ 90: s26 (s26), float 32 bits > -+ 91: s27 (s27), float 32 bits > -+ 92: s28 (s28), float 32 bits > -+ 93: s29 (s29), float 32 bits > -+ 94: s30 (s30), float 32 bits > -+ 95: s31 (s31), float 32 bits > - 256: d0 (d0), float 64 bits > - 257: d1 (d1), float 64 bits > - 258: d2 (d2), float 64 bits > -@@ -2723,6 +2809,13 @@ VFP registers: > - 285: d29 (d29), float 64 bits > - 286: d30 (d30), float 64 bits > - 287: d31 (d31), float 64 bits > -+state registers: > -+ 128: spsr (spsr), unsigned 32 bits > -+ 129: spsr_fiq (spsr_fiq), unsigned 32 bits > -+ 130: spsr_irq (spsr_irq), unsigned 32 bits > -+ 131: spsr_abt (spsr_abt), unsigned 32 bits > -+ 132: spsr_und (spsr_und), unsigned 32 bits > -+ 133: spsr_svc (spsr_svc), unsigned 32 bits > - EOF > - > - # See run-readelf-mixed-corenote.sh for instructions to regenerate > -diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh > -index c960f1d6160e..e4bf0746b208 100755 > ---- a/tests/run-readelf-mixed-corenote.sh > -+++ b/tests/run-readelf-mixed-corenote.sh > -@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x274: > - pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 > - utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 > - orig_r0: -1, fpvalid: 1 > -- r0: 1 r1: -1091672508 r2: -1091672500 > -- r3: 0 r4: 0 r5: 0 > -- r6: 33728 r7: 0 r8: 0 > -- r9: 0 r10: -1225703496 r11: -1091672844 > -- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 > -- pc: 0x00008500 spsr: 0x60000010 > -+ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0 > -+ r4: 0 r5: 0 r6: 33728 r7: 0 > -+ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844 > -+ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500 > -+ spsr: 0x60000010 > - CORE 124 PRPSINFO > - state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 > - uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 > diff --git a/patches/elfutils-0.176/0003-mips_backend.patch b/patches/elfutils-0.176/0003-mips_backend.patch > deleted file mode 100644 > index e613f4a05418..000000000000 > --- a/patches/elfutils-0.176/0003-mips_backend.patch > +++ /dev/null > @@ -1,712 +0,0 @@ > -From: Michael Olbrich <m.olbrich@pengutronix.de> > -Date: Mon, 4 Mar 2019 13:20:36 +0100 > -Subject: [PATCH] mips_backend > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/Makefile.am | 8 +- > - backends/mips_init.c | 59 +++++++++ > - backends/mips_regs.c | 104 ++++++++++++++++ > - backends/mips_reloc.def | 79 ++++++++++++ > - backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++++++++++ > - backends/mips_symbol.c | 53 ++++++++ > - libebl/eblopenbackend.c | 2 + > - 7 files changed, 624 insertions(+), 2 deletions(-) > - create mode 100644 backends/mips_init.c > - create mode 100644 backends/mips_regs.c > - create mode 100644 backends/mips_reloc.def > - create mode 100644 backends/mips_retval.c > - create mode 100644 backends/mips_symbol.c > - > -diff --git a/backends/Makefile.am b/backends/Makefile.am > -index 5671a32c4210..ba84da61cd20 100644 > ---- a/backends/Makefile.am > -+++ b/backends/Makefile.am > -@@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ > - > - > - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ > -- tilegx m68k bpf riscv parisc > -+ tilegx m68k bpf riscv parisc mips > - libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \ > - libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \ > - libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \ > - libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \ > - libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ > -- libebl_parisc_pic.a > -+ libebl_parisc_pic.a libebl_mips_pic.a > - noinst_LIBRARIES = $(libebl_pic) > - noinst_DATA = $(libebl_pic:_pic.a=.so) > - > -@@ -141,6 +141,10 @@ parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c > - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) > - am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) > - > -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c > -+libebl_mips_pic_a_SOURCES = $(mips_SRCS) > -+am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) > -+ > - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) > - @rm -f $(@:.so=.map) > - $(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \ > -diff --git a/backends/mips_init.c b/backends/mips_init.c > -new file mode 100644 > -index 000000000000..975c04e1e168 > ---- /dev/null > -+++ b/backends/mips_init.c > -@@ -0,0 +1,59 @@ > -+/* Initialization of mips specific backend library. > -+ Copyright (C) 2006 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#define BACKEND mips_ > -+#define RELOC_PREFIX R_MIPS_ > -+#include "libebl_CPU.h" > -+ > -+/* This defines the common reloc hooks based on mips_reloc.def. */ > -+#include "common-reloc.c" > -+ > -+const char * > -+mips_init (Elf *elf __attribute__ ((unused)), > -+ GElf_Half machine __attribute__ ((unused)), > -+ Ebl *eh, > -+ size_t ehlen) > -+{ > -+ /* Check whether the Elf_BH object has a sufficent size. */ > -+ if (ehlen < sizeof (Ebl)) > -+ return NULL; > -+ > -+ /* We handle it. */ > -+ if (machine == EM_MIPS) > -+ eh->name = "MIPS R3000 big-endian"; > -+ else if (machine == EM_MIPS_RS3_LE) > -+ eh->name = "MIPS R3000 little-endian"; > -+ > -+ mips_init_reloc (eh); > -+ HOOK (eh, reloc_simple_type); > -+ HOOK (eh, return_value_location); > -+ HOOK (eh, register_info); > -+ > -+ return MODVERSION; > -+} > -diff --git a/backends/mips_regs.c b/backends/mips_regs.c > -new file mode 100644 > -index 000000000000..44f86cb46302 > ---- /dev/null > -+++ b/backends/mips_regs.c > -@@ -0,0 +1,104 @@ > -+/* Register names and numbers for MIPS DWARF. > -+ Copyright (C) 2006 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <string.h> > -+#include <dwarf.h> > -+ > -+#define BACKEND mips_ > -+#include "libebl_CPU.h" > -+ > -+ssize_t > -+mips_register_info (Ebl *ebl __attribute__((unused)), > -+ int regno, char *name, size_t namelen, > -+ const char **prefix, const char **setname, > -+ int *bits, int *type) > -+{ > -+ if (name == NULL) > -+ return 66; > -+ > -+ if (regno < 0 || regno > 65 || namelen < 4) > -+ return -1; > -+ > -+ *prefix = "$"; > -+ > -+ if (regno < 32) > -+ { > -+ *setname = "integer"; > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ if (regno < 32 + 10) > -+ { > -+ name[0] = regno + '0'; > -+ namelen = 1; > -+ } > -+ else > -+ { > -+ name[0] = (regno / 10) + '0'; > -+ name[1] = (regno % 10) + '0'; > -+ namelen = 2; > -+ } > -+ } > -+ else if (regno < 64) > -+ { > -+ *setname = "FPU"; > -+ *type = DW_ATE_float; > -+ *bits = 32; > -+ name[0] = 'f'; > -+ if (regno < 32 + 10) > -+ { > -+ name[1] = (regno - 32) + '0'; > -+ namelen = 2; > -+ } > -+ else > -+ { > -+ name[1] = (regno - 32) / 10 + '0'; > -+ name[2] = (regno - 32) % 10 + '0'; > -+ namelen = 3; > -+ } > -+ } > -+ else if (regno == 64) > -+ { > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ name[0] = 'h'; > -+ name[1] = 'i'; > -+ namelen = 2; > -+ } > -+ else > -+ { > -+ *type = DW_ATE_signed; > -+ *bits = 32; > -+ name[0] = 'l'; > -+ name[1] = 'o'; > -+ namelen = 2; > -+ } > -+ > -+ name[namelen++] = '\0'; > -+ return namelen; > -+} > -diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def > -new file mode 100644 > -index 000000000000..457997020340 > ---- /dev/null > -+++ b/backends/mips_reloc.def > -@@ -0,0 +1,79 @@ > -+/* List the relocation types for mips. -*- C -*- > -+ Copyright (C) 2006 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+/* NAME, REL|EXEC|DYN */ > -+ > -+RELOC_TYPE (NONE, 0) > -+RELOC_TYPE (16, 0) > -+RELOC_TYPE (32, 0) > -+RELOC_TYPE (REL32, 0) > -+RELOC_TYPE (26, 0) > -+RELOC_TYPE (HI16, 0) > -+RELOC_TYPE (LO16, 0) > -+RELOC_TYPE (GPREL16, 0) > -+RELOC_TYPE (LITERAL, 0) > -+RELOC_TYPE (GOT16, 0) > -+RELOC_TYPE (PC16, 0) > -+RELOC_TYPE (CALL16, 0) > -+RELOC_TYPE (GPREL32, 0) > -+ > -+RELOC_TYPE (SHIFT5, 0) > -+RELOC_TYPE (SHIFT6, 0) > -+RELOC_TYPE (64, 0) > -+RELOC_TYPE (GOT_DISP, 0) > -+RELOC_TYPE (GOT_PAGE, 0) > -+RELOC_TYPE (GOT_OFST, 0) > -+RELOC_TYPE (GOT_HI16, 0) > -+RELOC_TYPE (GOT_LO16, 0) > -+RELOC_TYPE (SUB, 0) > -+RELOC_TYPE (INSERT_A, 0) > -+RELOC_TYPE (INSERT_B, 0) > -+RELOC_TYPE (DELETE, 0) > -+RELOC_TYPE (HIGHER, 0) > -+RELOC_TYPE (HIGHEST, 0) > -+RELOC_TYPE (CALL_HI16, 0) > -+RELOC_TYPE (CALL_LO16, 0) > -+RELOC_TYPE (SCN_DISP, 0) > -+RELOC_TYPE (REL16, 0) > -+RELOC_TYPE (ADD_IMMEDIATE, 0) > -+RELOC_TYPE (PJUMP, 0) > -+RELOC_TYPE (RELGOT, 0) > -+RELOC_TYPE (JALR, 0) > -+RELOC_TYPE (TLS_DTPMOD32, 0) > -+RELOC_TYPE (TLS_DTPREL32, 0) > -+RELOC_TYPE (TLS_DTPMOD64, 0) > -+RELOC_TYPE (TLS_DTPREL64, 0) > -+RELOC_TYPE (TLS_GD, 0) > -+RELOC_TYPE (TLS_LDM, 0) > -+RELOC_TYPE (TLS_DTPREL_HI16, 0) > -+RELOC_TYPE (TLS_DTPREL_LO16, 0) > -+RELOC_TYPE (TLS_GOTTPREL, 0) > -+RELOC_TYPE (TLS_TPREL32, 0) > -+RELOC_TYPE (TLS_TPREL64, 0) > -+RELOC_TYPE (TLS_TPREL_HI16, 0) > -+RELOC_TYPE (TLS_TPREL_LO16, 0) > -+ > -+#define NO_COPY_RELOC 1 > -+#define NO_RELATIVE_RELOC 1 > -diff --git a/backends/mips_retval.c b/backends/mips_retval.c > -new file mode 100644 > -index 000000000000..656cd1f47507 > ---- /dev/null > -+++ b/backends/mips_retval.c > -@@ -0,0 +1,321 @@ > -+/* Function return value location for Linux/mips ABI. > -+ Copyright (C) 2005 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <string.h> > -+#include <assert.h> > -+#include <dwarf.h> > -+#include <elf.h> > -+ > -+#include "../libebl/libeblP.h" > -+#include "../libdw/libdwP.h" > -+ > -+#define BACKEND mips_ > -+#include "libebl_CPU.h" > -+ > -+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ > -+#define EF_MIPS_ABI 0x0000F000 > -+ > -+/* The original o32 abi. */ > -+#define E_MIPS_ABI_O32 0x00001000 > -+ > -+/* O32 extended to work on 64 bit architectures */ > -+#define E_MIPS_ABI_O64 0x00002000 > -+ > -+/* EABI in 32 bit mode */ > -+#define E_MIPS_ABI_EABI32 0x00003000 > -+ > -+/* EABI in 64 bit mode */ > -+#define E_MIPS_ABI_EABI64 0x00004000 > -+ > -+/* All the possible MIPS ABIs. */ > -+enum mips_abi > -+ { > -+ MIPS_ABI_UNKNOWN = 0, > -+ MIPS_ABI_N32, > -+ MIPS_ABI_O32, > -+ MIPS_ABI_N64, > -+ MIPS_ABI_O64, > -+ MIPS_ABI_EABI32, > -+ MIPS_ABI_EABI64, > -+ MIPS_ABI_LAST > -+ }; > -+ > -+/* Find the mips ABI of the current file */ > -+enum mips_abi find_mips_abi(Elf *elf) > -+{ > -+ GElf_Ehdr ehdr_mem; > -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); > -+ > -+ if (ehdr == NULL) > -+ return MIPS_ABI_LAST; > -+ > -+ GElf_Word elf_flags = ehdr->e_flags; > -+ > -+ /* Check elf_flags to see if it specifies the ABI being used. */ > -+ switch ((elf_flags & EF_MIPS_ABI)) > -+ { > -+ case E_MIPS_ABI_O32: > -+ return MIPS_ABI_O32; > -+ case E_MIPS_ABI_O64: > -+ return MIPS_ABI_O64; > -+ case E_MIPS_ABI_EABI32: > -+ return MIPS_ABI_EABI32; > -+ case E_MIPS_ABI_EABI64: > -+ return MIPS_ABI_EABI64; > -+ default: > -+ if ((elf_flags & EF_MIPS_ABI2)) > -+ return MIPS_ABI_N32; > -+ } > -+ > -+ /* GCC creates a pseudo-section whose name describes the ABI. */ > -+ size_t shstrndx; > -+ if (elf_getshdrstrndx (elf, &shstrndx) < 0) > -+ return MIPS_ABI_LAST; > -+ > -+ const char *name; > -+ Elf_Scn *scn = NULL; > -+ while ((scn = elf_nextscn (elf, scn)) != NULL) > -+ { > -+ GElf_Shdr shdr_mem; > -+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > -+ if (shdr == NULL) > -+ return MIPS_ABI_LAST; > -+ > -+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: ""; > -+ if (strncmp (name, ".mdebug.", 8) != 0) > -+ continue; > -+ > -+ if (strcmp (name, ".mdebug.abi32") == 0) > -+ return MIPS_ABI_O32; > -+ else if (strcmp (name, ".mdebug.abiN32") == 0) > -+ return MIPS_ABI_N32; > -+ else if (strcmp (name, ".mdebug.abi64") == 0) > -+ return MIPS_ABI_N64; > -+ else if (strcmp (name, ".mdebug.abiO64") == 0) > -+ return MIPS_ABI_O64; > -+ else if (strcmp (name, ".mdebug.eabi32") == 0) > -+ return MIPS_ABI_EABI32; > -+ else if (strcmp (name, ".mdebug.eabi64") == 0) > -+ return MIPS_ABI_EABI64; > -+ else > -+ return MIPS_ABI_UNKNOWN; > -+ } > -+ > -+ return MIPS_ABI_UNKNOWN; > -+} > -+ > -+unsigned int > -+mips_abi_regsize (enum mips_abi abi) > -+{ > -+ switch (abi) > -+ { > -+ case MIPS_ABI_EABI32: > -+ case MIPS_ABI_O32: > -+ return 4; > -+ case MIPS_ABI_N32: > -+ case MIPS_ABI_N64: > -+ case MIPS_ABI_O64: > -+ case MIPS_ABI_EABI64: > -+ return 8; > -+ case MIPS_ABI_UNKNOWN: > -+ case MIPS_ABI_LAST: > -+ default: > -+ return 0; > -+ } > -+} > -+ > -+ > -+/* $v0 or pair $v0, $v1 */ > -+static const Dwarf_Op loc_intreg_o32[] = > -+ { > -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 }, > -+ }; > -+ > -+static const Dwarf_Op loc_intreg[] = > -+ { > -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 }, > -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 }, > -+ }; > -+#define nloc_intreg 1 > -+#define nloc_intregpair 4 > -+ > -+/* $f0 (float), or pair $f0, $f1 (double). > -+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */ > -+static const Dwarf_Op loc_fpreg_o32[] = > -+ { > -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 }, > -+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 }, > -+ }; > -+ > -+/* $f0, or pair $f0, $f2. */ > -+static const Dwarf_Op loc_fpreg[] = > -+ { > -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 }, > -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 }, > -+ }; > -+#define nloc_fpreg 1 > -+#define nloc_fpregpair 4 > -+#define nloc_fpregquad 8 > -+ > -+/* The return value is a structure and is actually stored in stack space > -+ passed in a hidden argument by the caller. But, the compiler > -+ helpfully returns the address of that space in $v0. */ > -+static const Dwarf_Op loc_aggregate[] = > -+ { > -+ { .atom = DW_OP_breg2, .number = 0 } > -+ }; > -+#define nloc_aggregate 1 > -+ > -+int > -+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > -+{ > -+ /* First find the ABI used by the elf object */ > -+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf); > -+ > -+ /* Something went seriously wrong while trying to figure out the ABI */ > -+ if (abi == MIPS_ABI_LAST) > -+ return -1; > -+ > -+ /* We couldn't identify the ABI, but the file seems valid */ > -+ if (abi == MIPS_ABI_UNKNOWN) > -+ return -2; > -+ > -+ /* Can't handle EABI variants */ > -+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64)) > -+ return -2; > -+ > -+ unsigned int regsize = mips_abi_regsize (abi); > -+ if (!regsize) > -+ return -2; > -+ > -+ /* Start with the function's type, and get the DW_AT_type attribute, > -+ which is the type of the return value. */ > -+ > -+ Dwarf_Attribute attr_mem; > -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); > -+ if (attr == NULL) > -+ /* The function has no return value, like a `void' function in C. */ > -+ return 0; > -+ > -+ Dwarf_Die die_mem; > -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); > -+ int tag = dwarf_tag (typedie); > -+ > -+ /* Follow typedefs and qualifiers to get to the actual type. */ > -+ while (tag == DW_TAG_typedef > -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type > -+ || tag == DW_TAG_restrict_type) > -+ { > -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); > -+ typedie = dwarf_formref_die (attr, &die_mem); > -+ tag = dwarf_tag (typedie); > -+ } > -+ > -+ switch (tag) > -+ { > -+ case -1: > -+ return -1; > -+ > -+ case DW_TAG_subrange_type: > -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) > -+ { > -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); > -+ typedie = dwarf_formref_die (attr, &die_mem); > -+ tag = dwarf_tag (typedie); > -+ } > -+ /* Fall through. */ > -+ > -+ case DW_TAG_base_type: > -+ case DW_TAG_enumeration_type: > -+ case DW_TAG_pointer_type: > -+ case DW_TAG_ptr_to_member_type: > -+ { > -+ Dwarf_Word size; > -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, > -+ &attr_mem), &size) != 0) > -+ { > -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) > -+ size = regsize; > -+ else > -+ return -1; > -+ } > -+ if (tag == DW_TAG_base_type) > -+ { > -+ Dwarf_Word encoding; > -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, > -+ &attr_mem), &encoding) != 0) > -+ return -1; > -+ > -+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc)) > -+ > -+ if (encoding == DW_ATE_float) > -+ { > -+ *locp = ABI_LOC(loc_fpreg, regsize); > -+ if (size <= regsize) > -+ return nloc_fpreg; > -+ > -+ if (size <= 2*regsize) > -+ return nloc_fpregpair; > -+ > -+ if (size <= 4*regsize && abi == MIPS_ABI_O32) > -+ return nloc_fpregquad; > -+ > -+ goto aggregate; > -+ } > -+ } > -+ *locp = ABI_LOC(loc_intreg, regsize); > -+ if (size <= regsize) > -+ return nloc_intreg; > -+ if (size <= 2*regsize) > -+ return nloc_intregpair; > -+ > -+ /* Else fall through. Shouldn't happen though (at least with gcc) */ > -+ } > -+ > -+ case DW_TAG_structure_type: > -+ case DW_TAG_class_type: > -+ case DW_TAG_union_type: > -+ case DW_TAG_array_type: > -+ aggregate: > -+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ > -+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) > -+ return -2; > -+ > -+ *locp = loc_aggregate; > -+ return nloc_aggregate; > -+ } > -+ > -+ /* XXX We don't have a good way to return specific errors from ebl calls. > -+ This value means we do not understand the type, but it is well-formed > -+ DWARF and might be valid. */ > -+ return -2; > -+} > -diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c > -new file mode 100644 > -index 000000000000..261b05dad2d3 > ---- /dev/null > -+++ b/backends/mips_symbol.c > -@@ -0,0 +1,53 @@ > -+/* MIPS specific symbolic name handling. > -+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc. > -+ This file is part of Red Hat elfutils. > -+ Written by Jakub Jelinek <jakub@redhat.com>, 2002. > -+ > -+ Red Hat elfutils is free software; you can redistribute it and/or modify > -+ it under the terms of the GNU General Public License as published by the > -+ Free Software Foundation; version 2 of the License. > -+ > -+ Red Hat elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received a copy of the GNU General Public License along > -+ with Red Hat elfutils; if not, write to the Free Software Foundation, > -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. > -+ > -+ Red Hat elfutils is an included package of the Open Invention Network. > -+ An included package of the Open Invention Network is a package for which > -+ Open Invention Network licensees cross-license their patents. No patent > -+ license is granted, either expressly or impliedly, by designation as an > -+ included package. Should you wish to participate in the Open Invention > -+ Network licensing program, please visit www.openinventionnetwork.com > -+ <http://www.openinventionnetwork.com>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <elf.h> > -+#include <stddef.h> > -+ > -+#define BACKEND mips_ > -+#include "libebl_CPU.h" > -+ > -+/* Check for the simple reloc types. */ > -+Elf_Type > -+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, > -+ int *addsub __attribute__ ((unused))) > -+{ > -+ switch (type) > -+ { > -+ case R_MIPS_16: > -+ return ELF_T_HALF; > -+ case R_MIPS_32: > -+ return ELF_T_WORD; > -+ case R_MIPS_64: > -+ return ELF_T_XWORD; > -+ default: > -+ return ELF_T_NUM; > -+ } > -+} > -diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c > -index d54b720756c3..6cf766f65115 100644 > ---- a/libebl/eblopenbackend.c > -+++ b/libebl/eblopenbackend.c > -@@ -71,6 +71,8 @@ static const struct > - { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, > - { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, > - { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 }, > -+ { "mips", "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, > -+ { "mips", "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, > - > - { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 }, > - { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, > diff --git a/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch b/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch > deleted file mode 100644 > index 445f7ab6054b..000000000000 > --- a/patches/elfutils-0.176/0004-Make-readelf-w-output-debug-information-on-mips.patch > +++ /dev/null > @@ -1,29 +0,0 @@ > -From: Kurt Roeckx <kurt@roeckx.be> > -Date: Mon, 4 Mar 2019 13:20:36 +0100 > -Subject: [PATCH] Make readelf -w output debug information on mips > - > -Upstreams wants a change where this is handled by a hook that needs > -to be filled in by the backend for the arch. > - > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - src/readelf.c | 3 ++- > - 1 file changed, 2 insertions(+), 1 deletion(-) > - > -diff --git a/src/readelf.c b/src/readelf.c > -index 33706bdefacf..ef13159b744d 100644 > ---- a/src/readelf.c > -+++ b/src/readelf.c > -@@ -11148,7 +11148,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) > - GElf_Shdr shdr_mem; > - GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > - > -- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS) > -+ if (shdr != NULL && ( > -+ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF))) > - { > - static const struct > - { > diff --git a/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch b/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch > deleted file mode 100644 > index 9860b4548922..000000000000 > --- a/patches/elfutils-0.176/0005-Ignore-differences-between-mips-machine-identifiers.patch > +++ /dev/null > @@ -1,34 +0,0 @@ > -From: James Cowgill <james410@cowgill.org.uk> > -Date: Mon, 5 Jan 2015 15:16:58 +0000 > -Subject: [PATCH] Ignore differences between mips machine identifiers > - > -Little endian binaries actually use EM_MIPS so you can't tell the endianness > -from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the > -kernel will not load binaries containing it). > - > -Signed-off-by: James Cowgill <james410@cowgill.org.uk> > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/mips_init.c | 6 +----- > - 1 file changed, 1 insertion(+), 5 deletions(-) > - > -diff --git a/backends/mips_init.c b/backends/mips_init.c > -index 975c04e1e168..8482e7fe6e96 100644 > ---- a/backends/mips_init.c > -+++ b/backends/mips_init.c > -@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unused)), > - return NULL; > - > - /* We handle it. */ > -- if (machine == EM_MIPS) > -- eh->name = "MIPS R3000 big-endian"; > -- else if (machine == EM_MIPS_RS3_LE) > -- eh->name = "MIPS R3000 little-endian"; > -- > -+ eh->name = "MIPS"; > - mips_init_reloc (eh); > - HOOK (eh, reloc_simple_type); > - HOOK (eh, return_value_location); > diff --git a/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch b/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch > deleted file mode 100644 > index 29c754e2e213..000000000000 > --- a/patches/elfutils-0.176/0006-Add-support-for-mips64-abis-in-mips_retval.c.patch > +++ /dev/null > @@ -1,168 +0,0 @@ > -From: James Cowgill <james410@cowgill.org.uk> > -Date: Mon, 5 Jan 2015 15:17:01 +0000 > -Subject: [PATCH] Add support for mips64 abis in mips_retval.c > - > -Signed-off-by: James Cowgill <james410@cowgill.org.uk> > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- > - 1 file changed, 94 insertions(+), 10 deletions(-) > - > -diff --git a/backends/mips_retval.c b/backends/mips_retval.c > -index 656cd1f47507..57487bbb8e2f 100644 > ---- a/backends/mips_retval.c > -+++ b/backends/mips_retval.c > -@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) > - default: > - if ((elf_flags & EF_MIPS_ABI2)) > - return MIPS_ABI_N32; > -+ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64)) > -+ return MIPS_ABI_N64; > - } > - > - /* GCC creates a pseudo-section whose name describes the ABI. */ > -@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] = > - }; > - #define nloc_aggregate 1 > - > -+/* Test if a struct member is a float */ > -+static int is_float_child(Dwarf_Die *childdie) > -+{ > -+ /* Test if this is actually a struct member */ > -+ if (dwarf_tag(childdie) != DW_TAG_member) > -+ return 0; > -+ > -+ /* Get type of member */ > -+ Dwarf_Attribute attr_mem; > -+ Dwarf_Die child_type_mem; > -+ Dwarf_Die *child_typedie = > -+ dwarf_formref_die(dwarf_attr_integrate(childdie, > -+ DW_AT_type, > -+ &attr_mem), &child_type_mem); > -+ > -+ if (dwarf_tag(child_typedie) != DW_TAG_base_type) > -+ return 0; > -+ > -+ /* Get base subtype */ > -+ Dwarf_Word encoding; > -+ if (dwarf_formudata (dwarf_attr_integrate (child_typedie, > -+ DW_AT_encoding, > -+ &attr_mem), &encoding) != 0) > -+ return 0; > -+ > -+ return encoding == DW_ATE_float; > -+} > -+ > -+/* Returns the number of fpregs which can be returned in the given struct */ > -+static int get_struct_fpregs(Dwarf_Die *structtypedie) > -+{ > -+ Dwarf_Die child_mem; > -+ int fpregs = 0; > -+ > -+ /* Get first structure member */ > -+ if (dwarf_child(structtypedie, &child_mem) != 0) > -+ return 0; > -+ > -+ do > -+ { > -+ /* Ensure this register is a float */ > -+ if (!is_float_child(&child_mem)) > -+ return 0; > -+ > -+ fpregs++; > -+ } > -+ while (dwarf_siblingof (&child_mem, &child_mem) == 0); > -+ > -+ return fpregs; > -+} > -+ > - int > - mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - { > -@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - tag = dwarf_tag (typedie); > - } > - > -+ Dwarf_Word size; > - switch (tag) > - { > - case -1: > -@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - case DW_TAG_enumeration_type: > - case DW_TAG_pointer_type: > - case DW_TAG_ptr_to_member_type: > -- { > -- Dwarf_Word size; > - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, > - &attr_mem), &size) != 0) > - { > -@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - if (size <= 4*regsize && abi == MIPS_ABI_O32) > - return nloc_fpregquad; > - > -- goto aggregate; > -+ goto large; > - } > - } > - *locp = ABI_LOC(loc_intreg, regsize); > -@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) > - if (size <= 2*regsize) > - return nloc_intregpair; > - > -- /* Else fall through. Shouldn't happen though (at least with gcc) */ > -- } > -+ /* Else pass in memory. Shouldn't happen though (at least with gcc) */ > -+ goto large; > - > - case DW_TAG_structure_type: > - case DW_TAG_class_type: > - case DW_TAG_union_type: > -- case DW_TAG_array_type: > -- aggregate: > -- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ > -- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) > -- return -2; > -+ /* Handle special cases for structures <= 128 bytes in newer ABIs */ > -+ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 || > -+ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64) > -+ { > -+ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16) > -+ { > -+ /* > -+ * Special case in N64 / N32 - > -+ * structures containing only floats are returned in fp regs. > -+ * Everything else is returned in integer regs. > -+ */ > -+ if (tag != DW_TAG_union_type && > -+ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)) > -+ { > -+ int num_fpregs = get_struct_fpregs(typedie); > -+ if (num_fpregs == 1 || num_fpregs == 2) > -+ { > -+ *locp = loc_fpreg; > -+ if (num_fpregs == 1) > -+ return nloc_fpreg; > -+ else > -+ return nloc_fpregpair; > -+ } > -+ } > -+ > -+ *locp = loc_intreg; > -+ if (size <= 8) > -+ return nloc_intreg; > -+ else > -+ return nloc_intregpair; > -+ } > -+ } > -+ > -+ /* Fallthrough to handle large types */ > - > -+ case DW_TAG_array_type: > -+ large: > -+ /* Return large structures in memory */ > - *locp = loc_aggregate; > - return nloc_aggregate; > - } > diff --git a/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch b/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch > deleted file mode 100644 > index 46d7240ac2b7..000000000000 > --- a/patches/elfutils-0.176/0007-Add-mips-n64-relocation-format-hack.patch > +++ /dev/null > @@ -1,229 +0,0 @@ > -From: James Cowgill <james410@cowgill.org.uk> > -Date: Mon, 5 Jan 2015 15:17:02 +0000 > -Subject: [PATCH] Add mips n64 relocation format hack > - > -MIPSEL N64 ELF files use a slightly different format for storing relocation > -entries which is incompatible with the normal R_SYM / R_INFO macros. > -To workaround this, we rearrange the bytes in the relocation's r_info field > -when reading and writing the relocations. > - > -This patch also ensures that strip.c sets the correct value of e_machine > -before manipulating relocations so that these changes take effect. > - > -Signed-off-by: James Cowgill <james410@cowgill.org.uk> > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- > - libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- > - libelf/gelf_update_rel.c | 20 +++++++++++++++++++- > - libelf/gelf_update_rela.c | 20 +++++++++++++++++++- > - src/strip.c | 17 +++++++++++++++++ > - 5 files changed, 101 insertions(+), 6 deletions(-) > - > -diff --git a/libelf/gelf_getrel.c b/libelf/gelf_getrel.c > -index 309e3d37457b..2a81a97c9a45 100644 > ---- a/libelf/gelf_getrel.c > -+++ b/libelf/gelf_getrel.c > -@@ -36,6 +36,7 @@ > - > - #include "libelfP.h" > - > -+#define EF_MIPS_ABI 0x0000F000 > - > - GElf_Rel * > - gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) > -@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) > - result = NULL; > - } > - else > -- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], > -- sizeof (Elf64_Rel)); > -+ { > -+ GElf_Ehdr hdr; > -+ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], > -+ sizeof (Elf64_Rel)); > -+ > -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && > -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && > -+ hdr.e_machine == EM_MIPS && > -+ (hdr.e_flags & EF_MIPS_ABI) == 0) > -+ { > -+ /* > -+ * The relocation format is mangled on MIPSEL N64 > -+ * We'll adjust it so at least R_SYM will work on it > -+ */ > -+ GElf_Xword r_info = dst->r_info; > -+ dst->r_info = (r_info << 32) | > -+ ((r_info >> 8) & 0xFF000000) | > -+ ((r_info >> 24) & 0x00FF0000) | > -+ ((r_info >> 40) & 0x0000FF00) | > -+ ((r_info >> 56) & 0x000000FF); > -+ } > -+ } > - } > - > - rwlock_unlock (scn->elf->lock); > -diff --git a/libelf/gelf_getrela.c b/libelf/gelf_getrela.c > -index d695f6593dc4..1f42a80b4c7e 100644 > ---- a/libelf/gelf_getrela.c > -+++ b/libelf/gelf_getrela.c > -@@ -36,6 +36,7 @@ > - > - #include "libelfP.h" > - > -+#define EF_MIPS_ABI 0x0000F000 > - > - GElf_Rela * > - gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) > -@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) > - result = NULL; > - } > - else > -- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], > -- sizeof (Elf64_Rela)); > -+ { > -+ GElf_Ehdr hdr; > -+ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], > -+ sizeof (Elf64_Rela)); > -+ > -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && > -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && > -+ hdr.e_machine == EM_MIPS && > -+ (hdr.e_flags & EF_MIPS_ABI) == 0) > -+ { > -+ /* > -+ * The relocation format is mangled on MIPSEL N64 > -+ * We'll adjust it so at least R_SYM will work on it > -+ */ > -+ GElf_Xword r_info = dst->r_info; > -+ dst->r_info = (r_info << 32) | > -+ ((r_info >> 8) & 0xFF000000) | > -+ ((r_info >> 24) & 0x00FF0000) | > -+ ((r_info >> 40) & 0x0000FF00) | > -+ ((r_info >> 56) & 0x000000FF); > -+ } > -+ } > - } > - > - rwlock_unlock (scn->elf->lock); > -diff --git a/libelf/gelf_update_rel.c b/libelf/gelf_update_rel.c > -index 14f62e973a5e..90955566e4ad 100644 > ---- a/libelf/gelf_update_rel.c > -+++ b/libelf/gelf_update_rel.c > -@@ -36,6 +36,7 @@ > - > - #include "libelfP.h" > - > -+#define EF_MIPS_ABI 0x0000F000 > - > - int > - gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) > -@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) > - } > - else > - { > -+ GElf_Ehdr hdr; > -+ GElf_Rel value = *src; > -+ > - /* Check whether we have to resize the data buffer. */ > - if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) > - { > -@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) > - goto out; > - } > - > -- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src; > -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && > -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && > -+ hdr.e_machine == EM_MIPS && > -+ (hdr.e_flags & EF_MIPS_ABI) == 0) > -+ { > -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ > -+ GElf_Xword r_info = value.r_info; > -+ value.r_info = (r_info >> 32) | > -+ ((r_info << 8) & 0x000000FF00000000) | > -+ ((r_info << 24) & 0x0000FF0000000000) | > -+ ((r_info << 40) & 0x00FF000000000000) | > -+ ((r_info << 56) & 0xFF00000000000000); > -+ } > -+ > -+ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value; > - } > - > - result = 1; > -diff --git a/libelf/gelf_update_rela.c b/libelf/gelf_update_rela.c > -index 88252703976f..4caa85fb9f8e 100644 > ---- a/libelf/gelf_update_rela.c > -+++ b/libelf/gelf_update_rela.c > -@@ -36,6 +36,7 @@ > - > - #include "libelfP.h" > - > -+#define EF_MIPS_ABI 0x0000F000 > - > - int > - gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) > -@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) > - } > - else > - { > -+ GElf_Ehdr hdr; > -+ GElf_Rela value = *src; > -+ > - /* Check whether we have to resize the data buffer. */ > - if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) > - { > -@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) > - goto out; > - } > - > -- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src; > -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && > -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && > -+ hdr.e_machine == EM_MIPS && > -+ (hdr.e_flags & EF_MIPS_ABI) == 0) > -+ { > -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ > -+ GElf_Xword r_info = value.r_info; > -+ value.r_info = (r_info >> 32) | > -+ ((r_info << 8) & 0x000000FF00000000) | > -+ ((r_info << 24) & 0x0000FF0000000000) | > -+ ((r_info << 40) & 0x00FF000000000000) | > -+ ((r_info << 56) & 0xFF00000000000000); > -+ } > -+ > -+ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value; > - } > - > - result = 1; > -diff --git a/src/strip.c b/src/strip.c > -index a73009d980e6..75bd7ba60eb8 100644 > ---- a/src/strip.c > -+++ b/src/strip.c > -@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, > - goto fail; > - } > - > -+ /* Copy identity part of the ELF header now */ > -+ newehdr = gelf_getehdr (newelf, &newehdr_mem); > -+ if (newehdr == NULL) > -+ INTERNAL_ERROR (fname); > -+ > -+ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT); > -+ newehdr->e_type = ehdr->e_type; > -+ newehdr->e_machine = ehdr->e_machine; > -+ newehdr->e_version = ehdr->e_version; > -+ > -+ if (gelf_update_ehdr (newelf, newehdr) == 0) > -+ { > -+ error (0, 0, gettext ("%s: error while creating ELF header: %s"), > -+ fname, elf_errmsg (-1)); > -+ return 1; > -+ } > -+ > - /* Copy over the old program header if needed. */ > - if (phnum > 0) > - { > diff --git a/patches/elfutils-0.176/0009-mips_cfi.patch b/patches/elfutils-0.176/0009-mips_cfi.patch > deleted file mode 100644 > index 8920f0882d69..000000000000 > --- a/patches/elfutils-0.176/0009-mips_cfi.patch > +++ /dev/null > @@ -1,125 +0,0 @@ > -From: Michael Olbrich <m.olbrich@pengutronix.de> > -Date: Mon, 4 Mar 2019 13:20:36 +0100 > -Subject: [PATCH] mips_cfi > - > -Imported from elfutils_0.176-1.debian.tar.xz > - > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > ---- > - backends/Makefile.am | 2 +- > - backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > - backends/mips_init.c | 1 + > - 3 files changed, 82 insertions(+), 1 deletion(-) > - create mode 100644 backends/mips_cfi.c > - > -diff --git a/backends/Makefile.am b/backends/Makefile.am > -index ba84da61cd20..8949a59210c3 100644 > ---- a/backends/Makefile.am > -+++ b/backends/Makefile.am > -@@ -141,7 +141,7 @@ parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c > - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) > - am_libebl_parisc_pic_a_OBJECTS = $(parisc_SRCS:.c=.os) > - > --mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c > -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c > - libebl_mips_pic_a_SOURCES = $(mips_SRCS) > - am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os) > - > -diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c > -new file mode 100644 > -index 000000000000..9ffdab5beb03 > ---- /dev/null > -+++ b/backends/mips_cfi.c > -@@ -0,0 +1,80 @@ > -+/* MIPS ABI-specified defaults for DWARF CFI. > -+ Copyright (C) 2018 Kurt Roeckx, Inc. > -+ This file is part of elfutils. > -+ > -+ This file is free software; you can redistribute it and/or modify > -+ it under the terms of either > -+ > -+ * the GNU Lesser General Public License as published by the Free > -+ Software Foundation; either version 3 of the License, or (at > -+ your option) any later version > -+ > -+ or > -+ > -+ * the GNU General Public License as published by the Free > -+ Software Foundation; either version 2 of the License, or (at > -+ your option) any later version > -+ > -+ or both in parallel, as here. > -+ > -+ elfutils is distributed in the hope that it will be useful, but > -+ WITHOUT ANY WARRANTY; without even the implied warranty of > -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -+ General Public License for more details. > -+ > -+ You should have received copies of the GNU General Public License and > -+ the GNU Lesser General Public License along with this program. If > -+ not, see <http://www.gnu.org/licenses/>. */ > -+ > -+#ifdef HAVE_CONFIG_H > -+# include <config.h> > -+#endif > -+ > -+#include <dwarf.h> > -+ > -+#define BACKEND mips_ > -+#include "libebl_CPU.h" > -+ > -+int > -+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) > -+{ > -+ static const uint8_t abi_cfi[] = > -+ { > -+ /* Call-saved regs. */ > -+ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ > -+ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ > -+ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ > -+ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ > -+ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ > -+ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ > -+ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ > -+ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ > -+ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ > -+ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ > -+ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ > -+ > -+ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ > -+ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ > -+ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ > -+ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ > -+ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ > -+ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ > -+ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ > -+ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ > -+ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ > -+ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ > -+ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ > -+ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ > -+ > -+ /* The CFA is the SP. */ > -+ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), > -+ }; > -+ > -+ abi_info->initial_instructions = abi_cfi; > -+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; > -+ abi_info->data_alignment_factor = 4; > -+ > -+ abi_info->return_address_register = 31; /* $31 */ > -+ > -+ return 0; > -+} > -diff --git a/backends/mips_init.c b/backends/mips_init.c > -index 8482e7fe6e96..bce5abe1d98a 100644 > ---- a/backends/mips_init.c > -+++ b/backends/mips_init.c > -@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), > - HOOK (eh, reloc_simple_type); > - HOOK (eh, return_value_location); > - HOOK (eh, register_info); > -+ HOOK (eh, abi_cfi); > - > - return MODVERSION; > - } > diff --git a/patches/elfutils-0.176/series b/patches/elfutils-0.176/series > deleted file mode 100644 > index 7736db9475ed..000000000000 > --- a/patches/elfutils-0.176/series > +++ /dev/null > @@ -1,12 +0,0 @@ > -# generated by git-ptx-patches > -#tag:base --start-number 1 > -0001-hppa_backend.patch > -0002-arm_backend.patch > -0003-mips_backend.patch > -0004-Make-readelf-w-output-debug-information-on-mips.patch > -0005-Ignore-differences-between-mips-machine-identifiers.patch > -0006-Add-support-for-mips64-abis-in-mips_retval.c.patch > -0007-Add-mips-n64-relocation-format-hack.patch > -0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > -0009-mips_cfi.patch > -# f467d91cf75ddf16b549e11a748e16ba - git-ptx-patches magic > diff --git a/patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch b/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > similarity index 51% > rename from patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > rename to patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > index 667043c89bd4..15ec6a6d8ccd 100644 > --- a/patches/elfutils-0.176/0008-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > +++ b/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > @@ -1,16 +1,16 @@ > From: Helmut Grohne <helmut@subdivi.de> > -Date: Mon, 4 Mar 2019 13:20:36 +0100 > +Date: Thu, 30 Jul 2020 20:37:12 +0200 > Subject: [PATCH] disable -Werror as it tends to break with new gcc versions > > -Imported from elfutils_0.176-1.debian.tar.xz > +Patch imported from debian 0.180-1. > > -Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > --- > - config/eu.am | 1 - > - 1 file changed, 1 deletion(-) > + config/eu.am | 2 -- > + 1 file changed, 2 deletions(-) > > diff --git a/config/eu.am b/config/eu.am > -index 82acda3ab2cd..dede5c65811f 100644 > +index 6c3c444f143a..3bc0dc95b1fd 100644 > --- a/config/eu.am > +++ b/config/eu.am > @@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ > @@ -21,3 +21,11 @@ index 82acda3ab2cd..dede5c65811f 100644 > $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ > $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ > $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ > +@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ > + -Wtrampolines \ > + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ > + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ > +- $(if $($(*F)_no_Werror),,-Werror) \ > + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ > + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ > + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ > diff --git a/patches/elfutils-0.176/autogen.sh b/patches/elfutils-0.180/autogen.sh > similarity index 100% > rename from patches/elfutils-0.176/autogen.sh > rename to patches/elfutils-0.180/autogen.sh > diff --git a/patches/elfutils-0.180/series b/patches/elfutils-0.180/series > new file mode 100644 > index 000000000000..6e83826e3150 > --- /dev/null > +++ b/patches/elfutils-0.180/series > @@ -0,0 +1,4 @@ > +# generated by git-ptx-patches > +#tag:base --start-number 1 > +0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch > +# 881dc427356ca2d007dd3d3f576ea5a8 - git-ptx-patches magic > diff --git a/rules/host-libelf.make b/rules/host-libelf.make > index 7a319b9f316c..25ff97259c41 100644 > --- a/rules/host-libelf.make > +++ b/rules/host-libelf.make > @@ -28,11 +28,13 @@ HOST_LIBELF_CONF_OPT := \ > --disable-gcov \ > --disable-sanitize-undefined \ > --disable-valgrind \ > + --disable-valgrind-annotations \ > --disable-tests-rpath \ > - --enable-libebl-subdir=elfutils \ > --enable-textrelcheck \ > --enable-symbol-versioning \ > --disable-nls \ > + --disable-debuginfod \ > + --without-valgrind \ > --with-zlib \ > --without-bzlib \ > --without-lzma \ > diff --git a/rules/libelf.make b/rules/libelf.make > index 815ac1205f1c..21cbf3b32c0d 100644 > --- a/rules/libelf.make > +++ b/rules/libelf.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf > # > # Paths and names > # > -LIBELF_VERSION := 0.176 > -LIBELF_MD5 := 077e4f49320cad82bf17a997068b1db9 > +LIBELF_VERSION := 0.180 > +LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b > LIBELF := elfutils-$(LIBELF_VERSION) > LIBELF_SUFFIX := tar.bz2 > LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX) > @@ -42,11 +42,13 @@ LIBELF_CONF_OPT := \ > --disable-gcov \ > --disable-sanitize-undefined \ > --disable-valgrind \ > + --disable-valgrind-annotations \ > --disable-tests-rpath \ > - --enable-libebl-subdir=elfutils \ > --enable-textrelcheck \ > --enable-symbol-versioning \ > --disable-nls \ > + --disable-debuginfod \ > + --without-valgrind \ > --with-zlib \ > --without-bzlib \ > --without-lzma \ > @@ -74,10 +76,6 @@ $(STATEDIR)/libelf.targetinstall: > > ifdef PTXCONF_LIBELF_LIBDW > @$(call install_lib, libelf, 0, 0, 0644, libdw-$(LIBELF_VERSION)) > - @$(call install_lib, libelf, 0, 0, 0644, \ > - elfutils/libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION)) > - @$(call install_link, libelf, libebl_$(LIBELF_ARCH)-$(LIBELF_VERSION).so, \ > - /usr/lib/elfutils/libebl_$(LIBELF_ARCH).so) > endif > > ifdef PTXCONF_LIBELF_LIBASM _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 3/9] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 Robert Schwebel ` (6 subsequent siblings) 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel There is a new option to install and use firewalld zone for shared mode; we set it to false by default, until someone uses firewalld with networkmanager. Since 1.25.2-dev-90-g10020a946 in NetworkManager, there is a new tool clients/cli/generate-docs-nm-settings-nmcli that generates the nm-settings-docs-nmcli.xml based on nmcli meta data. Unfortunately, this isn't built in meson's 'native' mode; as this needs a longer dependency chain, disable generate-docs-nm-settings-nmcli when docs are disabled. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- ...d-generate_docs_nm_settings_nmcli-on.patch | 34 +++++++++++++++++++ patches/NetworkManager-1.26.0/series | 1 + rules/networkmanager.make | 5 +-- 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch create mode 100644 patches/NetworkManager-1.26.0/series diff --git a/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch b/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch new file mode 100644 index 000000000..db3c29643 --- /dev/null +++ b/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch @@ -0,0 +1,34 @@ +From 5ddd262c1042ef2cd748b3b2a724d2e15f89b9fb Mon Sep 17 00:00:00 2001 +From: Robert Schwebel <r.schwebel@pengutronix.de> +Date: Sat, 25 Jul 2020 18:14:35 +0200 +Subject: [PATCH] clients/cli: build generate_docs_nm_settings_nmcli only if + docs are enabled + +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + clients/cli/meson.build | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/clients/cli/meson.build b/clients/cli/meson.build +index 517deffa6..2dada71f5 100644 +--- a/clients/cli/meson.build ++++ b/clients/cli/meson.build +@@ -35,6 +35,9 @@ executable( + + endif + ++enable_docs = get_option('docs') ++if enable_docs ++ + generate_docs_nm_settings_nmcli = executable( + 'generate-docs-nm-settings-nmcli', + files( +@@ -56,3 +59,5 @@ generate_docs_nm_settings_nmcli_xml = custom_target( + command: [ generate_docs_nm_settings_nmcli ], + capture: true, + ) ++ ++endif +-- +2.27.0 + diff --git a/patches/NetworkManager-1.26.0/series b/patches/NetworkManager-1.26.0/series new file mode 100644 index 000000000..b04ab9c47 --- /dev/null +++ b/patches/NetworkManager-1.26.0/series @@ -0,0 +1 @@ +0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch diff --git a/rules/networkmanager.make b/rules/networkmanager.make index db924254f..c9f4b4f9f 100644 --- a/rules/networkmanager.make +++ b/rules/networkmanager.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_NETWORKMANAGER) += networkmanager # # Paths and names # -NETWORKMANAGER_VERSION := 1.22.10 -NETWORKMANAGER_MD5 := b7b8875c3ef1db0989f78351ba3e8ad8 +NETWORKMANAGER_VERSION := 1.26.0 +NETWORKMANAGER_MD5 := c0edbbf98a1ec81eed5a03539610d324 NETWORKMANAGER := NetworkManager-$(NETWORKMANAGER_VERSION) NETWORKMANAGER_SUFFIX := tar.xz NETWORKMANAGER_URL := https://ftp.gnome.org/pub/GNOME/sources/NetworkManager/$(basename $(NETWORKMANAGER_VERSION))/$(NETWORKMANAGER).$(NETWORKMANAGER_SUFFIX) @@ -50,6 +50,7 @@ NETWORKMANAGER_CONF_OPT = \ -Ddnssec_trigger=/bin/true \ -Ddocs=false \ -Debpf=false \ + -Dfirewalld_zone=false \ -Dhostname_persist=default \ -Difcfg_rh=false \ -Difupdown=true \ -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) 2020-07-25 19:13 ` [ptxdist] [PATCH 3/9] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 5d534a81b0b148beb49abad58f35575e3c44e447. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:02 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > There is a new option to install and use firewalld zone for shared mode; > we set it to false by default, until someone uses firewalld with > networkmanager. > > Since 1.25.2-dev-90-g10020a946 in NetworkManager, there is a new tool > clients/cli/generate-docs-nm-settings-nmcli that generates the > nm-settings-docs-nmcli.xml based on nmcli meta data. Unfortunately, this > isn't built in meson's 'native' mode; as this needs a longer dependency > chain, disable generate-docs-nm-settings-nmcli when docs are disabled. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-3-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch b/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch > new file mode 100644 > index 000000000000..db3c2964380d > --- /dev/null > +++ b/patches/NetworkManager-1.26.0/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch > @@ -0,0 +1,34 @@ > +From 5ddd262c1042ef2cd748b3b2a724d2e15f89b9fb Mon Sep 17 00:00:00 2001 > +From: Robert Schwebel <r.schwebel@pengutronix.de> > +Date: Sat, 25 Jul 2020 18:14:35 +0200 > +Subject: [PATCH] clients/cli: build generate_docs_nm_settings_nmcli only if > + docs are enabled > + > +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > +--- > + clients/cli/meson.build | 5 +++++ > + 1 file changed, 5 insertions(+) > + > +diff --git a/clients/cli/meson.build b/clients/cli/meson.build > +index 517deffa6..2dada71f5 100644 > +--- a/clients/cli/meson.build > ++++ b/clients/cli/meson.build > +@@ -35,6 +35,9 @@ executable( > + > + endif > + > ++enable_docs = get_option('docs') > ++if enable_docs > ++ > + generate_docs_nm_settings_nmcli = executable( > + 'generate-docs-nm-settings-nmcli', > + files( > +@@ -56,3 +59,5 @@ generate_docs_nm_settings_nmcli_xml = custom_target( > + command: [ generate_docs_nm_settings_nmcli ], > + capture: true, > + ) > ++ > ++endif > +-- > +2.27.0 > + > diff --git a/patches/NetworkManager-1.26.0/series b/patches/NetworkManager-1.26.0/series > new file mode 100644 > index 000000000000..b04ab9c47a95 > --- /dev/null > +++ b/patches/NetworkManager-1.26.0/series > @@ -0,0 +1 @@ > +0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch > diff --git a/rules/networkmanager.make b/rules/networkmanager.make > index db924254f7b2..c9f4b4f9f7f4 100644 > --- a/rules/networkmanager.make > +++ b/rules/networkmanager.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_NETWORKMANAGER) += networkmanager > # > # Paths and names > # > -NETWORKMANAGER_VERSION := 1.22.10 > -NETWORKMANAGER_MD5 := b7b8875c3ef1db0989f78351ba3e8ad8 > +NETWORKMANAGER_VERSION := 1.26.0 > +NETWORKMANAGER_MD5 := c0edbbf98a1ec81eed5a03539610d324 > NETWORKMANAGER := NetworkManager-$(NETWORKMANAGER_VERSION) > NETWORKMANAGER_SUFFIX := tar.xz > NETWORKMANAGER_URL := https://ftp.gnome.org/pub/GNOME/sources/NetworkManager/$(basename $(NETWORKMANAGER_VERSION))/$(NETWORKMANAGER).$(NETWORKMANAGER_SUFFIX) > @@ -50,6 +50,7 @@ NETWORKMANAGER_CONF_OPT = \ > -Ddnssec_trigger=/bin/true \ > -Ddocs=false \ > -Debpf=false \ > + -Dfirewalld_zone=false \ > -Dhostname_persist=default \ > -Difcfg_rh=false \ > -Difupdown=true \ _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel 2020-07-25 19:13 ` [ptxdist] [PATCH 3/9] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-07-30 13:36 ` Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 5/9] libusb: version bump 1.0.22 -> 1.0.23 Robert Schwebel ` (5 subsequent siblings) 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Adapt new configure options; --disable-fuzzing is broken, but disabled if not given. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/libtasn1.make | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/libtasn1.make b/rules/libtasn1.make index af2dc5cc2..a2af741d4 100644 --- a/rules/libtasn1.make +++ b/rules/libtasn1.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBTASN1) += libtasn1 # # Paths and names # -LIBTASN1_VERSION := 4.13 -LIBTASN1_MD5 := ce2ba4d3088119b48e7531a703669c52 +LIBTASN1_VERSION := 4.16.0 +LIBTASN1_MD5 := 531208de3729d42e2af0a32890f08736 LIBTASN1 := libtasn1-$(LIBTASN1_VERSION) LIBTASN1_SUFFIX := tar.gz LIBTASN1_URL := $(call ptx/mirror, GNU, libtasn1/$(LIBTASN1).$(LIBTASN1_SUFFIX)) @@ -31,12 +31,12 @@ LIBTASN1_CONF_TOOL := autoconf LIBTASN1_CONF_OPT := \ $(CROSS_AUTOCONF_USR) \ - $(GLOBAL_LARGE_FILE_OPTION) \ --disable-doc \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-gtk-doc-pdf \ --disable-valgrind-tests \ + --disable-code-coverage \ --disable-gcc-warnings # ---------------------------------------------------------------------------- -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 2020-07-25 19:13 ` [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 Robert Schwebel @ 2020-07-30 13:36 ` Michael Olbrich 2020-07-30 14:47 ` [ptxdist] [PATCH] " Robert Schwebel 0 siblings, 1 reply; 26+ messages in thread From: Michael Olbrich @ 2020-07-30 13:36 UTC (permalink / raw) To: ptxdist On Sat, Jul 25, 2020 at 09:13:02PM +0200, Robert Schwebel wrote: > Adapt new configure options; --disable-fuzzing is broken, but disabled > if not given. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > --- > rules/libtasn1.make | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/rules/libtasn1.make b/rules/libtasn1.make > index af2dc5cc2..a2af741d4 100644 > --- a/rules/libtasn1.make > +++ b/rules/libtasn1.make > @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBTASN1) += libtasn1 > # > # Paths and names > # > -LIBTASN1_VERSION := 4.13 > -LIBTASN1_MD5 := ce2ba4d3088119b48e7531a703669c52 > +LIBTASN1_VERSION := 4.16.0 > +LIBTASN1_MD5 := 531208de3729d42e2af0a32890f08736 > LIBTASN1 := libtasn1-$(LIBTASN1_VERSION) > LIBTASN1_SUFFIX := tar.gz > LIBTASN1_URL := $(call ptx/mirror, GNU, libtasn1/$(LIBTASN1).$(LIBTASN1_SUFFIX)) > @@ -31,12 +31,12 @@ LIBTASN1_CONF_TOOL := autoconf > > LIBTASN1_CONF_OPT := \ > $(CROSS_AUTOCONF_USR) \ > - $(GLOBAL_LARGE_FILE_OPTION) \ > --disable-doc \ > --disable-gtk-doc \ > --disable-gtk-doc-html \ > --disable-gtk-doc-pdf \ > --disable-valgrind-tests \ > + --disable-code-coverage \ Configure options of host-libtasn1 must be updated as well. Michael > --disable-gcc-warnings > > # ---------------------------------------------------------------------------- > -- > 2.27.0 > > > _______________________________________________ > ptxdist mailing list > ptxdist@pengutronix.de > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH] libtasn1: version bump 4.13 -> 4.16.0 2020-07-30 13:36 ` Michael Olbrich @ 2020-07-30 14:47 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 0 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-30 14:47 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Adapt new configure options; --disable-fuzzing is broken, but disabled if not given. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/host-libtasn1.make | 2 +- rules/libtasn1.make | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) Changes since v1: * change config options for host tool as well diff --git a/rules/host-libtasn1.make b/rules/host-libtasn1.make index 181a905b1..c9061091f 100644 --- a/rules/host-libtasn1.make +++ b/rules/host-libtasn1.make @@ -26,12 +26,12 @@ HOST_LIBTASN1_DIR = $(HOST_BUILDDIR)/$(LIBTASN1) HOST_LIBTASN1_CONF_TOOL := autoconf HOST_LIBTASN1_CONF_OPT := \ $(HOST_AUTOCONF) \ - $(GLOBAL_LARGE_FILE_OPTION) \ --disable-doc \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-gtk-doc-pdf \ --disable-valgrind-tests \ + --disable-code-coverage \ --disable-gcc-warnings # vim: syntax=make diff --git a/rules/libtasn1.make b/rules/libtasn1.make index af2dc5cc2..a2af741d4 100644 --- a/rules/libtasn1.make +++ b/rules/libtasn1.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBTASN1) += libtasn1 # # Paths and names # -LIBTASN1_VERSION := 4.13 -LIBTASN1_MD5 := ce2ba4d3088119b48e7531a703669c52 +LIBTASN1_VERSION := 4.16.0 +LIBTASN1_MD5 := 531208de3729d42e2af0a32890f08736 LIBTASN1 := libtasn1-$(LIBTASN1_VERSION) LIBTASN1_SUFFIX := tar.gz LIBTASN1_URL := $(call ptx/mirror, GNU, libtasn1/$(LIBTASN1).$(LIBTASN1_SUFFIX)) @@ -31,12 +31,12 @@ LIBTASN1_CONF_TOOL := autoconf LIBTASN1_CONF_OPT := \ $(CROSS_AUTOCONF_USR) \ - $(GLOBAL_LARGE_FILE_OPTION) \ --disable-doc \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-gtk-doc-pdf \ --disable-valgrind-tests \ + --disable-code-coverage \ --disable-gcc-warnings # ---------------------------------------------------------------------------- -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] libtasn1: version bump 4.13 -> 4.16.0 2020-07-30 14:47 ` [ptxdist] [PATCH] " Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 258d3924437047d1f2751b634f708c126a742afe. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:14 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > Adapt new configure options; --disable-fuzzing is broken, but disabled > if not given. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200730144705.3263767-1-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/host-libtasn1.make b/rules/host-libtasn1.make > index 181a905b1b1c..c9061091faa5 100644 > --- a/rules/host-libtasn1.make > +++ b/rules/host-libtasn1.make > @@ -26,12 +26,12 @@ HOST_LIBTASN1_DIR = $(HOST_BUILDDIR)/$(LIBTASN1) > HOST_LIBTASN1_CONF_TOOL := autoconf > HOST_LIBTASN1_CONF_OPT := \ > $(HOST_AUTOCONF) \ > - $(GLOBAL_LARGE_FILE_OPTION) \ > --disable-doc \ > --disable-gtk-doc \ > --disable-gtk-doc-html \ > --disable-gtk-doc-pdf \ > --disable-valgrind-tests \ > + --disable-code-coverage \ > --disable-gcc-warnings > > # vim: syntax=make > diff --git a/rules/libtasn1.make b/rules/libtasn1.make > index af2dc5cc2886..a2af741d4b37 100644 > --- a/rules/libtasn1.make > +++ b/rules/libtasn1.make > @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBTASN1) += libtasn1 > # > # Paths and names > # > -LIBTASN1_VERSION := 4.13 > -LIBTASN1_MD5 := ce2ba4d3088119b48e7531a703669c52 > +LIBTASN1_VERSION := 4.16.0 > +LIBTASN1_MD5 := 531208de3729d42e2af0a32890f08736 > LIBTASN1 := libtasn1-$(LIBTASN1_VERSION) > LIBTASN1_SUFFIX := tar.gz > LIBTASN1_URL := $(call ptx/mirror, GNU, libtasn1/$(LIBTASN1).$(LIBTASN1_SUFFIX)) > @@ -31,12 +31,12 @@ LIBTASN1_CONF_TOOL := autoconf > > LIBTASN1_CONF_OPT := \ > $(CROSS_AUTOCONF_USR) \ > - $(GLOBAL_LARGE_FILE_OPTION) \ > --disable-doc \ > --disable-gtk-doc \ > --disable-gtk-doc-html \ > --disable-gtk-doc-pdf \ > --disable-valgrind-tests \ > + --disable-code-coverage \ > --disable-gcc-warnings > > # ---------------------------------------------------------------------------- _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 5/9] libusb: version bump 1.0.22 -> 1.0.23 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (2 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 6/9] dbus: version bump 1.12.10 -> 1.12.20 Robert Schwebel ` (4 subsequent siblings) 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel A new version is out, without changed configure options. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/libusb.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/libusb.make b/rules/libusb.make index da249d09c..e382b24f1 100644 --- a/rules/libusb.make +++ b/rules/libusb.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBUSB) += libusb # # Paths and names # -LIBUSB_VERSION := 1.0.22 -LIBUSB_MD5 := 466267889daead47674df933cea9cacb +LIBUSB_VERSION := 1.0.23 +LIBUSB_MD5 := be79ed4a4a440169deec8beaac6aae33 LIBUSB := libusb-$(LIBUSB_VERSION) LIBUSB_SUFFIX := tar.bz2 LIBUSB_URL := $(call ptx/mirror, SF, libusb/$(LIBUSB).$(LIBUSB_SUFFIX)) -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] libusb: version bump 1.0.22 -> 1.0.23 2020-07-25 19:13 ` [ptxdist] [PATCH 5/9] libusb: version bump 1.0.22 -> 1.0.23 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as c2e53d862804ca754e71ff6d958db5f233b8157b. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:03 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > A new version is out, without changed configure options. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-5-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/libusb.make b/rules/libusb.make > index da249d09c897..e382b24f1f78 100644 > --- a/rules/libusb.make > +++ b/rules/libusb.make > @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBUSB) += libusb > # > # Paths and names > # > -LIBUSB_VERSION := 1.0.22 > -LIBUSB_MD5 := 466267889daead47674df933cea9cacb > +LIBUSB_VERSION := 1.0.23 > +LIBUSB_MD5 := be79ed4a4a440169deec8beaac6aae33 > LIBUSB := libusb-$(LIBUSB_VERSION) > LIBUSB_SUFFIX := tar.bz2 > LIBUSB_URL := $(call ptx/mirror, SF, libusb/$(LIBUSB).$(LIBUSB_SUFFIX)) _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 6/9] dbus: version bump 1.12.10 -> 1.12.20 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (3 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 5/9] libusb: version bump 1.0.22 -> 1.0.23 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 7/9] libpcre: version bump 8.43 -> 8.44 Robert Schwebel ` (3 subsequent siblings) 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel A new version is out, without configure changes. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/dbus.make | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/dbus.make b/rules/dbus.make index 33d4de486..53d19f6bf 100644 --- a/rules/dbus.make +++ b/rules/dbus.make @@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_DBUS) += dbus # # Paths and names # -DBUS_VERSION := 1.12.10 -DBUS_MD5 := c3e12b4206e2a7da39d7cc42567790ef +DBUS_VERSION := 1.12.20 +DBUS_MD5 := dfe8a71f412e0b53be26ed4fbfdc91c4 DBUS := dbus-$(DBUS_VERSION) DBUS_SUFFIX := tar.gz DBUS_URL := http://dbus.freedesktop.org/releases/dbus/$(DBUS).$(DBUS_SUFFIX) -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] dbus: version bump 1.12.10 -> 1.12.20 2020-07-25 19:13 ` [ptxdist] [PATCH 6/9] dbus: version bump 1.12.10 -> 1.12.20 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as a4a71fb9eec3969b610fa16e5591168ccc263250. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:03 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > A new version is out, without configure changes. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-6-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/dbus.make b/rules/dbus.make > index 33d4de48614c..53d19f6bff9e 100644 > --- a/rules/dbus.make > +++ b/rules/dbus.make > @@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_DBUS) += dbus > # > # Paths and names > # > -DBUS_VERSION := 1.12.10 > -DBUS_MD5 := c3e12b4206e2a7da39d7cc42567790ef > +DBUS_VERSION := 1.12.20 > +DBUS_MD5 := dfe8a71f412e0b53be26ed4fbfdc91c4 > DBUS := dbus-$(DBUS_VERSION) > DBUS_SUFFIX := tar.gz > DBUS_URL := http://dbus.freedesktop.org/releases/dbus/$(DBUS).$(DBUS_SUFFIX) _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 7/9] libpcre: version bump 8.43 -> 8.44 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (4 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 6/9] dbus: version bump 1.12.10 -> 1.12.20 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 8/9] libcap: version bump 2.36 -> 2.41 Robert Schwebel ` (2 subsequent siblings) 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel There are no configure changes; the license file has changed due to a new year in the copyright line. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/libpcre.make | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rules/libpcre.make b/rules/libpcre.make index 466b0a41c..fa42b9870 100644 --- a/rules/libpcre.make +++ b/rules/libpcre.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBPCRE) += libpcre # # Paths and names # -LIBPCRE_VERSION := 8.43 -LIBPCRE_MD5 := 636222e79e392c3d95dcc545f24f98c4 +LIBPCRE_VERSION := 8.44 +LIBPCRE_MD5 := cf7326204cc46c755b5b2608033d9d24 LIBPCRE := pcre-$(LIBPCRE_VERSION) LIBPCRE_SUFFIX := tar.bz2 LIBPCRE_URL := \ @@ -25,7 +25,7 @@ LIBPCRE_URL := \ LIBPCRE_SOURCE := $(SRCDIR)/$(LIBPCRE).$(LIBPCRE_SUFFIX) LIBPCRE_DIR := $(BUILDDIR)/$(LIBPCRE) LIBPCRE_LICENSE := BSD-3-Clause -LIBPCRE_LICENSE_FILES := file://LICENCE;md5=91bee59d1b327eb1599b4c673e2fb3d1 +LIBPCRE_LICENSE_FILES := file://LICENCE;md5=3bb381a66a5385b246d4877922e7511e # ---------------------------------------------------------------------------- # Prepare -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] libpcre: version bump 8.43 -> 8.44 2020-07-25 19:13 ` [ptxdist] [PATCH 7/9] libpcre: version bump 8.43 -> 8.44 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 29bdc6cd36f3dbc62b1e0f60cd92f66f7b510905. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:04 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > There are no configure changes; the license file has changed due to a > new year in the copyright line. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-7-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/libpcre.make b/rules/libpcre.make > index 466b0a41cfd1..fa42b98703b0 100644 > --- a/rules/libpcre.make > +++ b/rules/libpcre.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBPCRE) += libpcre > # > # Paths and names > # > -LIBPCRE_VERSION := 8.43 > -LIBPCRE_MD5 := 636222e79e392c3d95dcc545f24f98c4 > +LIBPCRE_VERSION := 8.44 > +LIBPCRE_MD5 := cf7326204cc46c755b5b2608033d9d24 > LIBPCRE := pcre-$(LIBPCRE_VERSION) > LIBPCRE_SUFFIX := tar.bz2 > LIBPCRE_URL := \ > @@ -25,7 +25,7 @@ LIBPCRE_URL := \ > LIBPCRE_SOURCE := $(SRCDIR)/$(LIBPCRE).$(LIBPCRE_SUFFIX) > LIBPCRE_DIR := $(BUILDDIR)/$(LIBPCRE) > LIBPCRE_LICENSE := BSD-3-Clause > -LIBPCRE_LICENSE_FILES := file://LICENCE;md5=91bee59d1b327eb1599b4c673e2fb3d1 > +LIBPCRE_LICENSE_FILES := file://LICENCE;md5=3bb381a66a5385b246d4877922e7511e > > # ---------------------------------------------------------------------------- > # Prepare _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 8/9] libcap: version bump 2.36 -> 2.41 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (5 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 7/9] libpcre: version bump 8.43 -> 8.44 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 9/9] e2fsprogs: version bump 1.44.4 -> 1.44.6 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Michael Olbrich 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel This is not autotool based, so no configure changes (or significant Makefile changes). Patches have been ported. I've no idea if the patch is useful any more, but it does still apply :-) Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- .../0001-Fix-build-on-non-Linux-host.patch | 0 patches/{libcap-2.36 => libcap-2.41}/series | 0 rules/libcap.make | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename patches/{libcap-2.36 => libcap-2.41}/0001-Fix-build-on-non-Linux-host.patch (100%) rename patches/{libcap-2.36 => libcap-2.41}/series (100%) diff --git a/patches/libcap-2.36/0001-Fix-build-on-non-Linux-host.patch b/patches/libcap-2.41/0001-Fix-build-on-non-Linux-host.patch similarity index 100% rename from patches/libcap-2.36/0001-Fix-build-on-non-Linux-host.patch rename to patches/libcap-2.41/0001-Fix-build-on-non-Linux-host.patch diff --git a/patches/libcap-2.36/series b/patches/libcap-2.41/series similarity index 100% rename from patches/libcap-2.36/series rename to patches/libcap-2.41/series diff --git a/rules/libcap.make b/rules/libcap.make index a8e94c5f8..0c382154d 100644 --- a/rules/libcap.make +++ b/rules/libcap.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBCAP) += libcap # # Paths and names # -LIBCAP_VERSION := 2.36 -LIBCAP_MD5 := 3d8cd4a87650cdee130691cb110c2ce2 +LIBCAP_VERSION := 2.41 +LIBCAP_MD5 := 1da3bac88e17186b78d1ca59f154c53a LIBCAP := libcap-$(LIBCAP_VERSION) LIBCAP_SUFFIX := tar.xz LIBCAP_URL := \ -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] libcap: version bump 2.36 -> 2.41 2020-07-25 19:13 ` [ptxdist] [PATCH 8/9] libcap: version bump 2.36 -> 2.41 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 9a95bffd2a37fb496ff1bcd4c330b683dcee38b3. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:05 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > This is not autotool based, so no configure changes (or significant > Makefile changes). > > Patches have been ported. I've no idea if the patch is useful any more, > but it does still apply :-) > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-8-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/patches/libcap-2.36/0001-Fix-build-on-non-Linux-host.patch b/patches/libcap-2.41/0001-Fix-build-on-non-Linux-host.patch > similarity index 100% > rename from patches/libcap-2.36/0001-Fix-build-on-non-Linux-host.patch > rename to patches/libcap-2.41/0001-Fix-build-on-non-Linux-host.patch > diff --git a/patches/libcap-2.36/series b/patches/libcap-2.41/series > similarity index 100% > rename from patches/libcap-2.36/series > rename to patches/libcap-2.41/series > diff --git a/rules/libcap.make b/rules/libcap.make > index a8e94c5f81a6..0c382154dfb4 100644 > --- a/rules/libcap.make > +++ b/rules/libcap.make > @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBCAP) += libcap > # > # Paths and names > # > -LIBCAP_VERSION := 2.36 > -LIBCAP_MD5 := 3d8cd4a87650cdee130691cb110c2ce2 > +LIBCAP_VERSION := 2.41 > +LIBCAP_MD5 := 1da3bac88e17186b78d1ca59f154c53a > LIBCAP := libcap-$(LIBCAP_VERSION) > LIBCAP_SUFFIX := tar.xz > LIBCAP_URL := \ _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* [ptxdist] [PATCH 9/9] e2fsprogs: version bump 1.44.4 -> 1.44.6 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (6 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 8/9] libcap: version bump 2.36 -> 2.41 Robert Schwebel @ 2020-07-25 19:13 ` Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-08-03 6:30 ` [ptxdist] [APPLIED] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Michael Olbrich 8 siblings, 1 reply; 26+ messages in thread From: Robert Schwebel @ 2020-07-25 19:13 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Add the new configure options. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> --- rules/e2fsprogs.make | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rules/e2fsprogs.make b/rules/e2fsprogs.make index e9197e227..09952566e 100644 --- a/rules/e2fsprogs.make +++ b/rules/e2fsprogs.make @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_E2FSPROGS) += e2fsprogs # # Paths and names # -E2FSPROGS_VERSION := 1.44.4 -E2FSPROGS_MD5 := 156e94a6169ca1fa3f0c6749ae5921b9 +E2FSPROGS_VERSION := 1.45.6 +E2FSPROGS_MD5 := cccfb706d162514e4f9dbfbc9e5d65ee E2FSPROGS := e2fsprogs-$(E2FSPROGS_VERSION) E2FSPROGS_SUFFIX := tar.gz E2FSPROGS_URL := $(call ptx/mirror, SF, e2fsprogs/e2fsprogs/v$(E2FSPROGS_VERSION)/$(E2FSPROGS).$(E2FSPROGS_SUFFIX)) @@ -69,6 +69,10 @@ E2FSPROGS_CONF_OPT := \ --enable-threads=posix \ --disable-rpath \ --disable-fuse2fs \ + --enable-lto \ + --disable-ubsan \ + --disable-addrsan \ + --disable-threadsan \ --without-included-gettext E2FSPROGS_MAKE_OPT := $(if $(filter 1,$(strip $(PTXDIST_VERBOSE))),V=1) -- 2.27.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] e2fsprogs: version bump 1.44.4 -> 1.44.6 2020-07-25 19:13 ` [ptxdist] [PATCH 9/9] e2fsprogs: version bump 1.44.4 -> 1.44.6 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 0 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 471f5e0889e7102e09f6e37391a4eb45871d5685. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:05 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > Add the new configure options. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-9-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/e2fsprogs.make b/rules/e2fsprogs.make > index e9197e227a8d..09952566edd8 100644 > --- a/rules/e2fsprogs.make > +++ b/rules/e2fsprogs.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_E2FSPROGS) += e2fsprogs > # > # Paths and names > # > -E2FSPROGS_VERSION := 1.44.4 > -E2FSPROGS_MD5 := 156e94a6169ca1fa3f0c6749ae5921b9 > +E2FSPROGS_VERSION := 1.45.6 > +E2FSPROGS_MD5 := cccfb706d162514e4f9dbfbc9e5d65ee > E2FSPROGS := e2fsprogs-$(E2FSPROGS_VERSION) > E2FSPROGS_SUFFIX := tar.gz > E2FSPROGS_URL := $(call ptx/mirror, SF, e2fsprogs/e2fsprogs/v$(E2FSPROGS_VERSION)/$(E2FSPROGS).$(E2FSPROGS_SUFFIX)) > @@ -69,6 +69,10 @@ E2FSPROGS_CONF_OPT := \ > --enable-threads=posix \ > --disable-rpath \ > --disable-fuse2fs \ > + --enable-lto \ > + --disable-ubsan \ > + --disable-addrsan \ > + --disable-threadsan \ > --without-included-gettext > > E2FSPROGS_MAKE_OPT := $(if $(filter 1,$(strip $(PTXDIST_VERBOSE))),V=1) _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [ptxdist] [APPLIED] glib: version bump 2.62.2 -> 2.64.4 (latest stable) 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel ` (7 preceding siblings ...) 2020-07-25 19:13 ` [ptxdist] [PATCH 9/9] e2fsprogs: version bump 1.44.4 -> 1.44.6 Robert Schwebel @ 2020-08-03 6:30 ` Michael Olbrich 8 siblings, 0 replies; 26+ messages in thread From: Michael Olbrich @ 2020-08-03 6:30 UTC (permalink / raw) To: ptxdist; +Cc: Robert Schwebel Thanks, applied as 935f837c9000d2680a81f02b976075f83393d5dc. Michael [sent from post-receive hook] On Mon, 03 Aug 2020 08:30:01 +0200, Robert Schwebel <r.schwebel@pengutronix.de> wrote: > The libmount option has changed from boolean to feature, so we need to > provide enabled/disabled to meson. > > Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> > Message-Id: <20200725191307.2424653-1-r.schwebel@pengutronix.de> > Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> > > diff --git a/rules/glib.make b/rules/glib.make > index f6e68a6928e2..fb8b25bd85e5 100644 > --- a/rules/glib.make > +++ b/rules/glib.make > @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_GLIB) += glib > # > # Paths and names > # > -GLIB_VERSION := 2.62.2 > -GLIB_MD5 := bed3a70397a019965efac0c49f9c8164 > +GLIB_VERSION := 2.64.4 > +GLIB_MD5 := 0a4f67e9a9d729976e2f797e36fc1a57 > GLIB := glib-$(GLIB_VERSION) > GLIB_SUFFIX := tar.xz > GLIB_SOURCE := $(SRCDIR)/$(GLIB).$(GLIB_SUFFIX) > @@ -44,7 +44,7 @@ GLIB_CONF_OPT := \ > -Diconv=libc \ > -Dinstalled_tests=false \ > -Dinternal_pcre=false \ > - -Dlibmount=$(call ptx/truefalse, PTXCONF_GLIB_LIBMOUNT) \ > + -Dlibmount=$(call ptx/endis, PTXCONF_GLIB_LIBMOUNT)d \ > -Dman=false \ > -Dnls=disabled \ > -Dselinux=disabled \ > diff --git a/rules/host-glib.make b/rules/host-glib.make > index 443d6577a76e..49220bbc9265 100644 > --- a/rules/host-glib.make > +++ b/rules/host-glib.make > @@ -34,7 +34,7 @@ HOST_GLIB_CONF_OPT := \ > -Diconv=libc \ > -Dinstalled_tests=false \ > -Dinternal_pcre=false \ > - -Dlibmount=false \ > + -Dlibmount=disabled \ > -Dman=false \ > -Dnls=disabled \ > -Dselinux=disabled \ _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2020-08-03 6:30 UTC | newest] Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-25 19:12 [ptxdist] [PATCH 1/9] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Robert Schwebel 2020-07-25 19:13 ` [ptxdist] [PATCH 2/9] libelf: version bump 0.176 -> 0.180 Robert Schwebel 2020-07-30 13:35 ` Michael Olbrich 2020-07-30 14:54 ` [ptxdist] [PATCHv2] " Robert Schwebel 2020-07-30 13:37 ` [ptxdist] [PATCH 2/9] " Michael Olbrich 2020-07-30 14:52 ` Robert Schwebel 2020-07-30 17:59 ` Michael Olbrich 2020-07-30 19:00 ` [ptxdist] [PATCHv3] " Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 3/9] networkmanager: version bump 1.22.10 -> 1.26.0 (latest stable) Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 4/9] libtasn1: version bump 4.13 -> 4.16.0 Robert Schwebel 2020-07-30 13:36 ` Michael Olbrich 2020-07-30 14:47 ` [ptxdist] [PATCH] " Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 5/9] libusb: version bump 1.0.22 -> 1.0.23 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 6/9] dbus: version bump 1.12.10 -> 1.12.20 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 7/9] libpcre: version bump 8.43 -> 8.44 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 8/9] libcap: version bump 2.36 -> 2.41 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-07-25 19:13 ` [ptxdist] [PATCH 9/9] e2fsprogs: version bump 1.44.4 -> 1.44.6 Robert Schwebel 2020-08-03 6:30 ` [ptxdist] [APPLIED] " Michael Olbrich 2020-08-03 6:30 ` [ptxdist] [APPLIED] glib: version bump 2.62.2 -> 2.64.4 (latest stable) Michael Olbrich
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox