-
Notifications
You must be signed in to change notification settings - Fork 100
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
Move to version 4.4.0 of newlib ? #598
Comments
Hi, I expect |
newlib was updated to 4.5.0 with #618 Unfortunately, newlib does not provide any tests, so feedback is welcome. |
Hi! Thanks!
With this toolchain I could build binaries of our test platforms:
Unfortunately there is some debugging needed as the binaries are core dumping. But as the code is building and running fine using gcc-14 and newlib-4.5.0 I presume should not be too hard to debug the building process. The binaries built with clang and picolibc are running fine. I hope to update soon this comment with a running firmware. |
Follow-up on my trials. |
I checked that the problem is not due to patching newlib. I rebuilt my arm-none-eabi-gcc toolchain with newlib-4.5.0 patched with and adapted version of newlib patch of this project. This new gcc toolchain builds elf files that runs on the boards. |
Here is my next trial I built the toolchain with newlib as library. Then using this toolchain I built again newlib with
I renamed the folder of the toolchain With this hack I am able to compile/link/burn the code for a Nucleo_L4R5. |
Hi, thank you for looking into this! I am afraid, I do not see what may have fixed the issue.
So if my understanding is correct, there is a difference in header files somewhere that if we know what it is we should try to eliminate, e.g. reusing some of the options form the build instructions above. |
From what I see all armv*/include folder are identical. The standalone build of newlib as a unique include folder which is quite identical to those folders:
It is more difficult about the binaries. They are *.a files that cannot be compared directly (they surely will not match as usually there is a timestamp in the file). But a quick look with
|
This was not deliberate changes. I just used the same configuration as we use when building newlib for gcc. |
Check CMake config for newlibToolchainBuild the toolchain with Standalone newlibUsing this toolchain to perform standalone build of newlib with same parameters as in CMakeLists.txt.
Compare include folders
Include from standalone build is a subset of toolchain build. Therefore just keep it as is. Replace binariesCopy contents (replace mode) of ${prefix}/arm-none-eabi/lib/arm-none-eabi/armv7m_hard_fpv4_sp_d16_exn_rtti into ${LLVM_ET_Arm}/lib/clang-runtimes/arm-none-eabi/armv7m_hard_fpv4_sp_d16_exn_rtti/lib. Build is running now on the board. ConclusionThe config parameters in arm-runtimes/CMakeLists.txt look alright. NOTE: building of standalone newlib was not using ${flags} because if my understanding is correct the value change at each iteration of the variants. Sample of files for comparison |
I close this issue as (#630) is solving the problem. |
I have seen that the patch for newlib was recently updated.
I wonder how much effort could take to update this patch so that the version of newlib used by the project is the latest, i.e. 4.4.0.
I know support of newlib is experimental. Just would be nice if the version of newlib can be more recent one.
The text was updated successfully, but these errors were encountered: