FreddieChopin / bleeding-edge-toolchain

All-in-one script to build bleeding-edge-toolchain for ARM microcontrollers
71 stars 24 forks source link

Add big-endian version of avmv7-ar multilib #4

Closed dobryj closed 7 years ago

dobryj commented 7 years ago

Add big-endian multilib (BE) support without change of original little-endian (LE) libraries. From directory structure point of view it isn't perfect. But it is more safe without impact to little endian libraries. Current directory structure is: LE: armv7-ar/thumb/ BE: armv7-ar/thumb/be/ I will prepare re-factor of directory structure as separate patch later. It will need some more investigation to all needed automatic library reusing. We don't need to have any impact to LE as default.

FreddieChopin commented 7 years ago

Wouldn't it be better to have the "be" folder at the top, which the same hierarchy inside as is currently available for little-endian targets?

Sth like: armv7-ar/thumb/libc.a armv7-ar/thumb/fpu/libc.a armv7-ar/thumb/softfp/libc.a be/armv7-ar/thumb/libc.a be/armv7-ar/thumb/fpu/libc.a be/armv7-ar/thumb/softfp/libc.a

dobryj commented 7 years ago

Problem is that this question didn't have simple answer. For me is better structure like "armv7-ar/thumb-bigE/libc.a". Problem is that it is not compatible with newer automatic directory names used in current ARM GCC distribution

Your names like "be/armv7-ar/thumb/libc.a" is not compatible witch traditional order of options.

Therefore probably best solution (used in other BE patches, for ex. armv8) is format "armv7-ar/thumb/le/libc.a", "armv7-ar/thumb/be/libc.a". It have best compatibility with other patches and BE solutions. But it change current LE library places. And it need complete set of automatic reusing of libraries.

These are the reasons, why I made this little bit dirty directory structure. It is not perfect, but it is safe way for this moment. And it is enough solution for transitional state.

FreddieChopin commented 7 years ago

Thanks for your contribution!

Will you have any more changes soon? I think now would be a good time to do a release and publish the builds for Windows, but if you have something more coming, then I'll wait (;

BTW - will you be able to prepare a patch for the t-rmprofile file from GCC 7?

dobryj commented 7 years ago

I have plan to change directory structure for the BE patch. It is almost done. I made minimal how-to compile document for fresh ubuntu instalation (done, I will add it into README.md) And I planing to patch GCC7 and try push it into main GCC trunk. But I did't try compile it yet.

FreddieChopin commented 7 years ago

OK, if you are going to have that soon, I can wait with the next release. I previously tried to do the release every 3 months, just like ARM, but now I guess I'll try to "align" the releases with features and releases of components. And as gcc released version 6.3.0 and newlib released version 2.5.0 I'd like to do that in the next few days.