Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

freertos-kernel: Update to V11.1.0 release #72

Merged

Conversation

urutva
Copy link
Contributor

@urutva urutva commented May 8, 2024

Description

Even though CMake supports circular dependency, but currently it is supported only for static libraries. If CMake detects a circular dependency which involves an object library then CMake stops. For more info, check https://gitlab.kitware.com/cmake/cmake/-/issues/17905.

With FreeRTOS-Kernel 11.1.0 release, FreeRTOS-Kernel produces a single static library. As part of this effort, freertos_kernel_port library has been changed to an OBJECT library. With our current dependency chain in FRI, this leads to a circular dependency with an object library. Therefore, remove the dependency of freertos_config on fri-bsp to avoid this. Because of this, we've to add the necessary includes from bsp to freertos-config.

The CS315 network interface layer inside the FreeRTOS TCP/IP stack https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/source/portable/NetworkInterface/MPS4_CS315/Device/Include/SSE315.h#L62 is done in such a way that it depends on fri-bsp. Therefore, add freertos_plus_tcp dependency on fri-bsp.

In general, a library A depending on another library B should avoid linking against granular libraries defined inside the library B. This can cause build failures in future. Therefore, the dependency of isp_platform_driver_system and isp_control on
freertos_kernel_include has been changed to freertos_kernel.

Test Steps

Changes validated on internal CI, no regression observed.

Checklist:

  • I have tested my changes. No regression in existing tests.
  • I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Even though CMake supports circular dependency, but currently it is
supported only for static libraries. If CMake detects a circular
dependency which involves an object library then CMake stops. For more
info, check https://gitlab.kitware.com/cmake/cmake/-/issues/17905.

With FreeRTOS-Kernel 11.1.0 release, FreeRTOS-Kernel produces a single
static library. As part of this effort, `freertos_kernel_port` library
has been changed to an `OBJECT` library. With our current dependency
chain in FRI, this leads to a circular dependency with an object
library. Therefore, remove the dependency of `freertos_config` on
`fri-bsp` to avoid this. Because of this, we've to add the necessary
includes from bsp to `freertos-config`.

The CS315 network interface layer inside the FreeRTOS TCP/IP stack
https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/source/portable/NetworkInterface/MPS4_CS315/Device/Include/SSE315.h#L62
is done in such a way that it depends on fri-bsp. Therefore, add
`freertos_plus_tcp` dependency on `fri-bsp`.

In general, a library A  depending on another library B should avoid
linking against granular libraries defined inside the library B. This
can cause build failures in future. Therefore, the dependency of
`isp_platform_driver_system` and `isp_control` on
`freertos_kernel_include` has been changed to `freertos_kernel`.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
@urutva urutva requested a review from a team as a code owner May 8, 2024 09:35
@amazonKamath amazonKamath self-requested a review May 9, 2024 10:08
@urutva urutva merged commit 12828dc into FreeRTOS:main May 9, 2024
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants