diff mbox series

ot-br-posix_git: Fix GCC-14 build

Message ID 20241129101258.277088-1-deepan.shivap@lge.com
State New
Headers show
Series ot-br-posix_git: Fix GCC-14 build | expand

Commit Message

deepan.shivap@lge.com Nov. 29, 2024, 10:12 a.m. UTC
From: "deepan.shivap" <deepan.shivap@lge.com>

GCC 14 compiler uses -fvisibility-inlines-hidden by default and
it creates visibility conflicts.

Add .patch file to resolve build error.

Update SRCREV to latest Upstream.

Signed-off-by: deepan.shivap <deepan.shivap@lge.com>
---
 .../0001-fix-build-on-GCC-14-for-yocto.patch  | 292 ++++++++++++++++++
 .../openthread/ot-br-posix_git.bb             |   8 +-
 2 files changed, 294 insertions(+), 6 deletions(-)
 create mode 100644 meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch

Comments

Martin Jansa Nov. 29, 2024, 10:22 a.m. UTC | #1
Please read README file and send meta-oe changes to openembedded-devel ML.

On Fri, Nov 29, 2024 at 11:13 AM deepan.shivap via
lists.openembedded.org <deepan.shivap=lge.com@lists.openembedded.org>
wrote:
>
> From: "deepan.shivap" <deepan.shivap@lge.com>
>
> GCC 14 compiler uses -fvisibility-inlines-hidden by default and
> it creates visibility conflicts.
>
> Add .patch file to resolve build error.
>
> Update SRCREV to latest Upstream.
>
> Signed-off-by: deepan.shivap <deepan.shivap@lge.com>
> ---
>  .../0001-fix-build-on-GCC-14-for-yocto.patch  | 292 ++++++++++++++++++
>  .../openthread/ot-br-posix_git.bb             |   8 +-
>  2 files changed, 294 insertions(+), 6 deletions(-)
>  create mode 100644 meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch
>
> diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch
> new file mode 100644
> index 000000000..53fc0aac7
> --- /dev/null
> +++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch
> @@ -0,0 +1,292 @@
> +From b34d0665b790016165b4a9b565f462712057b2b5 Mon Sep 17 00:00:00 2001
> +From: "deepan.shivap" <deepan.shivap@lge.com>
> +Date: Wed, 13 Nov 2024 21:30:38 +0900
> +Subject: [PATCH] fix build on GCC 14 for yocto
> +
> +GCC 14 compiler uses -fvisibility-inlines-hidden by default and
> +it creates visibility conflicts.
> +
> +Compilation error:
> +
> +error: 'ot::BorderRouter::RoutingManager::RxRaTracker' declared with
> +greater visibility than the type of its field 'ot::BorderRouter::
> +RoutingManager::RxRaTracker::mSignalTask' [-Werror=attributes]
> +| 814 | class RxRaTracker : public InstanceLocator
> +| | ^~~~~~~~~~~
> +| compilation terminated due to -Wfatal-errors.
> +| cc1: all warnings being treated as errors
> +
> +In addition, for below error I have added changes refering -
> +https://github.com/openwrt/openwrt/blob/main/package/libs/mbedtls/patches/100-fix-gcc14-build.patch
> +
> +error: array subscript 48 is outside array bounds of 'unsigned char[48]' [-Werror=array-bounds=]
> +| 235 | r[i] = a[i] ^ b[i];
> +| | ~^~~
> +| compilation terminated due to -Wfatal-errors.
> +| cc1: all warnings being treated as errors
> +
> +---
> +Upstream-Status: Denied [Reason -  https://github.com/openthread/openthread/pull/10925]
> +
> + src/core/border_router/routing_manager.cpp | 58 ++++++++++++++++++++++
> + src/core/border_router/routing_manager.hpp | 18 +++----
> + src/core/mac/data_poll_sender.cpp          |  5 ++
> + src/core/mac/data_poll_sender.hpp          |  2 +-
> + src/core/net/srp_client.cpp                |  2 +
> + src/core/net/srp_client.hpp                |  2 +-
> + src/core/thread/mle.cpp                    | 10 ++++
> + src/core/thread/mle.hpp                    |  4 +-
> + third_party/mbedtls/repo/library/common.h  |  2 +-
> + 9 files changed, 89 insertions(+), 14 deletions(-)
> +
> +diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp
> +index 5f7916ba4..664963757 100644
> +--- a/src/core/border_router/routing_manager.cpp
> ++++ b/src/core/border_router/routing_manager.cpp
> +@@ -806,6 +806,64 @@ bool RoutingManager::NetworkDataContainsUlaRoute(void) const
> +     return contains;
> + }
> +
> ++void RoutingManager::HandleRxRaTrackerSignalTask(void)
> ++{
> ++    mRxRaTracker.HandleSignalTask();
> ++}
> ++
> ++void RoutingManager::HandleRxRaTrackerExpirationTimer(void)
> ++{
> ++    mRxRaTracker.HandleExpirationTimer();
> ++}
> ++
> ++void RoutingManager::HandleRxRaTrackerStaleTimer(void)
> ++{
> ++    mRxRaTracker.HandleStaleTimer();
> ++}
> ++
> ++void RoutingManager::HandleRxRaTrackerRouterTimer(void)
> ++{
> ++    mRxRaTracker.HandleRouterTimer();
> ++}
> ++
> ++void RoutingManager::HandleOnLinkPrefixManagerTimer(void)
> ++{
> ++    mOnLinkPrefixManager.HandleTimer();
> ++}
> ++
> ++void RoutingManager::HandleRioAdvertiserimer(void)
> ++{
> ++    mRioAdvertiser.HandleTimer();
> ++}
> ++
> ++#if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
> ++
> ++void RoutingManager::HandleNat64PrefixManagerTimer(void)
> ++{
> ++    mNat64PrefixManager.HandleTimer();
> ++}
> ++
> ++#endif // OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
> ++
> ++void RoutingManager::HandleRoutePublisherTimer(void)
> ++{
> ++    mRoutePublisher.HandleTimer();
> ++}
> ++
> ++void RoutingManager::HandleRsSenderTimer(void)
> ++{
> ++    mRsSender.HandleTimer();
> ++}
> ++
> ++#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
> ++
> ++void HandlePdPrefixManagerTimer(void)
> ++{
> ++    mPdPrefixManager.HandleTimer();
> ++}
> ++
> ++#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
> ++
> + #if OPENTHREAD_CONFIG_BORDER_ROUTING_REACHABILITY_CHECK_ICMP6_ERROR_ENABLE
> +
> + void RoutingManager::CheckReachabilityToSendIcmpError(const Message &aMessage, const Ip6::Header &aIp6Header)
> +diff --git a/src/core/border_router/routing_manager.hpp b/src/core/border_router/routing_manager.hpp
> +index bfc138957..cc866e308 100644
> +--- a/src/core/border_router/routing_manager.hpp
> ++++ b/src/core/border_router/routing_manager.hpp
> +@@ -804,10 +804,10 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleRxRaTrackerSignalTask(void) { mRxRaTracker.HandleSignalTask(); }
> +-    void HandleRxRaTrackerExpirationTimer(void) { mRxRaTracker.HandleExpirationTimer(); }
> +-    void HandleRxRaTrackerStaleTimer(void) { mRxRaTracker.HandleStaleTimer(); }
> +-    void HandleRxRaTrackerRouterTimer(void) { mRxRaTracker.HandleRouterTimer(); }
> ++    void HandleRxRaTrackerSignalTask(void);
> ++    void HandleRxRaTrackerExpirationTimer(void);
> ++    void HandleRxRaTrackerStaleTimer(void);
> ++    void HandleRxRaTrackerRouterTimer(void);
> +
> +     class RxRaTracker : public InstanceLocator
> +     {
> +@@ -1144,7 +1144,7 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleOnLinkPrefixManagerTimer(void) { mOnLinkPrefixManager.HandleTimer(); }
> ++    void HandleOnLinkPrefixManagerTimer(void);
> +
> +     class OnLinkPrefixManager : public InstanceLocator
> +     {
> +@@ -1215,7 +1215,7 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleRioAdvertiserimer(void) { mRioAdvertiser.HandleTimer(); }
> ++    void HandleRioAdvertiserimer(void);
> +
> +     class RioAdvertiser : public InstanceLocator
> +     {
> +@@ -1278,7 +1278,7 @@ private:
> +
> + #if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
> +
> +-    void HandleNat64PrefixManagerTimer(void) { mNat64PrefixManager.HandleTimer(); }
> ++    void HandleNat64PrefixManagerTimer(void);
> +
> +     class Nat64PrefixManager : public InstanceLocator
> +     {
> +@@ -1326,7 +1326,7 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleRoutePublisherTimer(void) { mRoutePublisher.HandleTimer(); }
> ++    void HandleRoutePublisherTimer(void);
> +
> +     class RoutePublisher : public InstanceLocator // Manages the routes that are published in net data
> +     {
> +@@ -1411,7 +1411,7 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleRsSenderTimer(void) { mRsSender.HandleTimer(); }
> ++    void HandleRsSenderTimer(void);
> +
> +     class RsSender : public InstanceLocator
> +     {
> +diff --git a/src/core/mac/data_poll_sender.cpp b/src/core/mac/data_poll_sender.cpp
> +index c21bbacfe..6b974e164 100644
> +--- a/src/core/mac/data_poll_sender.cpp
> ++++ b/src/core/mac/data_poll_sender.cpp
> +@@ -517,6 +517,11 @@ uint32_t DataPollSender::CalculatePollPeriod(void) const
> +     return period;
> + }
> +
> ++void DataPollSender::HandlePollTimer(void)
> ++{
> ++    IgnoreError(SendDataPoll());
> ++}
> ++
> + uint32_t DataPollSender::GetDefaultPollPeriod(void) const
> + {
> +     uint32_t pollAhead = static_cast<uint32_t>(kRetxPollPeriod) * kMaxPollRetxAttempts;
> +diff --git a/src/core/mac/data_poll_sender.hpp b/src/core/mac/data_poll_sender.hpp
> +index 1c532ab51..4db8e5923 100644
> +--- a/src/core/mac/data_poll_sender.hpp
> ++++ b/src/core/mac/data_poll_sender.hpp
> +@@ -257,7 +257,7 @@ private:
> +     void            ScheduleNextPoll(PollPeriodSelector aPollPeriodSelector);
> +     uint32_t        CalculatePollPeriod(void) const;
> +     const Neighbor &GetParent(void) const;
> +-    void            HandlePollTimer(void) { IgnoreError(SendDataPoll()); }
> ++    void            HandlePollTimer(void);
> + #if OPENTHREAD_CONFIG_MULTI_RADIO
> +     Error GetPollDestinationAddress(Mac::Address &aDest, Mac::RadioType &aRadioType) const;
> + #else
> +diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp
> +index b7150ff7f..12b8f0b4f 100644
> +--- a/src/core/net/srp_client.cpp
> ++++ b/src/core/net/srp_client.cpp
> +@@ -2444,6 +2444,8 @@ exit:
> +     return error;
> + }
> +
> ++void Client::HandleGuardTimer(void){}
> ++
> + #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE
> + void Client::SelectNextServer(bool aDisallowSwitchOnRegisteredHost)
> + {
> +diff --git a/src/core/net/srp_client.hpp b/src/core/net/srp_client.hpp
> +index 8f5891bd0..367b1d280 100644
> +--- a/src/core/net/srp_client.hpp
> ++++ b/src/core/net/srp_client.hpp
> +@@ -1052,7 +1052,7 @@ private:
> +     void  ApplyAutoStartGuardOnAttach(void);
> +     void  ProcessAutoStart(void);
> +     Error SelectUnicastEntry(DnsSrpUnicastType aType, DnsSrpUnicastInfo &aInfo) const;
> +-    void  HandleGuardTimer(void) {}
> ++    void  HandleGuardTimer(void);
> + #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE
> +     void SelectNextServer(bool aDisallowSwitchOnRegisteredHost);
> + #endif
> +diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp
> +index 4de4705be..2e07222fc 100644
> +--- a/src/core/thread/mle.cpp
> ++++ b/src/core/thread/mle.cpp
> +@@ -3853,6 +3853,11 @@ exit:
> +
> + #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
> +
> ++void Mle::HandleParentSearchTimer(void)
> ++{
> ++    mParentSearch.HandleTimer();
> ++}
> ++
> + void Mle::ParentSearch::SetEnabled(bool aEnabled)
> + {
> +     VerifyOrExit(mEnabled != aEnabled);
> +@@ -4423,6 +4428,11 @@ void Mle::TlvList::AddElementsFrom(const TlvList &aTlvList)
> + //---------------------------------------------------------------------------------------------------------------------
> + // DelayedSender
> +
> ++void Mle::HandleDelayedSenderTimer(void)
> ++{
> ++    mDelayedSender.HandleTimer();
> ++}
> ++
> + Mle::DelayedSender::DelayedSender(Instance &aInstance)
> +     : InstanceLocator(aInstance)
> +     , mTimer(aInstance)
> +diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp
> +index 58dcea1e7..613334896 100644
> +--- a/src/core/thread/mle.hpp
> ++++ b/src/core/thread/mle.hpp
> +@@ -1087,7 +1087,7 @@ private:
> +
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> +-    void HandleDelayedSenderTimer(void) { mDelayedSender.HandleTimer(); }
> ++    void HandleDelayedSenderTimer(void);
> +
> +     class DelayedSender : public InstanceLocator
> +     {
> +@@ -1210,7 +1210,7 @@ private:
> +     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> +
> + #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
> +-    void HandleParentSearchTimer(void) { mParentSearch.HandleTimer(); }
> ++    void HandleParentSearchTimer(void);
> +
> +     class ParentSearch : public InstanceLocator
> +     {
> +diff --git a/third_party/mbedtls/repo/library/common.h b/third_party/mbedtls/repo/library/common.h
> +index 3936ffdfe..ce4dc1130 100644
> +--- a/third_party/mbedtls/repo/library/common.h
> ++++ b/third_party/mbedtls/repo/library/common.h
> +@@ -199,7 +199,7 @@ static inline void mbedtls_xor(unsigned char *r,
> +         uint8x16_t x = veorq_u8(v1, v2);
> +         vst1q_u8(r + i, x);
> +     }
> +-#if defined(__IAR_SYSTEMS_ICC__)
> ++#if defined(__IAR_SYSTEMS_ICC__) || (defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_GCC_VERSION >= 140100)
> +     /* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case
> +      * where n is a constant multiple of 16.
> +      * For other compilers (e.g. recent gcc and clang) it makes no difference if n is a compile-time
> diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
> index ec930de27..8183f5203 100644
> --- a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
> +++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
> @@ -11,14 +11,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=87109e44b2fda96a8991f27684a7349c \
>                      file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
>                      "
>  DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native"
> -SRCREV = "a35cc682305bb2201c314472adf06a4960536750"
> +SRCREV = "b041fa52daaa4dfbf6aa4665d8925c1be0350ca5"
>  PV = "0.3.0+git"
>
>  SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \
>             file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \
>             file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \
>             file://default-cxx-std.patch \
> -           file://musl-fixes.patch \
> +           file://0001-fix-build-on-GCC-14-for-yocto.patch;patchdir=third_party/openthread/repo \
>             "
>
>  S = "${WORKDIR}/git"
> @@ -67,7 +67,3 @@ RCONFLICTS:${PN} = "ot-daemon"
>
>  FILES:${PN} += "${systemd_unitdir}/*"
>  FILES:${PN} += "${datadir}/*"
> -
> -# http://errors.yoctoproject.org/Errors/Details/766903/
> -# git/third_party/openthread/repo/src/core/border_router/routing_manager.hpp:615:11: error: 'ot::BorderRouter::RoutingManager::DiscoveredPrefixTable' declared with greater visibility than the type of its field 'ot::BorderRouter::RoutingManager::DiscoveredPrefixTable::mEntryTimer' [-Werror=attributes]
> -CXXFLAGS += "-Wno-error=attributes"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#208009): https://lists.openembedded.org/g/openembedded-core/message/208009
> Mute This Topic: https://lists.openembedded.org/mt/109832304/3617156
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
patchtest@automation.yoctoproject.org Nov. 29, 2024, 10:31 a.m. UTC | #2
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/ot-br-posix_git-Fix-GCC-14-build.patch

FAIL: test Signed-off-by presence: A patch file has been added without a Signed-off-by tag: '0001-fix-build-on-GCC-14-for-yocto.patch' (test_patch.TestPatch.test_signed_off_by_presence)
FAIL: test target mailing list: Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists (test_mbox.TestMbox.test_target_mailing_list)

PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: pretest src uri left files: No modified recipes, skipping pretest (test_metadata.TestMetadata.pretest_src_uri_left_files)
SKIP: test CVE check ignore: No modified recipes or older target branch, skipping test (test_metadata.TestMetadata.test_cve_check_ignore)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum modified not mentioned: No modified recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test src uri left files: No modified recipes, skipping pretest (test_metadata.TestMetadata.test_src_uri_left_files)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch
new file mode 100644
index 000000000..53fc0aac7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch
@@ -0,0 +1,292 @@ 
+From b34d0665b790016165b4a9b565f462712057b2b5 Mon Sep 17 00:00:00 2001
+From: "deepan.shivap" <deepan.shivap@lge.com>
+Date: Wed, 13 Nov 2024 21:30:38 +0900
+Subject: [PATCH] fix build on GCC 14 for yocto
+
+GCC 14 compiler uses -fvisibility-inlines-hidden by default and
+it creates visibility conflicts.
+
+Compilation error:
+
+error: 'ot::BorderRouter::RoutingManager::RxRaTracker' declared with
+greater visibility than the type of its field 'ot::BorderRouter::
+RoutingManager::RxRaTracker::mSignalTask' [-Werror=attributes]
+| 814 | class RxRaTracker : public InstanceLocator
+| | ^~~~~~~~~~~
+| compilation terminated due to -Wfatal-errors.
+| cc1: all warnings being treated as errors
+
+In addition, for below error I have added changes refering -
+https://github.com/openwrt/openwrt/blob/main/package/libs/mbedtls/patches/100-fix-gcc14-build.patch
+
+error: array subscript 48 is outside array bounds of 'unsigned char[48]' [-Werror=array-bounds=]
+| 235 | r[i] = a[i] ^ b[i];
+| | ~^~~
+| compilation terminated due to -Wfatal-errors.
+| cc1: all warnings being treated as errors
+
+---
+Upstream-Status: Denied [Reason -  https://github.com/openthread/openthread/pull/10925]
+
+ src/core/border_router/routing_manager.cpp | 58 ++++++++++++++++++++++
+ src/core/border_router/routing_manager.hpp | 18 +++----
+ src/core/mac/data_poll_sender.cpp          |  5 ++
+ src/core/mac/data_poll_sender.hpp          |  2 +-
+ src/core/net/srp_client.cpp                |  2 +
+ src/core/net/srp_client.hpp                |  2 +-
+ src/core/thread/mle.cpp                    | 10 ++++
+ src/core/thread/mle.hpp                    |  4 +-
+ third_party/mbedtls/repo/library/common.h  |  2 +-
+ 9 files changed, 89 insertions(+), 14 deletions(-)
+
+diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp
+index 5f7916ba4..664963757 100644
+--- a/src/core/border_router/routing_manager.cpp
++++ b/src/core/border_router/routing_manager.cpp
+@@ -806,6 +806,64 @@ bool RoutingManager::NetworkDataContainsUlaRoute(void) const
+     return contains;
+ }
+
++void RoutingManager::HandleRxRaTrackerSignalTask(void)
++{
++    mRxRaTracker.HandleSignalTask();
++}
++
++void RoutingManager::HandleRxRaTrackerExpirationTimer(void)
++{
++    mRxRaTracker.HandleExpirationTimer();
++}
++
++void RoutingManager::HandleRxRaTrackerStaleTimer(void)
++{
++    mRxRaTracker.HandleStaleTimer();
++}
++
++void RoutingManager::HandleRxRaTrackerRouterTimer(void)
++{
++    mRxRaTracker.HandleRouterTimer();
++}
++
++void RoutingManager::HandleOnLinkPrefixManagerTimer(void)
++{
++    mOnLinkPrefixManager.HandleTimer();
++}
++
++void RoutingManager::HandleRioAdvertiserimer(void)
++{
++    mRioAdvertiser.HandleTimer();
++}
++
++#if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
++
++void RoutingManager::HandleNat64PrefixManagerTimer(void)
++{
++    mNat64PrefixManager.HandleTimer();
++}
++
++#endif // OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
++
++void RoutingManager::HandleRoutePublisherTimer(void)
++{
++    mRoutePublisher.HandleTimer();
++}
++
++void RoutingManager::HandleRsSenderTimer(void)
++{
++    mRsSender.HandleTimer();
++}
++
++#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
++
++void HandlePdPrefixManagerTimer(void)
++{
++    mPdPrefixManager.HandleTimer();
++}
++
++#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
++
+ #if OPENTHREAD_CONFIG_BORDER_ROUTING_REACHABILITY_CHECK_ICMP6_ERROR_ENABLE
+
+ void RoutingManager::CheckReachabilityToSendIcmpError(const Message &aMessage, const Ip6::Header &aIp6Header)
+diff --git a/src/core/border_router/routing_manager.hpp b/src/core/border_router/routing_manager.hpp
+index bfc138957..cc866e308 100644
+--- a/src/core/border_router/routing_manager.hpp
++++ b/src/core/border_router/routing_manager.hpp
+@@ -804,10 +804,10 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleRxRaTrackerSignalTask(void) { mRxRaTracker.HandleSignalTask(); }
+-    void HandleRxRaTrackerExpirationTimer(void) { mRxRaTracker.HandleExpirationTimer(); }
+-    void HandleRxRaTrackerStaleTimer(void) { mRxRaTracker.HandleStaleTimer(); }
+-    void HandleRxRaTrackerRouterTimer(void) { mRxRaTracker.HandleRouterTimer(); }
++    void HandleRxRaTrackerSignalTask(void);
++    void HandleRxRaTrackerExpirationTimer(void);
++    void HandleRxRaTrackerStaleTimer(void);
++    void HandleRxRaTrackerRouterTimer(void);
+
+     class RxRaTracker : public InstanceLocator
+     {
+@@ -1144,7 +1144,7 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleOnLinkPrefixManagerTimer(void) { mOnLinkPrefixManager.HandleTimer(); }
++    void HandleOnLinkPrefixManagerTimer(void);
+
+     class OnLinkPrefixManager : public InstanceLocator
+     {
+@@ -1215,7 +1215,7 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleRioAdvertiserimer(void) { mRioAdvertiser.HandleTimer(); }
++    void HandleRioAdvertiserimer(void);
+
+     class RioAdvertiser : public InstanceLocator
+     {
+@@ -1278,7 +1278,7 @@ private:
+
+ #if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
+
+-    void HandleNat64PrefixManagerTimer(void) { mNat64PrefixManager.HandleTimer(); }
++    void HandleNat64PrefixManagerTimer(void);
+
+     class Nat64PrefixManager : public InstanceLocator
+     {
+@@ -1326,7 +1326,7 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleRoutePublisherTimer(void) { mRoutePublisher.HandleTimer(); }
++    void HandleRoutePublisherTimer(void);
+
+     class RoutePublisher : public InstanceLocator // Manages the routes that are published in net data
+     {
+@@ -1411,7 +1411,7 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleRsSenderTimer(void) { mRsSender.HandleTimer(); }
++    void HandleRsSenderTimer(void);
+
+     class RsSender : public InstanceLocator
+     {
+diff --git a/src/core/mac/data_poll_sender.cpp b/src/core/mac/data_poll_sender.cpp
+index c21bbacfe..6b974e164 100644
+--- a/src/core/mac/data_poll_sender.cpp
++++ b/src/core/mac/data_poll_sender.cpp
+@@ -517,6 +517,11 @@ uint32_t DataPollSender::CalculatePollPeriod(void) const
+     return period;
+ }
+
++void DataPollSender::HandlePollTimer(void)
++{
++    IgnoreError(SendDataPoll());
++}
++
+ uint32_t DataPollSender::GetDefaultPollPeriod(void) const
+ {
+     uint32_t pollAhead = static_cast<uint32_t>(kRetxPollPeriod) * kMaxPollRetxAttempts;
+diff --git a/src/core/mac/data_poll_sender.hpp b/src/core/mac/data_poll_sender.hpp
+index 1c532ab51..4db8e5923 100644
+--- a/src/core/mac/data_poll_sender.hpp
++++ b/src/core/mac/data_poll_sender.hpp
+@@ -257,7 +257,7 @@ private:
+     void            ScheduleNextPoll(PollPeriodSelector aPollPeriodSelector);
+     uint32_t        CalculatePollPeriod(void) const;
+     const Neighbor &GetParent(void) const;
+-    void            HandlePollTimer(void) { IgnoreError(SendDataPoll()); }
++    void            HandlePollTimer(void);
+ #if OPENTHREAD_CONFIG_MULTI_RADIO
+     Error GetPollDestinationAddress(Mac::Address &aDest, Mac::RadioType &aRadioType) const;
+ #else
+diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp
+index b7150ff7f..12b8f0b4f 100644
+--- a/src/core/net/srp_client.cpp
++++ b/src/core/net/srp_client.cpp
+@@ -2444,6 +2444,8 @@ exit:
+     return error;
+ }
+
++void Client::HandleGuardTimer(void){}
++
+ #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE
+ void Client::SelectNextServer(bool aDisallowSwitchOnRegisteredHost)
+ {
+diff --git a/src/core/net/srp_client.hpp b/src/core/net/srp_client.hpp
+index 8f5891bd0..367b1d280 100644
+--- a/src/core/net/srp_client.hpp
++++ b/src/core/net/srp_client.hpp
+@@ -1052,7 +1052,7 @@ private:
+     void  ApplyAutoStartGuardOnAttach(void);
+     void  ProcessAutoStart(void);
+     Error SelectUnicastEntry(DnsSrpUnicastType aType, DnsSrpUnicastInfo &aInfo) const;
+-    void  HandleGuardTimer(void) {}
++    void  HandleGuardTimer(void);
+ #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE
+     void SelectNextServer(bool aDisallowSwitchOnRegisteredHost);
+ #endif
+diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp
+index 4de4705be..2e07222fc 100644
+--- a/src/core/thread/mle.cpp
++++ b/src/core/thread/mle.cpp
+@@ -3853,6 +3853,11 @@ exit:
+
+ #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
+
++void Mle::HandleParentSearchTimer(void)
++{
++    mParentSearch.HandleTimer();
++}
++
+ void Mle::ParentSearch::SetEnabled(bool aEnabled)
+ {
+     VerifyOrExit(mEnabled != aEnabled);
+@@ -4423,6 +4428,11 @@ void Mle::TlvList::AddElementsFrom(const TlvList &aTlvList)
+ //---------------------------------------------------------------------------------------------------------------------
+ // DelayedSender
+
++void Mle::HandleDelayedSenderTimer(void)
++{
++    mDelayedSender.HandleTimer();
++}
++
+ Mle::DelayedSender::DelayedSender(Instance &aInstance)
+     : InstanceLocator(aInstance)
+     , mTimer(aInstance)
+diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp
+index 58dcea1e7..613334896 100644
+--- a/src/core/thread/mle.hpp
++++ b/src/core/thread/mle.hpp
+@@ -1087,7 +1087,7 @@ private:
+
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+-    void HandleDelayedSenderTimer(void) { mDelayedSender.HandleTimer(); }
++    void HandleDelayedSenderTimer(void);
+
+     class DelayedSender : public InstanceLocator
+     {
+@@ -1210,7 +1210,7 @@ private:
+     //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
+-    void HandleParentSearchTimer(void) { mParentSearch.HandleTimer(); }
++    void HandleParentSearchTimer(void);
+
+     class ParentSearch : public InstanceLocator
+     {
+diff --git a/third_party/mbedtls/repo/library/common.h b/third_party/mbedtls/repo/library/common.h
+index 3936ffdfe..ce4dc1130 100644
+--- a/third_party/mbedtls/repo/library/common.h
++++ b/third_party/mbedtls/repo/library/common.h
+@@ -199,7 +199,7 @@ static inline void mbedtls_xor(unsigned char *r,
+         uint8x16_t x = veorq_u8(v1, v2);
+         vst1q_u8(r + i, x);
+     }
+-#if defined(__IAR_SYSTEMS_ICC__)
++#if defined(__IAR_SYSTEMS_ICC__) || (defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_GCC_VERSION >= 140100)
+     /* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case
+      * where n is a constant multiple of 16.
+      * For other compilers (e.g. recent gcc and clang) it makes no difference if n is a compile-time
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
index ec930de27..8183f5203 100644
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
@@ -11,14 +11,14 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=87109e44b2fda96a8991f27684a7349c \
                     file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
                     "
 DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native"
-SRCREV = "a35cc682305bb2201c314472adf06a4960536750"
+SRCREV = "b041fa52daaa4dfbf6aa4665d8925c1be0350ca5"
 PV = "0.3.0+git"
 
 SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \
            file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \
            file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \
            file://default-cxx-std.patch \
-           file://musl-fixes.patch \
+           file://0001-fix-build-on-GCC-14-for-yocto.patch;patchdir=third_party/openthread/repo \
            "
 
 S = "${WORKDIR}/git"
@@ -67,7 +67,3 @@  RCONFLICTS:${PN} = "ot-daemon"
 
 FILES:${PN} += "${systemd_unitdir}/*"
 FILES:${PN} += "${datadir}/*"
-
-# http://errors.yoctoproject.org/Errors/Details/766903/
-# git/third_party/openthread/repo/src/core/border_router/routing_manager.hpp:615:11: error: 'ot::BorderRouter::RoutingManager::DiscoveredPrefixTable' declared with greater visibility than the type of its field 'ot::BorderRouter::RoutingManager::DiscoveredPrefixTable::mEntryTimer' [-Werror=attributes]
-CXXFLAGS += "-Wno-error=attributes"