I have noticed that the build output of a certain project via Arm DS IDE is different than the build output of the same project using Arm Command Prompt.
Both options has the same compiler and linker, so how come?
I work in the Arm DS team here at Arm. What differences are you seeing? For example, differences in code generation or differences in the debug information?To check that the code generation is the same, use "fromelf --bin" to generate a plain binary from each ELF/DWARF output, then compare the two binaries. Differences in the debug information might be due to different paths to source files being used, which should be harmless.
I can see differences in .axf Symbol Table. For instance, Function addresses are not the same.I've also used the "fromelf --bin" command and the output for the two files is different.
Hi Ronen,Within a function, is the code generation the same in both cases? What about for all the functions in an object? If so, perhaps the order in which object files are presented to the linker is different in the two cases. By "the same project using Arm Command Prompt", I assume you mean using armds_idec on the command-line - correct?You could also use a makefile to build on the command line. That might be a more portable approach in the long run.Stephen
According to the disassembly the code within a function is the same.All function addresses is different.I'm not sure about the order display.This is the shortcut for the Arm DS Command Prompt:"C:\Windows\System32\cmd.exe /c pushd "C:\Program Files\Arm\Development Studio 2022.2\bin" & cmdsuite.exe"
This is the shortcut for the Arm DS IDE:""C:\Program Files\Arm\Development Studio 2022.2\bin\armds_ide.exe""
I'm using a makefile for building through cmdsuite.exe
Moreover, I tried the "Cortex-M55" example provided by Arm DS examples library. The outcome of "fromelf --bin" for both builds (DS IDE vs. DS Cmd Prompt) is identical - so i can assume that my program built differently from DS IDE and DS Cmd Prompt probably because of the makefile itself.Thanks, Ronen
Hi RonenI suspect the order in which object files are presented to the linker is different in the two cases. You should be able to see this by looking at the linker command lines shown the Arm DS IDE (in the Console view) and by make (on the command-line). There's no way to change the ordering that the Arm DS IDE chooses, but you can make the object file ordering explicit in the makefile if you wish.Let me know if you need any more help with thisStephen
I understood.Appreciating your help so far.