Open mikepurvis opened 4 years ago
Here's the diff that corresponds to option 1:
https://github.com/andysworkshop/stm32plus/compare/master...mikepurvis:no-stl
This is what we'll be moving forward with for now on our end, but I'm open to the discussion resolving in whatever way it does.
There are another round of fixes needed for the out of date STL shipped by stm32plus here: https://github.com/andysworkshop/stm32plus/tree/master/lib/include/stl
gnuarm 7-2018-q2-6 complains, for example:
However, other than
slist
(renamed toforward_list
), I believe the library mostly works with a modern STL like the one in thelibstdc++-arm-none-eabi-newlib
package (version15:7-2018-q2-5+12
in Focal). Would we entertain stripping out the vendored STL in favour of recommending an external one?Looks like some effort was made to support external STL implementations with be510ee330ee3a3553ebb303c89da3335aa839df, though there are other slist usages (especially in
net
) which need to be similarly patched.In all, the changes needed for me (since newlib does indeed ship an
ext/slist
header) were:slist
to match be510ee330ee3a3553ebb303c89da3335aa839df.lib/include/util/StdExt.h
.lib/include/stl
out ofCPPPATH
, and-DEXT_SLIST
intoCCFLAGS
.I think there are basically three main paths forward here:
lib/include/stl
from the repo. At some point, port the internalslist
uses over to use the standardforward_list
.slist
to smooth over the type naming and import difference (and maybe a better ifdef name thanEXT_SLIST
).