[PATCH, RFC 0/8] add xtensa port
Alexey Lapshin <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Here is a reworked commit from Max Filippov: https://github.com/espressif/newlib-esp32/commit/3fc2b645bb708421962e68366aa8efbdce93d7e3 Max, I dropped some documentation changes, please review and tell if you are ok with this. And I dropped all changes for libm from your original commit because they aren't used. Except disabling __ieee754_sqrtf implementation from being compiled into libm (because it exists in libgcc). But I just gave this function __attribute__((weak)) Also, added libgloss implementation for xtensa (for chips esp32/esp32s3) Please consider to apply. Alexey Lapshin (6): newlib: add system headers from include/$(sys_dir)/*/*.h libc: sys: add xtensa port libm: add xtensa port libc: add xtensa port libm: add attribute weak for __ieee754_sqrtf libgloss: libnosys: add xtensa port libgloss: add xtensa port Jeroen Domburg (1): libc: fix xtensa PSRAM cache bug libgloss/configure | 5 + libgloss/configure.in | 3 + libgloss/libnosys/configure | 2 + libgloss/libnosys/configure.in | 2 + libgloss/xtensa/Makefile | 321 ++ libgloss/xtensa/Makefile.in | 317 ++ libgloss/xtensa/app.elf.ld | 190 + libgloss/xtensa/board.elf.specs | 5 + libgloss/xtensa/boards/esp32/board.c | 20 + .../xtensa/boards/esp32/include/soc/cpu.h | 11 + .../xtensa/boards/esp32/include/soc/uart.h | 19 + libgloss/xtensa/boards/esp32/memory.elf.ld | 26 + libgloss/xtensa/boards/esp32s3/board.c | 20 + .../xtensa/boards/esp32s3/include/soc/cpu.h | 11 + .../xtensa/boards/esp32s3/include/soc/uart.h | 19 + libgloss/xtensa/boards/esp32s3/memory.elf.ld | 26 + libgloss/xtensa/configure | 3753 +++++++++++++ libgloss/xtensa/configure.in | 45 + libgloss/xtensa/crt0.S | 31 + libgloss/xtensa/crt1-boards.S | 226 + libgloss/xtensa/crt1-sim.S | 204 + libgloss/xtensa/default.specs | 2 + libgloss/xtensa/include/register_access.h | 7 + libgloss/xtensa/include/syscalls.h | 59 + libgloss/xtensa/include/xtensa/corebits.h | 186 + libgloss/xtensa/main.c | 10 + libgloss/xtensa/nano.specs | 18 + libgloss/xtensa/sim-call.S | 8 + libgloss/xtensa/sim-vectors.S | 163 + libgloss/xtensa/sim.elf.specs | 5 + libgloss/xtensa/sleep.S | 64 + libgloss/xtensa/sys.openocd.specs | 8 + libgloss/xtensa/sys.qemu.specs | 8 + libgloss/xtensa/syscalls.c | 226 + libgloss/xtensa/window-vectors.S | 252 + newlib/Makefile.am | 21 + newlib/Makefile.in | 21 + newlib/configure.host | 11 + newlib/libc/include/machine/ieeefp.h | 4 + newlib/libc/include/machine/setjmp.h | 29 + newlib/libc/machine/configure | 3 + newlib/libc/machine/xtensa/Makefile.am | 21 + newlib/libc/machine/xtensa/Makefile.in | 456 ++ newlib/libc/machine/xtensa/aclocal.m4 | 992 ++++ newlib/libc/machine/xtensa/configure | 4994 +++++++++++++++++ newlib/libc/machine/xtensa/configure.in | 14 + newlib/libc/machine/xtensa/memcpy.S | 343 ++ newlib/libc/machine/xtensa/memset.S | 193 + newlib/libc/machine/xtensa/setjmp.S | 260 + newlib/libc/machine/xtensa/strcmp.S | 778 +++ newlib/libc/machine/xtensa/strcpy.S | 274 + newlib/libc/machine/xtensa/strlen.S | 115 + newlib/libc/machine/xtensa/strncpy.S | 274 + newlib/libc/machine/xtensa/xtensa-asm.h | 72 + newlib/libc/machine/xtensa/xtensa.tex | 72 + newlib/libc/sys/configure | 3 + newlib/libc/sys/xtensa/Makefile.am | 14 + newlib/libc/sys/xtensa/Makefile.in | 388 ++ newlib/libc/sys/xtensa/_atexit.c | 53 + newlib/libc/sys/xtensa/aclocal.m4 | 880 +++ newlib/libc/sys/xtensa/clibrary_init.c | 42 + newlib/libc/sys/xtensa/configure | 4623 +++++++++++++++ newlib/libc/sys/xtensa/configure.in | 14 + newlib/libc/sys/xtensa/creat.c | 9 + newlib/libc/sys/xtensa/crt0.c | 16 + newlib/libc/sys/xtensa/include/fenv.h | 88 + newlib/libc/sys/xtensa/include/unistd.h | 13 + .../xtensa/include/xtensa/config/core-isa.h | 655 +++ newlib/libc/sys/xtensa/isatty.c | 18 + newlib/libc/sys/xtensa/sys/file.h | 33 + newlib/libm/machine/configure | 3 + newlib/libm/machine/xtensa/Makefile.am | 21 + newlib/libm/machine/xtensa/Makefile.in | 467 ++ newlib/libm/machine/xtensa/aclocal.m4 | 880 +++ newlib/libm/machine/xtensa/configure | 4623 +++++++++++++++ newlib/libm/machine/xtensa/configure.in | 14 + newlib/libm/machine/xtensa/feclearexcept.c | 49 + newlib/libm/machine/xtensa/fegetenv.c | 56 + newlib/libm/machine/xtensa/fegetexcept.c | 67 + newlib/libm/machine/xtensa/fegetexceptflag.c | 64 + newlib/libm/machine/xtensa/fegetround.c | 50 + newlib/libm/machine/xtensa/feholdexcept.c | 55 + newlib/libm/machine/xtensa/feraiseexcept.c | 50 + newlib/libm/machine/xtensa/fetestexcept.c | 41 + newlib/libm/machine/xtensa/feupdateenv.c | 45 + newlib/libm/math/ef_sqrt.c | 1 + 87 files changed, 28556 insertions(+), 2 deletions(-) create mode 100644 libgloss/xtensa/Makefile create mode 100644 libgloss/xtensa/Makefile.in create mode 100644 libgloss/xtensa/app.elf.ld create mode 100644 libgloss/xtensa/board.elf.specs create mode 100644 libgloss/xtensa/boards/esp32/board.c create mode 100644 libgloss/xtensa/boards/esp32/include/soc/cpu.h create mode 100644 libgloss/xtensa/boards/esp32/include/soc/uart.h create mode 100644 libgloss/xtensa/boards/esp32/memory.elf.ld create mode 100644 libgloss/xtensa/boards/esp32s3/board.c create mode 100644 libgloss/xtensa/boards/esp32s3/include/soc/cpu.h create mode 100644 libgloss/xtensa/boards/esp32s3/include/soc/uart.h create mode 100644 libgloss/xtensa/boards/esp32s3/memory.elf.ld create mode 100755 libgloss/xtensa/configure create mode 100644 libgloss/xtensa/configure.in create mode 100644 libgloss/xtensa/crt0.S create mode 100644 libgloss/xtensa/crt1-boards.S create mode 100644 libgloss/xtensa/crt1-sim.S create mode 100644 libgloss/xtensa/default.specs create mode 100644 libgloss/xtensa/include/register_access.h create mode 100644 libgloss/xtensa/include/syscalls.h create mode 100644 libgloss/xtensa/include/xtensa/corebits.h create mode 100644 libgloss/xtensa/main.c create mode 100644 libgloss/xtensa/nano.specs create mode 100644 libgloss/xtensa/sim-call.S create mode 100644 libgloss/xtensa/sim-vectors.S create mode 100644 libgloss/xtensa/sim.elf.specs create mode 100644 libgloss/xtensa/sleep.S create mode 100644 libgloss/xtensa/sys.openocd.specs create mode 100644 libgloss/xtensa/sys.qemu.specs create mode 100644 libgloss/xtensa/syscalls.c create mode 100644 libgloss/xtensa/window-vectors.S create mode 100644 newlib/libc/machine/xtensa/Makefile.am create mode 100644 newlib/libc/machine/xtensa/Makefile.in create mode 100644 newlib/libc/machine/xtensa/aclocal.m4 create mode 100755 newlib/libc/machine/xtensa/configure create mode 100644 newlib/libc/machine/xtensa/configure.in create mode 100644 newlib/libc/machine/xtensa/memcpy.S create mode 100644 newlib/libc/machine/xtensa/memset.S create mode 100644 newlib/libc/machine/xtensa/setjmp.S create mode 100644 newlib/libc/machine/xtensa/strcmp.S create mode 100644 newlib/libc/machine/xtensa/strcpy.S create mode 100644 newlib/libc/machine/xtensa/strlen.S create mode 100644 newlib/libc/machine/xtensa/strncpy.S create mode 100644 newlib/libc/machine/xtensa/xtensa-asm.h create mode 100644 newlib/libc/machine/xtensa/xtensa.tex create mode 100644 newlib/libc/sys/xtensa/Makefile.am create mode 100644 newlib/libc/sys/xtensa/Makefile.in create mode 100644 newlib/libc/sys/xtensa/_atexit.c create mode 100644 newlib/libc/sys/xtensa/aclocal.m4 create mode 100644 newlib/libc/sys/xtensa/clibrary_init.c create mode 100755 newlib/libc/sys/xtensa/configure create mode 100644 newlib/libc/sys/xtensa/configure.in create mode 100644 newlib/libc/sys/xtensa/creat.c create mode 100644 newlib/libc/sys/xtensa/crt0.c create mode 100644 newlib/libc/sys/xtensa/include/fenv.h create mode 100644 newlib/libc/sys/xtensa/include/unistd.h create mode 100644 newlib/libc/sys/xtensa/include/xtensa/config/core- isa.h create mode 100644 newlib/libc/sys/xtensa/isatty.c create mode 100644 newlib/libc/sys/xtensa/sys/file.h create mode 100644 newlib/libm/machine/xtensa/Makefile.am create mode 100644 newlib/libm/machine/xtensa/Makefile.in create mode 100644 newlib/libm/machine/xtensa/aclocal.m4 create mode 100755 newlib/libm/machine/xtensa/configure create mode 100644 newlib/libm/machine/xtensa/configure.in create mode 100644 newlib/libm/machine/xtensa/feclearexcept.c create mode 100644 newlib/libm/machine/xtensa/fegetenv.c create mode 100644 newlib/libm/machine/xtensa/fegetexcept.c create mode 100644 newlib/libm/machine/xtensa/fegetexceptflag.c create mode 100644 newlib/libm/machine/xtensa/fegetround.c create mode 100644 newlib/libm/machine/xtensa/feholdexcept.c create mode 100644 newlib/libm/machine/xtensa/feraiseexcept.c create mode 100644 newlib/libm/machine/xtensa/fetestexcept.c create mode 100644 newlib/libm/machine/xtensa/feupdateenv.c -- 2.34.1