[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/MUSL PATCH V2 00/28] Update to a first functional version



Thanks a lot for your work. This is a good starting base for extending musl support further. I expect that most of the commented out functionality (because of duplicate symbols) will disappear as soon as we integrated the underlying system call implementation to syscall_shim properly. I pushed most patches already to shrink the series length. Just patch 26 and 28 are open. Can you send a v2 of them?

Thanks a lot,

Simon

On 29.01.20 22:18, Gaulthier Gain wrote:
This patch series allows to have a first functional version of
musl (compiles + links). Note that a subset of functions (related to
threads and network) is not fully functional. Furthermore, some
functions can have unexpected behaviour since they use musl internal
thread support (future work: adapt musl threads implementation to
Unikraft).

We chose to consider musl network implementation in a first time.
Nevertheless, this approach is temporary since a future work will be
to add a 'posix-socket' library to Unikraft. This one will provide
socket call. Therefore musl could then provide its own primitives and
would be glueed to 'posix-socket'.

Another future changes concern musl internal headers. In order to
avoid conflicts and redefinitions, a future work will be to keep
internal headers internal only.

Finally, there exists a conflict with the "Unikraft" banner. This last
breaks musl buffering on stdout. We are currently working on this
issue on Unikraft and musl but a temporory fix is to disable the
Unikraft banner in the ukboot library.

Changes compared to V1:
- Use syscall shim layer (complete review of syscalls management);
- Integrate musl threads in musl build;
- Use musl namespace in Makefile.uk;
- Add stub for mprotect;
- Adapt musl time with Unikraft time primitives;
- Review musl build redefinitions;

Gaulthier Gain (28):
   Add support for C++ applications
   Call configure after patching
   Review formatting for files generations in Makefile.uk
   Update compilation flags with musl namespace
   Remove files related to syscalls management
   Add glue code rules for mem.c in Makefile.uk
   Add stub for mprotect in mem.c
   Add patch to remove syscall prototype in unistd.h
   Add patch to rename __unused field to pad
   Add patch to update time.h to avoid conflicts with uktime
   Use syscall_shim layer instead of musl internal syscalls
   Use uk/bits/syscall_nrs.h instead of musl internal bits/syscall.h
   Update __syscall_cp.c to use syscalls from the syscall_shim layer
   Avoid multiple definitions by excluding functions related to dirent
   Avoid multiple definitions by excluding functions related to fcntl
   Avoid multiple definitions by excluding functions related to legacy
   Avoid multiple definitions by excluding functions related to linux
   Avoid multiple definitions by excluding functions related to misc
   Avoid multiple definitions by excluding functions related to process
   Avoid multiple definitions by excluding functions related to signal
   Avoid multiple definitions by excluding functions related to stat
   Avoid multiple definitions by excluding functions related to stdio
   Avoid multiple definitions by excluding functions related to time
   Avoid multiple definitions by excluding functions related to unistd
   Update Config.uk with the required micro-libs
   Update COPYING.md with musl specifications
   Update MAINTAINERS.md
   Update README.md with current status

  COPYING.md                                    |  14 +-
  Config.uk                                     |  15 +-
  MAINTAINERS.md                                |   8 +-
  Makefile.uk                                   |  79 +++---
  Makefile.uk.musl.dirent                       |  18 +-
  Makefile.uk.musl.fcntl                        |  10 +-
  Makefile.uk.musl.legacy                       |   8 +-
  Makefile.uk.musl.linux                        |  22 +-
  Makefile.uk.musl.misc                         |   6 +-
  Makefile.uk.musl.process                      |  24 +-
  Makefile.uk.musl.signal                       |   4 +-
  Makefile.uk.musl.stat                         |  28 +--
  Makefile.uk.musl.stdio                        |   6 +-
  Makefile.uk.musl.time                         |  18 +-
  Makefile.uk.musl.unistd                       |  86 +++----
  README.md                                     |  10 +
  include/syscall.h                             | 238 ------------------
  mem.c                                         |   6 +
  ...-prototype-for-syscall-from-unistd.h.patch |  26 ++
  patches/0001-prevent-local-syscall.patch      |  13 -
  ...03-Avoid-reserved-__unused-in-stat.h.patch |  26 ++
  patches/0003-prevent-local-syscall.patch      |  21 --
  patches/0004-Fix-time_h-conflicts.patch       |  32 +++
  patches/0005-Use-syscall-shim-layer.patch     | 151 +++++++++++
  patches/0006-Use-uk_bits_syscall_nrs.patch    |  26 ++
  ...-__syscall_cp-use-syscall-shim-layer.patch |  26 ++
  syscall.c                                     | 144 -----------
  27 files changed, 476 insertions(+), 589 deletions(-)
  delete mode 100644 include/syscall.h
  create mode 100644 
patches/0001-Remove-prototype-for-syscall-from-unistd.h.patch
  delete mode 100644 patches/0001-prevent-local-syscall.patch
  create mode 100644 patches/0003-Avoid-reserved-__unused-in-stat.h.patch
  delete mode 100644 patches/0003-prevent-local-syscall.patch
  create mode 100644 patches/0004-Fix-time_h-conflicts.patch
  create mode 100644 patches/0005-Use-syscall-shim-layer.patch
  create mode 100644 patches/0006-Use-uk_bits_syscall_nrs.patch
  create mode 100644 patches/0007-__syscall_cp-use-syscall-shim-layer.patch
  delete mode 100644 syscall.c


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.