diff --git a/net/frr/Makefile b/net/frr/Makefile index f89c2f3d5..043f4307d 100644 --- a/net/frr/Makefile +++ b/net/frr/Makefile @@ -8,15 +8,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=frr PKG_VERSION:=8.1.0 -PKG_RELEASE:=2 -PKG_SOURCE_DATE:=2022-01-17 +PKG_RELEASE:=3 +PKG_SOURCE_DATE:=2022-02-11 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz -PKG_SOURCE_VERSION:=4757da741a81ba48a4ba1601a1e9c9380def66ef +PKG_SOURCE_VERSION:=1794094a65b904ae3a10c51f021c3b7800a9b116 PKG_SOURCE_URL:=https://codeload.github.com/FRRouting/frr/tar.gz/$(PKG_SOURCE_VERSION)? -PKG_HASH:=e9d45fb55276b74363c78977f467b88ed77b071ad2d54c6495eed1344d406ed5 +PKG_HASH:=3cbf39efdce7b07ab1fb0991db7e201d7ae810f04f79a7f173f64d90a441948b PKG_MAINTAINER:=Lucian Cristian PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION) diff --git a/net/frr/patches/998-endian_fix.patch b/net/frr/patches/998-endian_fix.patch deleted file mode 100644 index 5d599b526..000000000 --- a/net/frr/patches/998-endian_fix.patch +++ /dev/null @@ -1,58 +0,0 @@ -From cfc45e911e21820bc8b703b37e947a6a7e5d798a Mon Sep 17 00:00:00 2001 -From: David Lamparter -Date: Tue, 18 Jan 2022 09:50:25 +0100 -Subject: [PATCH] lib/clippy: don't endian-convert twice - -elf_getdata_rawchunk() already endian-converts; doing it again is, uh, -counterproductive. - -Fixes: #10051 -Reported-by: Lucian Cristian -Signed-off-by: David Lamparter ---- - lib/elf_py.c | 29 ++++++++++++++--------------- - 1 file changed, 14 insertions(+), 15 deletions(-) - ---- a/lib/elf_py.c -+++ b/lib/elf_py.c -@@ -1071,26 +1071,25 @@ static void elffile_add_dynreloc(struct - * always be a pointer... - */ - if (elffile_virt2file(w, rel->r_offset, &offs)) { -- Elf_Data *ptr, *conv; -- GElf_Addr tmp; -- Elf_Data mem = { -- .d_buf = (void *)&tmp, -- .d_type = ELF_T_ADDR, -- .d_version = EV_CURRENT, -- .d_size = sizeof(tmp), -- .d_off = 0, -- .d_align = 0, -- }; -+ Elf_Data *ptr; - -+ /* NB: this endian-converts! */ - ptr = elf_getdata_rawchunk(w->elf, offs, - w->elfclass / 8, - ELF_T_ADDR); - -- conv = gelf_xlatetom(w->elf, &mem, ptr, -- w->mmap[EI_DATA]); -- if (conv) { -- memcpy(&rel_offs, conv->d_buf, -- conv->d_size); -+ if (ptr) { -+ char *dst = (char *)&rel_offs; -+ -+ /* sigh. it endian-converts. but -+ * doesn't size-convert. -+ */ -+ if (BYTE_ORDER == BIG_ENDIAN && -+ ptr->d_size < sizeof(rel_offs)) -+ dst += sizeof(rel_offs) - -+ ptr->d_size; -+ -+ memcpy(dst, ptr->d_buf, ptr->d_size); - - relw->relative = false; - relw->rela->r_addend = rel_offs; diff --git a/net/frr/patches/998-mips64_fix.patch b/net/frr/patches/998-mips64_fix.patch new file mode 100644 index 000000000..d2ed0a2d8 --- /dev/null +++ b/net/frr/patches/998-mips64_fix.patch @@ -0,0 +1,11 @@ +--- a/lib/xref.h ++++ b/lib/xref.h +@@ -122,7 +122,7 @@ extern struct xref_block *xref_blocks; + extern void xref_block_add(struct xref_block *block); + extern void xref_gcc_workaround(const struct xref *xref); + +-#ifndef HAVE_SECTION_SYMS ++#if !defined(HAVE_SECTION_SYMS) || defined(__mips64) + /* we have a build system patch to use GNU ld on Solaris; if that doesn't + * work we end up on Solaris ld which doesn't support the section start/end + * symbols.