Repository navigation
Add support to build cobalt/starboard using an external RDK toolchain - #5166
Conversation
|
Note that these changes currently disable .rsp files as it breaks the build when using the external RDK toolchain - looking into it. |
39a41dc to
a223136
Compare
a223136 to
6bbf9b6
Compare
|
apart from the the open comments lgtm! |
6bbf9b6 to
33c50d3
Compare
|
@andrunko can you see why the required checks are failing . maybe rerun the failing checks to ensure there's no flakes. |
The failures seem to be caused by this line on docker-compose.yml: This was added to support users extracting the SDK anywhere, as the SDK executables expect their path to be the same as the one where they got extracted to, so we need to mount the SDK in the same place inside the container where it was extracted outside the container. I was initially mounting $HOME:$HOME here, but this would only work if the SDK is extracted somewhere inside $HOME outside the container as well. I changed it after #5166 (comment), which would solve the issue when mounting outside $HOME, but would also require all containers to have Note we only need that until we get the sysroot uploaded somewhere public, then we can extract it directly from the docker container anywhere and set the env vars accordingly. For now, the options I can see:
Thoughts? |
@oxve thoughts? the HOME option sounds like what we would use currently |
|
if possible, try not to ask the user to install the SDK in $HOME. On some partner environment, they have very limited disc quota at $HOME because it is system disc. but they have large shared work space mounted on other paths. And engineers from the same partner can share the installed SDK if it is installed in system folder. Having a symbolic link in $HOME might not solve the issue but it is not straightforward. Can we set the RDK_SDK using ENV in Dockerfile which point to the default value we expected to be installed? And partner can overwrite it if they specifically set the value in bash env? |
|
the rest of changes look good to me |
We cant use ENV as the sysroot needs to be mounted inside the container exactly in the same location it was extracted outside the container. I've updated the PR again to use HOME for now (which in theory should solve the checks here), but another option would be to have a fixed location where the sysroot needs to be extracted (outside the container), and then we mount this hardcoded location in the same place inside the container - e.g. Please let me know what you think and if you decide on a hardcoded path, which one we should use here. |
33c50d3 to
dfce61f
Compare
Using a hardcoded path could also make the checks here fail, e.g. if we try to mount /opt/rdk-sysroot:/opt/rdk-sysroot but this dir doesnt exist outside the container (on CI), the checks will likely fail. Tbh the best I can think atm is to use $HOME until we get the public sysroot available, then we get rid of all this. |
|
The new CI failures seem unrelated? |
This defines the `rdk_starboard_root` gn arg that can be used to set the location of the RDK starboard code (default to `//starboard/contrib/rdk`). It also forwards cflags/cxxflags when using the clang toolchain, needed to to pass the rdk sources' include dir to compilers and thus avoid touching the sources which include "third_party/...". b/402053134
dfce61f to
ca07fbf
Compare
Add github actions to build RDK evergreen platform Depends on #5166. b/406991008
b/402053134
This is a work in progress to add support for building cobalt using an external RDK toolchain. The actual integration expects the RDK starboard implementation to be located under
starboard/contrib/rdkand won't work without it - this will be done (likely as a git subtree) once the RDK starboard changes are integrated into https://cobalt.googlesource.com/ (proposed changes currently under review) where they live.