diff options
author | deepan.shivap <deepan.shivap@lge.com> | 2024-11-29 21:09:29 +0900 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2024-11-29 07:56:56 -0800 |
commit | 168634c5e66025cdba3abbd79401d5d5c51fa304 (patch) | |
tree | d6dbf9c11925755dd0684f4b106ad27f308811a6 /meta-networking | |
parent | b43c4901cfc455637d56ae3317fd606507f72b9c (diff) | |
download | meta-openembedded-168634c5e66025cdba3abbd79401d5d5c51fa304.tar.gz |
ot-br-posix: Fix GCC-14 build error
GCC 14 compiler uses -fvisibility-inlines-hidden by default and
it creates visibility conflicts.
Add 0001-fix-build-on-GCC-14-for-yocto.patch file to resolve build error.
Remove musl-fixes.patch, not applicable for latest Upstream.
Update SRCREV to latest Upstream.
Signed-off-by: deepan.shivap <deepan.shivap@lge.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking')
3 files changed, 295 insertions, 32 deletions
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..dc09527cd --- /dev/null +++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-fix-build-on-GCC-14-for-yocto.patch | |||
@@ -0,0 +1,293 @@ | |||
1 | From b34d0665b790016165b4a9b565f462712057b2b5 Mon Sep 17 00:00:00 2001 | ||
2 | From: "deepan.shivap" <deepan.shivap@lge.com> | ||
3 | Date: Wed, 13 Nov 2024 21:30:38 +0900 | ||
4 | Subject: [PATCH] fix build on GCC 14 for yocto | ||
5 | |||
6 | GCC 14 compiler uses -fvisibility-inlines-hidden by default and | ||
7 | it creates visibility conflicts. | ||
8 | |||
9 | Compilation error: | ||
10 | |||
11 | error: 'ot::BorderRouter::RoutingManager::RxRaTracker' declared with | ||
12 | greater visibility than the type of its field 'ot::BorderRouter:: | ||
13 | RoutingManager::RxRaTracker::mSignalTask' [-Werror=attributes] | ||
14 | | 814 | class RxRaTracker : public InstanceLocator | ||
15 | | | ^~~~~~~~~~~ | ||
16 | | compilation terminated due to -Wfatal-errors. | ||
17 | | cc1: all warnings being treated as errors | ||
18 | |||
19 | In addition, for below error I have added changes refering - | ||
20 | https://github.com/openwrt/openwrt/blob/main/package/libs/mbedtls/patches/100-fix-gcc14-build.patch | ||
21 | |||
22 | error: array subscript 48 is outside array bounds of 'unsigned char[48]' [-Werror=array-bounds=] | ||
23 | | 235 | r[i] = a[i] ^ b[i]; | ||
24 | | | ~^~~ | ||
25 | | compilation terminated due to -Wfatal-errors. | ||
26 | | cc1: all warnings being treated as errors | ||
27 | |||
28 | --- | ||
29 | Upstream-Status: Denied [Reason - https://github.com/openthread/openthread/pull/10925] | ||
30 | Signed-off-by: deepan.shivap <deepan.shivap@lge.com> | ||
31 | |||
32 | src/core/border_router/routing_manager.cpp | 58 ++++++++++++++++++++++ | ||
33 | src/core/border_router/routing_manager.hpp | 18 +++---- | ||
34 | src/core/mac/data_poll_sender.cpp | 5 ++ | ||
35 | src/core/mac/data_poll_sender.hpp | 2 +- | ||
36 | src/core/net/srp_client.cpp | 2 + | ||
37 | src/core/net/srp_client.hpp | 2 +- | ||
38 | src/core/thread/mle.cpp | 10 ++++ | ||
39 | src/core/thread/mle.hpp | 4 +- | ||
40 | third_party/mbedtls/repo/library/common.h | 2 +- | ||
41 | 9 files changed, 89 insertions(+), 14 deletions(-) | ||
42 | |||
43 | diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp | ||
44 | index 5f7916ba4..664963757 100644 | ||
45 | --- a/src/core/border_router/routing_manager.cpp | ||
46 | +++ b/src/core/border_router/routing_manager.cpp | ||
47 | @@ -806,6 +806,64 @@ bool RoutingManager::NetworkDataContainsUlaRoute(void) const | ||
48 | return contains; | ||
49 | } | ||
50 | |||
51 | +void RoutingManager::HandleRxRaTrackerSignalTask(void) | ||
52 | +{ | ||
53 | + mRxRaTracker.HandleSignalTask(); | ||
54 | +} | ||
55 | + | ||
56 | +void RoutingManager::HandleRxRaTrackerExpirationTimer(void) | ||
57 | +{ | ||
58 | + mRxRaTracker.HandleExpirationTimer(); | ||
59 | +} | ||
60 | + | ||
61 | +void RoutingManager::HandleRxRaTrackerStaleTimer(void) | ||
62 | +{ | ||
63 | + mRxRaTracker.HandleStaleTimer(); | ||
64 | +} | ||
65 | + | ||
66 | +void RoutingManager::HandleRxRaTrackerRouterTimer(void) | ||
67 | +{ | ||
68 | + mRxRaTracker.HandleRouterTimer(); | ||
69 | +} | ||
70 | + | ||
71 | +void RoutingManager::HandleOnLinkPrefixManagerTimer(void) | ||
72 | +{ | ||
73 | + mOnLinkPrefixManager.HandleTimer(); | ||
74 | +} | ||
75 | + | ||
76 | +void RoutingManager::HandleRioAdvertiserimer(void) | ||
77 | +{ | ||
78 | + mRioAdvertiser.HandleTimer(); | ||
79 | +} | ||
80 | + | ||
81 | +#if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE | ||
82 | + | ||
83 | +void RoutingManager::HandleNat64PrefixManagerTimer(void) | ||
84 | +{ | ||
85 | + mNat64PrefixManager.HandleTimer(); | ||
86 | +} | ||
87 | + | ||
88 | +#endif // OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE | ||
89 | + | ||
90 | +void RoutingManager::HandleRoutePublisherTimer(void) | ||
91 | +{ | ||
92 | + mRoutePublisher.HandleTimer(); | ||
93 | +} | ||
94 | + | ||
95 | +void RoutingManager::HandleRsSenderTimer(void) | ||
96 | +{ | ||
97 | + mRsSender.HandleTimer(); | ||
98 | +} | ||
99 | + | ||
100 | +#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE | ||
101 | + | ||
102 | +void HandlePdPrefixManagerTimer(void) | ||
103 | +{ | ||
104 | + mPdPrefixManager.HandleTimer(); | ||
105 | +} | ||
106 | + | ||
107 | +#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE | ||
108 | + | ||
109 | #if OPENTHREAD_CONFIG_BORDER_ROUTING_REACHABILITY_CHECK_ICMP6_ERROR_ENABLE | ||
110 | |||
111 | void RoutingManager::CheckReachabilityToSendIcmpError(const Message &aMessage, const Ip6::Header &aIp6Header) | ||
112 | diff --git a/src/core/border_router/routing_manager.hpp b/src/core/border_router/routing_manager.hpp | ||
113 | index bfc138957..cc866e308 100644 | ||
114 | --- a/src/core/border_router/routing_manager.hpp | ||
115 | +++ b/src/core/border_router/routing_manager.hpp | ||
116 | @@ -804,10 +804,10 @@ private: | ||
117 | |||
118 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
119 | |||
120 | - void HandleRxRaTrackerSignalTask(void) { mRxRaTracker.HandleSignalTask(); } | ||
121 | - void HandleRxRaTrackerExpirationTimer(void) { mRxRaTracker.HandleExpirationTimer(); } | ||
122 | - void HandleRxRaTrackerStaleTimer(void) { mRxRaTracker.HandleStaleTimer(); } | ||
123 | - void HandleRxRaTrackerRouterTimer(void) { mRxRaTracker.HandleRouterTimer(); } | ||
124 | + void HandleRxRaTrackerSignalTask(void); | ||
125 | + void HandleRxRaTrackerExpirationTimer(void); | ||
126 | + void HandleRxRaTrackerStaleTimer(void); | ||
127 | + void HandleRxRaTrackerRouterTimer(void); | ||
128 | |||
129 | class RxRaTracker : public InstanceLocator | ||
130 | { | ||
131 | @@ -1144,7 +1144,7 @@ private: | ||
132 | |||
133 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
134 | |||
135 | - void HandleOnLinkPrefixManagerTimer(void) { mOnLinkPrefixManager.HandleTimer(); } | ||
136 | + void HandleOnLinkPrefixManagerTimer(void); | ||
137 | |||
138 | class OnLinkPrefixManager : public InstanceLocator | ||
139 | { | ||
140 | @@ -1215,7 +1215,7 @@ private: | ||
141 | |||
142 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
143 | |||
144 | - void HandleRioAdvertiserimer(void) { mRioAdvertiser.HandleTimer(); } | ||
145 | + void HandleRioAdvertiserimer(void); | ||
146 | |||
147 | class RioAdvertiser : public InstanceLocator | ||
148 | { | ||
149 | @@ -1278,7 +1278,7 @@ private: | ||
150 | |||
151 | #if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE | ||
152 | |||
153 | - void HandleNat64PrefixManagerTimer(void) { mNat64PrefixManager.HandleTimer(); } | ||
154 | + void HandleNat64PrefixManagerTimer(void); | ||
155 | |||
156 | class Nat64PrefixManager : public InstanceLocator | ||
157 | { | ||
158 | @@ -1326,7 +1326,7 @@ private: | ||
159 | |||
160 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
161 | |||
162 | - void HandleRoutePublisherTimer(void) { mRoutePublisher.HandleTimer(); } | ||
163 | + void HandleRoutePublisherTimer(void); | ||
164 | |||
165 | class RoutePublisher : public InstanceLocator // Manages the routes that are published in net data | ||
166 | { | ||
167 | @@ -1411,7 +1411,7 @@ private: | ||
168 | |||
169 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
170 | |||
171 | - void HandleRsSenderTimer(void) { mRsSender.HandleTimer(); } | ||
172 | + void HandleRsSenderTimer(void); | ||
173 | |||
174 | class RsSender : public InstanceLocator | ||
175 | { | ||
176 | diff --git a/src/core/mac/data_poll_sender.cpp b/src/core/mac/data_poll_sender.cpp | ||
177 | index c21bbacfe..6b974e164 100644 | ||
178 | --- a/src/core/mac/data_poll_sender.cpp | ||
179 | +++ b/src/core/mac/data_poll_sender.cpp | ||
180 | @@ -517,6 +517,11 @@ uint32_t DataPollSender::CalculatePollPeriod(void) const | ||
181 | return period; | ||
182 | } | ||
183 | |||
184 | +void DataPollSender::HandlePollTimer(void) | ||
185 | +{ | ||
186 | + IgnoreError(SendDataPoll()); | ||
187 | +} | ||
188 | + | ||
189 | uint32_t DataPollSender::GetDefaultPollPeriod(void) const | ||
190 | { | ||
191 | uint32_t pollAhead = static_cast<uint32_t>(kRetxPollPeriod) * kMaxPollRetxAttempts; | ||
192 | diff --git a/src/core/mac/data_poll_sender.hpp b/src/core/mac/data_poll_sender.hpp | ||
193 | index 1c532ab51..4db8e5923 100644 | ||
194 | --- a/src/core/mac/data_poll_sender.hpp | ||
195 | +++ b/src/core/mac/data_poll_sender.hpp | ||
196 | @@ -257,7 +257,7 @@ private: | ||
197 | void ScheduleNextPoll(PollPeriodSelector aPollPeriodSelector); | ||
198 | uint32_t CalculatePollPeriod(void) const; | ||
199 | const Neighbor &GetParent(void) const; | ||
200 | - void HandlePollTimer(void) { IgnoreError(SendDataPoll()); } | ||
201 | + void HandlePollTimer(void); | ||
202 | #if OPENTHREAD_CONFIG_MULTI_RADIO | ||
203 | Error GetPollDestinationAddress(Mac::Address &aDest, Mac::RadioType &aRadioType) const; | ||
204 | #else | ||
205 | diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp | ||
206 | index b7150ff7f..12b8f0b4f 100644 | ||
207 | --- a/src/core/net/srp_client.cpp | ||
208 | +++ b/src/core/net/srp_client.cpp | ||
209 | @@ -2444,6 +2444,8 @@ exit: | ||
210 | return error; | ||
211 | } | ||
212 | |||
213 | +void Client::HandleGuardTimer(void){} | ||
214 | + | ||
215 | #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE | ||
216 | void Client::SelectNextServer(bool aDisallowSwitchOnRegisteredHost) | ||
217 | { | ||
218 | diff --git a/src/core/net/srp_client.hpp b/src/core/net/srp_client.hpp | ||
219 | index 8f5891bd0..367b1d280 100644 | ||
220 | --- a/src/core/net/srp_client.hpp | ||
221 | +++ b/src/core/net/srp_client.hpp | ||
222 | @@ -1052,7 +1052,7 @@ private: | ||
223 | void ApplyAutoStartGuardOnAttach(void); | ||
224 | void ProcessAutoStart(void); | ||
225 | Error SelectUnicastEntry(DnsSrpUnicastType aType, DnsSrpUnicastInfo &aInfo) const; | ||
226 | - void HandleGuardTimer(void) {} | ||
227 | + void HandleGuardTimer(void); | ||
228 | #if OPENTHREAD_CONFIG_SRP_CLIENT_SWITCH_SERVER_ON_FAILURE | ||
229 | void SelectNextServer(bool aDisallowSwitchOnRegisteredHost); | ||
230 | #endif | ||
231 | diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp | ||
232 | index 4de4705be..2e07222fc 100644 | ||
233 | --- a/src/core/thread/mle.cpp | ||
234 | +++ b/src/core/thread/mle.cpp | ||
235 | @@ -3853,6 +3853,11 @@ exit: | ||
236 | |||
237 | #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE | ||
238 | |||
239 | +void Mle::HandleParentSearchTimer(void) | ||
240 | +{ | ||
241 | + mParentSearch.HandleTimer(); | ||
242 | +} | ||
243 | + | ||
244 | void Mle::ParentSearch::SetEnabled(bool aEnabled) | ||
245 | { | ||
246 | VerifyOrExit(mEnabled != aEnabled); | ||
247 | @@ -4423,6 +4428,11 @@ void Mle::TlvList::AddElementsFrom(const TlvList &aTlvList) | ||
248 | //--------------------------------------------------------------------------------------------------------------------- | ||
249 | // DelayedSender | ||
250 | |||
251 | +void Mle::HandleDelayedSenderTimer(void) | ||
252 | +{ | ||
253 | + mDelayedSender.HandleTimer(); | ||
254 | +} | ||
255 | + | ||
256 | Mle::DelayedSender::DelayedSender(Instance &aInstance) | ||
257 | : InstanceLocator(aInstance) | ||
258 | , mTimer(aInstance) | ||
259 | diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp | ||
260 | index 58dcea1e7..613334896 100644 | ||
261 | --- a/src/core/thread/mle.hpp | ||
262 | +++ b/src/core/thread/mle.hpp | ||
263 | @@ -1087,7 +1087,7 @@ private: | ||
264 | |||
265 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
266 | |||
267 | - void HandleDelayedSenderTimer(void) { mDelayedSender.HandleTimer(); } | ||
268 | + void HandleDelayedSenderTimer(void); | ||
269 | |||
270 | class DelayedSender : public InstanceLocator | ||
271 | { | ||
272 | @@ -1210,7 +1210,7 @@ private: | ||
273 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
274 | |||
275 | #if OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE | ||
276 | - void HandleParentSearchTimer(void) { mParentSearch.HandleTimer(); } | ||
277 | + void HandleParentSearchTimer(void); | ||
278 | |||
279 | class ParentSearch : public InstanceLocator | ||
280 | { | ||
281 | diff --git a/third_party/mbedtls/repo/library/common.h b/third_party/mbedtls/repo/library/common.h | ||
282 | index 3936ffdfe..ce4dc1130 100644 | ||
283 | --- a/third_party/mbedtls/repo/library/common.h | ||
284 | +++ b/third_party/mbedtls/repo/library/common.h | ||
285 | @@ -199,7 +199,7 @@ static inline void mbedtls_xor(unsigned char *r, | ||
286 | uint8x16_t x = veorq_u8(v1, v2); | ||
287 | vst1q_u8(r + i, x); | ||
288 | } | ||
289 | -#if defined(__IAR_SYSTEMS_ICC__) | ||
290 | +#if defined(__IAR_SYSTEMS_ICC__) || (defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_GCC_VERSION >= 140100) | ||
291 | /* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case | ||
292 | * where n is a constant multiple of 16. | ||
293 | * 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/musl-fixes.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch deleted file mode 100644 index 279a60741..000000000 --- a/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | Musl fixes, which should be applied upstream too | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | --- a/src/dbus/common/types.hpp | ||
6 | +++ b/src/dbus/common/types.hpp | ||
7 | @@ -715,7 +715,7 @@ struct TrelInfo | ||
8 | }; | ||
9 | |||
10 | bool mEnabled; ///< Whether TREL is enabled. | ||
11 | - u_int16_t mNumTrelPeers; ///< The number of TREL peers. | ||
12 | + uint16_t mNumTrelPeers; ///< The number of TREL peers. | ||
13 | TrelPacketCounters mTrelCounters; ///< The TREL counters. | ||
14 | }; | ||
15 | |||
16 | --- a/third_party/openthread/repo/src/posix/platform/CMakeLists.txt | ||
17 | +++ b/third_party/openthread/repo/src/posix/platform/CMakeLists.txt | ||
18 | @@ -172,7 +172,7 @@ target_link_libraries(openthread-posix | ||
19 | ) | ||
20 | |||
21 | option(OT_TARGET_OPENWRT "enable openthread posix for OpenWRT" OFF) | ||
22 | -if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT) | ||
23 | +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT AND NOT OT_TARGET_MUSL) | ||
24 | target_compile_definitions(ot-posix-config | ||
25 | INTERFACE "OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE=1" | ||
26 | ) | ||
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 \ | |||
11 | file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \ | 11 | file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \ |
12 | " | 12 | " |
13 | DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native" | 13 | DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native" |
14 | SRCREV = "a35cc682305bb2201c314472adf06a4960536750" | 14 | SRCREV = "b041fa52daaa4dfbf6aa4665d8925c1be0350ca5" |
15 | PV = "0.3.0+git" | 15 | PV = "0.3.0+git" |
16 | 16 | ||
17 | SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \ | 17 | SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \ |
18 | file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \ | 18 | file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \ |
19 | file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \ | 19 | file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \ |
20 | file://default-cxx-std.patch \ | 20 | file://default-cxx-std.patch \ |
21 | file://musl-fixes.patch \ | 21 | file://0001-fix-build-on-GCC-14-for-yocto.patch;patchdir=third_party/openthread/repo \ |
22 | " | 22 | " |
23 | 23 | ||
24 | S = "${WORKDIR}/git" | 24 | S = "${WORKDIR}/git" |
@@ -67,7 +67,3 @@ RCONFLICTS:${PN} = "ot-daemon" | |||
67 | 67 | ||
68 | FILES:${PN} += "${systemd_unitdir}/*" | 68 | FILES:${PN} += "${systemd_unitdir}/*" |
69 | FILES:${PN} += "${datadir}/*" | 69 | FILES:${PN} += "${datadir}/*" |
70 | |||
71 | # http://errors.yoctoproject.org/Errors/Details/766903/ | ||
72 | # 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] | ||
73 | CXXFLAGS += "-Wno-error=attributes" | ||