[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

 


Rackspace

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