arduino-cli icon indicating copy to clipboard operation
arduino-cli copied to clipboard

Q: are executable after `task dist:Linux_64bit` in Release mode?

Open 4ntoine opened this issue 4 years ago • 3 comments
trafficstars

I've build the arduino-cli executable (with task dist:Linux_64bit), but it provides low performance at some environment. I wonder whether executables are compiled in Release or Debug mode. I can see the executable is not stripped, which makes me think it's in Debug mode:

file arduino-cli
arduino-cli: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildID=Zz60NJg_l4m1AvQOVjSx/dM1hmpgIM7armTx0thNs/_6NAp6OcmjPhXjfQc9rK/r7wrkhfpwfikCFp3Qvwc, not stripped

I can definitely strip it, but is there anything to make it compiled with optimizations (in Release mode)? Can/how can i compile it statically?

PS. i've looked into release binaries and x86-64 has similar size and is also not stripped which makes me think the once compiled by me might be also built in Release mode but just both are not stripped

4ntoine avatar Nov 06 '21 06:11 4ntoine

Nice idea, I didn't think about it. I guess performance won't change but the binary size seems to be cut quite a bit, at least on Linux where I tested.

My only concern would be if we lose detailed stacktraces in case of crashes. :thinking:

silvanocerza avatar Nov 08 '21 09:11 silvanocerza

@silvanocerza i'm not sure about the binary tools, but on mobile when the apps are processed the sourcemap (or renamings) is stored separately during the release (even on CI server). Later when crash happens the addresses are processed with the tool that accepts that stored sourcemap and provides a full human-readable stacktrace.

You could smth similar, so the binaries will be faster/smaller, but you will still have the information when smth goes wrong.

4ntoine avatar Nov 11 '21 11:11 4ntoine

This is actually a legit request, I think we can take this in consideration. Apparently the stacktrace seems the same between a stripped and a not stripped binary, but the size of the binaries is different

umbynos avatar Feb 02 '23 14:02 umbynos