Skip to content

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

@4ntoine

Description

@4ntoine
Contributor

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

Activity

silvanocerza

silvanocerza commented on Nov 8, 2021

@silvanocerza
Contributor

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. 🤔

4ntoine

4ntoine commented on Nov 11, 2021

@4ntoine
ContributorAuthor

@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.

umbynos

umbynos commented on Feb 2, 2023

@umbynos
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @4ntoine@silvanocerza@per1234@umbynos

      Issue actions

        Q: are executable after `task dist:Linux_64bit` in Release mode? · Issue #1541 · arduino/arduino-cli