user3789470
user3789470

Reputation: 1

arm lost kilobyte on compilation

For starters, I'm not an embedded engineer but I developed in C for a few years. My problem: when I compile the source code from one of our embedded software (based on contiki) on my laptop, I get a different file size (222Kb 236Kb against) than our subcontractor delivered (I can not contact) . And I do not know why I have this difference. I want to study tracks. - I have good library - I use the same ARM EABI compiler - I use the same makefile I have installed the same compiler ARM EABI than our subcontractor, so I think (perhaps wrongly) that my output is ready for embedded. I'm wrong?

Ideas?

Upvotes: 0

Views: 85

Answers (3)

Grissiom
Grissiom

Reputation: 12063

Maybe you should ask your subcontractor to provide the map file and compare the map file with the one on your side.

Add -Wl,-Map=the_map.map to LFLAGS if you are using GCC.

P.S. More over, make sure you have the same configuration. For example, if your subcontractor did a "release" build, you should compare with your own "release" build as well.

Upvotes: 0

Ruslan Gerasimov
Ruslan Gerasimov

Reputation: 1782

With every compiler\linker you can always find the map by sections like this:

 text       data        bss        dec        hex    filename 
 0x1408     0x18      0x81c       7228       1c3c    size.elf

Compare these sections one by one for both building environments to narrow down subject of investigation.

Upvotes: 0

Clifford
Clifford

Reputation: 93564

That could be down to a number of things such as:

  • Different compiler version
  • Different target processor
  • Different compiler options (especially optimisation and debug options).
  • Different library code linked (standard library or third-party).
  • Different build configuration (by command-line macros definitions for example).

Upvotes: 1

Related Questions