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

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



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

-- 
2.20.1


_______________________________________________
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®.