Ugh... Really sorry, hit reply instead of reply list. Greetings,
Apologies for hijacking this e-mail chain, but I have had issues with the ``bloat'' in newlib as well. My issue is with internationalization support in newlib. I have configured and compiled newlib with the following flags: export CFLAGS_FOR_TARGET="-Os -g -ffunction-sections -fdata-sections" ../configure \ --prefix=/usr \ --target=msp430-elf \ --disable-newlib-supplied-syscalls \ --enable-newlib-reent-small \ --disable-newlib-fseek-optimization \ --disable-newlib-wide-orient \ --enable-newlib-nano-formatted-io \ --disable-newlib-io-float \ --enable-newlib-nano-malloc \ --disable-newlib-unbuf-stream-opt \ --enable-lite-exit \ --enable-newlib-global-atexit \ --disable-nls It was my understanding that --disable-nls would disable internationalization support. Unfortunately, I am observing the following behaviour with the attached code: $ msp430-elf-gcc -Os -o uart uart.c -mmcu=msp430g2553 $ size uart text data bss dec hex filename 778 16 90 884 374 uart $ msp430-elf-gcc -Os -o uart uart.c -mmcu=msp430g2553 -DUSE_TOUPPER $ size uart text data bss dec hex filename 1476 398 92 1966 7ae uart The function toupper() is pulling in 382 bytes into .data. This accounts for 74.6% of this particular microcontroller's SRAM. This is not very nice. Furthermore, I have not really looked into it, but should this new data actually be mutable? If not, it could very well go into .rodata and stay in flash memory. Ideally, I should be able to disable internationalization support alltoguether even if it goes against the C and POSIX standards. Is there any way to actually do that I am missing? Thank you. Cheers, Orlando. On 03/03/2017 01:30 PM, DJ Delorie wrote: > > This has come up before, and here's what's going on... the new > msp430-elf-gcc includes all the code required by the standard, partly > because... well, standards... and partly so that the testsuite can test > everything. The old msp-gcc made lots of assumptions about how the > compiler would actually be used, and "pre-optimized" the runtime for it. > > So you end up with things like "argv handling" when there's no command > line, or "exit closes files" when you never exit. A big change is using > a float-enabled printf when you don't need it. > > I put some notes here, way back when, but they're old, and IIRC it's > been improved even more since then: > > http://people.redhat.com/~dj/msp430/size-optimizations.html > > Also, you can use "msp430-elf-gcc -mintr ..." to minimize the runtime > support. > > Also, if you're REALLY constrained to size, you might consider getting > the crt0.S source file from newlib and modifying it yourself to really > strip out the parts you don't need. Most embedded code really only > needs to set up the stack and watchdog, then jump to main(). > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users >
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users