|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/GCC PATCH 00/14] port libgo on Unikraft
Hi Charalampos,
Thanks a lot for this series, it'll be a great addition to Unikraft!
Apart from patch-specific comments, I had a general comments about the
structure of this library. This port depends on libbactrace and libffi, which
are part of gcc. I know that the gcc Unikraft external library contains these,
so I think it'd be good to have their header and exportsyms.uk files directly
in the gcc lib, and to get rid of them in libgo, i.e.,:
|-- CODING_STYLE.md
|-- Config.uk
|-- CONTRIBUTING.md
|-- COPYING.md
|-- exportsyms.uk
|-- libbacktrace
| |-- exportsyms.uk
| `-- include
| |-- backtrace-supported.h
| `-- config.h
|-- libffi
| |-- exportsyms.uk
| `-- include
| |-- fficonfig.h
| `-- ffi.h
--> Remove libbacktrace and libffi directories from this repo.
|-- libgo
| |-- generated
| | |-- epoll.go
| | |-- include
| | | |-- config.h
| | | `-- runtime.inc
| | |-- libcalls.go
| | |-- runtime_sysinfo.go
| | |-- sigtab.go
| | |-- syscall_arch.go
| | |-- sysinfo.go
| | `-- version.go
| |-- glue.c
| |-- include
| | `-- mm_malloc.h
| `-- packages.uk
This means that you can also get rid of the libgo subdirectory and collapse
eveything in it down one level. That would make libgo be much more in lines
with other external libraries. It does mean that the next version of this
series will actually consist of a series for libgo and another one for gcc.
Hope this makes sense.
Thanks again,
-- Felipe
On 23.09.19, 15:36, "Charalampos Mainas" <Charalampos.Mainas@xxxxxxxxx> wrote:
These are the patches needed for porting libgo on Unikraft.
A simple summary:
-The first 2 patches are quite common
-The next 2 patches port two libraries that are needed.
-The next 5 patches add some configuration files, patches and rules
to build the go packages and runtime.
-The next 3 patches update config files to decrease stubs.
-The next patch changes locking from futex to semaphores.
-The last patch adds glue code and required stubs.
Charalampos Mainas (12):
Introduce library skeleton
Add Makefile.uk
Port libbacktrace library
Port libffi library
libgo: Introduce library port
libgo: Add patches to enable runtime
libgo: Wait for patches to be applied and update library depedencies
libgo: Update config.h
libgo: Update libcalls.go
libgo: Update packages.uk
libgo: Use semaphores instead of futexes
libgo: Add glue code and stubs
Costin Lupu (2):
libgo: Add rules for building runtime Go packages
libgo: Add patches to build the library
.gitignore | 27 +
CODING_STYLE.md | 4 +
CONTRIBUTING.md | 4 +
COPYING.md | 39 +
Config.uk | 42 +
MAINTAINERS.md | 11 +
Makefile.uk | 228 +
README.md | 7 +
exportsyms.uk | 1 +
libbacktrace/exportsyms.uk | 6 +
libbacktrace/include/backtrace-supported.h | 66 +
libbacktrace/include/config.h | 135 +
libffi/exportsyms.uk | 21 +
libffi/include/ffi.h | 509 +
libffi/include/fficonfig.h | 206 +
libgo/generated/epoll.go | 6 +
libgo/generated/include/config.h | 415 +
libgo/generated/include/runtime.inc | 988 ++
libgo/generated/libcalls.go | 3079 ++++++
libgo/generated/runtime_sysinfo.go | 6219 +++++++++++
libgo/generated/sigtab.go | 71 +
libgo/generated/syscall_arch.go | 3 +
libgo/generated/sysinfo.go | 9282 +++++++++++++++++
libgo/generated/version.go | 77 +
libgo/glue.c | 199 +
libgo/include/mm_malloc.h | 0
libgo/packages.uk | 981 ++
...-unwind-header-instead-of-system-one.patch | 25 +
patches/0002-libgo-No-futex-tonight.patch | 25 +
patches/0003-libgo-Disable-backtracing.patch | 28 +
...004-libgo-Reduce-maximum-memory-size.patch | 27 +
.../0005-libgo-Use-our-context-logic.patch | 57 +
...go-Use-semaphores-instead-of-futexes.patch | 131 +
33 files changed, 22919 insertions(+)
create mode 100644 .gitignore
create mode 100644 CODING_STYLE.md
create mode 100644 CONTRIBUTING.md
create mode 100644 COPYING.md
create mode 100644 Config.uk
create mode 100644 MAINTAINERS.md
create mode 100644 Makefile.uk
create mode 100644 README.md
create mode 100644 exportsyms.uk
create mode 100644 libbacktrace/exportsyms.uk
create mode 100644 libbacktrace/include/backtrace-supported.h
create mode 100644 libbacktrace/include/config.h
create mode 100644 libffi/exportsyms.uk
create mode 100644 libffi/include/ffi.h
create mode 100644 libffi/include/fficonfig.h
create mode 100644 libgo/generated/epoll.go
create mode 100644 libgo/generated/include/config.h
create mode 100644 libgo/generated/include/runtime.inc
create mode 100644 libgo/generated/libcalls.go
create mode 100644 libgo/generated/runtime_sysinfo.go
create mode 100644 libgo/generated/sigtab.go
create mode 100644 libgo/generated/syscall_arch.go
create mode 100644 libgo/generated/sysinfo.go
create mode 100644 libgo/generated/version.go
create mode 100644 libgo/glue.c
create mode 100644 libgo/include/mm_malloc.h
create mode 100644 libgo/packages.uk
create mode 100644
patches/0001-libgo-Use-gcc-own-unwind-header-instead-of-system-one.patch
create mode 100644 patches/0002-libgo-No-futex-tonight.patch
create mode 100644 patches/0003-libgo-Disable-backtracing.patch
create mode 100644 patches/0004-libgo-Reduce-maximum-memory-size.patch
create mode 100644 patches/0005-libgo-Use-our-context-logic.patch
create mode 100644
patches/0006-libgo-Use-semaphores-instead-of-futexes.patch
--
2.17.1
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |