This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

The new toolchain is too bloated

I've been happily using the GNU Arm Embedded Toolchain for a while. Recently this was discontinued in favour of the Arm GNU Toolchain which combines both the embedded and non-embedded toolchains into a single package.

This bloats the installation to 5GiB on Windows! (Previously was under 1GiB).

Additionally GDB now depends on Python 2.7, which seems very backwards to me and complicates the installation process. (Previously there was a separate arm-none-eabi-gdb-py, which users were free to ignore if they didn't need the Python functionality).

These changes feel like a step in the wrong direction. My projects do not target ARM Linux, they only require an embedded ARM toolchain. I now feel that Windows users who might be interested in trying them are just going to give up because they don't have the bandwidth or hard disk space or just don't want to install an obsolete version of Python.

Would you consider splitting the toolchains up again?

(Apologies for the negative post, I do really appreciate that you folks maintain and make this toolchain available in the first place, but I felt I had to get this off my chest.)

Thanks,

Jeremy

Parents
  • Hi Jeremy, thanks for the post and no worries about the negativity of the post! You raise many valid points. If we were to break it down:

    1) The use of Python 2.7: Here I completely agree with you and this and for the next release we have removed the need for the obsolete Python 2.7 and upgraded to Python 3. The topic of whether to go back to including multiple versions of GBD is under discussion, but it won't be resolved before the next release (so the next release will require Python 3)

    2) I either haven't understood you correctly or you're slightly wrong about "Arm GNU Toolchain which combines both the embedded and non-embedded toolchains" --- there has been no merger of ARM Linux ("arm-none-linux-gnueabihf") and baremetal "arm-none-eabi" toolchains other than the fact they now share the same download page (Although I would agree that the page has too many options and can be much more confusing now...)
    The only functional change is within baremetal "arm-none-eabi": Previously in GNU-RM we would include a baremel "arm-none-eabi" with libraries for R, M class processors and in GNU-A we'd include an "arm-none-eabi" with libraries for A class processors. Now we are including all A, R, M class processor libraries in the single toolchain, which removed the issue of "is this arm-none-eabi the same as the other arm-none-eabi?", with a slight increase in hard disk space needs... (but there's also a separate issue here, which causes the majority of the size increase, that I've put as point 3, below).

    3) The increased disk space. This is a tricky one: Only a small part of the disk space increase was due to increasing the number of libraries in the toolchain. The majority came from our decision to stop using "strip" on the libraries: Previously we had stripped the libraries of all symbols and debug information, which minimised their filesize, but made debugging much harder or impossible when user code was tightly knit with library code. This topic is also under further discussion internally, but, generally, our view is that disk space is "cheap" these days, so for now we've chosen to give more debug functionality to the users, at the cost of the greater filesize.
Reply
  • Hi Jeremy, thanks for the post and no worries about the negativity of the post! You raise many valid points. If we were to break it down:

    1) The use of Python 2.7: Here I completely agree with you and this and for the next release we have removed the need for the obsolete Python 2.7 and upgraded to Python 3. The topic of whether to go back to including multiple versions of GBD is under discussion, but it won't be resolved before the next release (so the next release will require Python 3)

    2) I either haven't understood you correctly or you're slightly wrong about "Arm GNU Toolchain which combines both the embedded and non-embedded toolchains" --- there has been no merger of ARM Linux ("arm-none-linux-gnueabihf") and baremetal "arm-none-eabi" toolchains other than the fact they now share the same download page (Although I would agree that the page has too many options and can be much more confusing now...)
    The only functional change is within baremetal "arm-none-eabi": Previously in GNU-RM we would include a baremel "arm-none-eabi" with libraries for R, M class processors and in GNU-A we'd include an "arm-none-eabi" with libraries for A class processors. Now we are including all A, R, M class processor libraries in the single toolchain, which removed the issue of "is this arm-none-eabi the same as the other arm-none-eabi?", with a slight increase in hard disk space needs... (but there's also a separate issue here, which causes the majority of the size increase, that I've put as point 3, below).

    3) The increased disk space. This is a tricky one: Only a small part of the disk space increase was due to increasing the number of libraries in the toolchain. The majority came from our decision to stop using "strip" on the libraries: Previously we had stripped the libraries of all symbols and debug information, which minimised their filesize, but made debugging much harder or impossible when user code was tightly knit with library code. This topic is also under further discussion internally, but, generally, our view is that disk space is "cheap" these days, so for now we've chosen to give more debug functionality to the users, at the cost of the greater filesize.
Children