mirror of
https://github.com/esp8266/Arduino.git
synced 2025-05-21 14:13:47 +03:00
* Use newlib libc library This change adds libcmin.a, which is created from newlib libc by selectively removing some of the object files (mostly related to heap management). The list of files is available in tools/sdk/lib/make_libcmin.sh. Files which are not needed are commented out. This change adds support for various functions which were missing, like sscanf, strftime, etc. * Fix some of the time functions * Redirect stdout to serial * Implement __putc_r * Switch to custom newlib build Built from https://github.com/igrr/newlib-xtensa using: ./configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf --target=xtensa-lx106-elf --enable-newlib-nano-formatted-io --enable-newlib-reent-small --prefix=path-to-arduino-core/tools/sdk/libc CROSS_CFLAGS="-DMALLOC_PROVIDED -DSIGNAL_PROVIDED -DABORT_PROVIDED" make make install * Update tests
28 lines
807 B
C
28 lines
807 B
C
#ifndef _NEWLIB_STDIO_H
|
|
#define _NEWLIB_STDIO_H
|
|
|
|
#include <sys/lock.h>
|
|
#include <sys/reent.h>
|
|
|
|
/* Internal locking macros, used to protect stdio functions. In the
|
|
general case, expand to nothing. Use __SSTR flag in FILE _flags to
|
|
detect if FILE is private to sprintf/sscanf class of functions; if
|
|
set then do nothing as lock is not initialised. */
|
|
#if !defined(_flockfile)
|
|
#ifndef __SINGLE_THREAD__
|
|
# define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))
|
|
#else
|
|
# define _flockfile(fp) (_CAST_VOID 0)
|
|
#endif
|
|
#endif
|
|
|
|
#if !defined(_funlockfile)
|
|
#ifndef __SINGLE_THREAD__
|
|
# define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))
|
|
#else
|
|
# define _funlockfile(fp) (_CAST_VOID 0)
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* _NEWLIB_STDIO_H */
|