[PATCH, RFC v2 0/8] add xtensa port

Jeff Johnston jjohnstn@redhat.com
Tue May 30 19:58:35 GMT 2023


Hi Alexey,

Sorry for the delay on posting a review for this set of patches.

There are a number of issues.  Most of them stem from the fact that this
patch isn't in sync with latest newlib which has simplified configuration.
For example, newlib/libc machine and sys directories now have a
Makefile.inc file in them as opposed to configuration files such as
configure.in or Makefile.am.
In libgloss, configuration has been moved from sub-directories up to the
top-level configure.ac.

I also would like to see your header file install issue addressed
differently.  Right now, the top-level Makefile.am is assuming that there
are no directories
in include/machine/sys directories so it is using basename and installing
the headers directly.  This logic should be changed to recognize
sub-directories
and install appropriately.  Changing that logic would solve your problem
and any other ports in the future.

Regards,

-- Jeff J.



On Mon, May 15, 2023 at 9:45 AM Alexey Lapshin <alexey.lapshin@espressif.com>
wrote:

> On Fri, 2023-05-12 at 02:18 -0700, Max Filippov wrote:
> > The patches are line-wrapped and cannot be applied as is.
>
> Resend with fixed formatting:
>
> Alexey Lapshin (7):
>   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: xtensa: fix 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          |   19 +
>  .../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        |   19 +
>  .../xtensa/boards/esp32s3/include/soc/cpu.h   |   11 +
>  .../xtensa/boards/esp32s3/include/soc/uart.h  |   19 +
>  libgloss/xtensa/boards/esp32s3/memory.elf.ld  |   21 +
>  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                    |  211 +
>  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          | 4763 +++++++++++++++++
>  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 +
>  86 files changed, 28301 insertions(+)
>  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
>
>


More information about the Newlib mailing list