[PATCH v3 00/32] Mini-OS: hide mini-os internal symbols

Juergen Gross posted 32 patches 5 months, 1 week ago
Failed in applying to current master (apply log)
.gitignore         |  1 +
9pfront.c          |  2 +
Makefile           | 11 ++++--
arch/arm/mm.c      |  2 +
arch/arm/time.c    |  1 +
arch/x86/ioremap.c |  5 ++-
arch/x86/mm.c      |  5 +++
arch/x86/sched.c   |  5 +++
arch/x86/time.c    |  2 +-
blkfront.c         | 12 ++++--
console.c          |  5 +++
events.c           |  7 ++++
fbfront.c          | 11 +++++-
gntmap.c           |  5 +++
gnttab.c           |  6 +++
hypervisor.c       |  5 +++
include/export.h   | 10 +++++
include/lib.h      |  1 +
kernel.c           |  5 +++
lib/ctype.c        |  2 +
lib/math.c         |  6 +++
lib/printf.c       | 10 ++++-
lib/string.c       | 18 +++++++++
lib/sys.c          | 92 +++++++++++++++++++++++++++++++++++++++++++---
lib/xmalloc.c      |  3 ++
lib/xs.c           | 10 +++++
lock.c             |  9 ++++-
lwip-arch.c        |  9 +++++
lwip-net.c         |  2 +-
main.c             |  3 ++
mm.c               |  4 ++
netfront.c         |  7 ++++
pcifront.c         | 11 +++++-
sched.c            |  7 ++++
tpm_tis.c          |  5 +++
tpmback.c          | 11 ++++++
tpmfront.c         |  6 +++
xenbus.c           | 23 ++++++++++++
38 files changed, 320 insertions(+), 19 deletions(-)
create mode 100644 include/export.h
[PATCH v3 00/32] Mini-OS: hide mini-os internal symbols
Posted by Juergen Gross 5 months, 1 week ago
In order to avoid conflicts due to symbols with the same name when
linking Mini-OS with an application, hide all Mini9-OS internal symbols
from the application by linking the Mini-OS kernel individually and
then removing all symbols which should be used internally only.

Changes in V2:
- added more symbols in patch 2

Changes in V3:
- Instead of a global file with symbol names use EXPORT_SYMBOL()
  instances for each symbol. Former patch 2 is replaced with new
  patches 2-32.

Juergen Gross (32):
  Mini-OS: link kernel separately
  Mini-OS: explicitly mark symbols to be visible for apps
  Mini-OS: add EXPORT_SYMBOL() instances to kernel.c
  Mini-OS: add EXPORT_SYMBOL() instances to hypervisor.c
  Mini-OS: add EXPORT_SYMBOL() instances to sched.c
  Mini-OS: add EXPORT_SYMBOL() instances to mm.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/sys.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/string.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/math.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/printf.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/ctype.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/xmalloc.c
  Mini-OS: add EXPORT_SYMBOL() instances to lib/xs.c
  Mini-OS: add EXPORT_SYMBOL() instances to main.c
  Mini-OS: add EXPORT_SYMBOL() instances to console.c
  Mini-OS: add EXPORT_SYMBOL() instances to events.c
  Mini-OS: add EXPORT_SYMBOL() instances to gntmap.c
  Mini-OS: add EXPORT_SYMBOL() instances to gnttab.c
  Mini-OS: add EXPORT_SYMBOL() instances to ioremap.c
  Mini-OS: add EXPORT_SYMBOL() instances to lock.c
  Mini-OS: add EXPORT_SYMBOL() instances to time.c
  Mini-OS: add EXPORT_SYMBOL() instances to lwip-*.c
  Mini-OS: add EXPORT_SYMBOL() instances to 9pfront.c
  Mini-OS: add EXPORT_SYMBOL() instances to blkfront.c
  Mini-OS: add EXPORT_SYMBOL() instances to fbfront.c
  Mini-OS: add EXPORT_SYMBOL() instances to netfront.c
  Mini-OS: add EXPORT_SYMBOL() instances to pcifront.c
  Mini-OS: add EXPORT_SYMBOL() instances to tpmback.c
  Mini-OS: add EXPORT_SYMBOL() instances to tpmfront.c
  Mini-OS: add EXPORT_SYMBOL() instances to tpm_tis.c
  Mini-OS: add EXPORT_SYMBOL() instances to xenbus.c
  Mini-OS: hide all symbols not exported via EXPORT_SYMBOLS()

 .gitignore         |  1 +
 9pfront.c          |  2 +
 Makefile           | 11 ++++--
 arch/arm/mm.c      |  2 +
 arch/arm/time.c    |  1 +
 arch/x86/ioremap.c |  5 ++-
 arch/x86/mm.c      |  5 +++
 arch/x86/sched.c   |  5 +++
 arch/x86/time.c    |  2 +-
 blkfront.c         | 12 ++++--
 console.c          |  5 +++
 events.c           |  7 ++++
 fbfront.c          | 11 +++++-
 gntmap.c           |  5 +++
 gnttab.c           |  6 +++
 hypervisor.c       |  5 +++
 include/export.h   | 10 +++++
 include/lib.h      |  1 +
 kernel.c           |  5 +++
 lib/ctype.c        |  2 +
 lib/math.c         |  6 +++
 lib/printf.c       | 10 ++++-
 lib/string.c       | 18 +++++++++
 lib/sys.c          | 92 +++++++++++++++++++++++++++++++++++++++++++---
 lib/xmalloc.c      |  3 ++
 lib/xs.c           | 10 +++++
 lock.c             |  9 ++++-
 lwip-arch.c        |  9 +++++
 lwip-net.c         |  2 +-
 main.c             |  3 ++
 mm.c               |  4 ++
 netfront.c         |  7 ++++
 pcifront.c         | 11 +++++-
 sched.c            |  7 ++++
 tpm_tis.c          |  5 +++
 tpmback.c          | 11 ++++++
 tpmfront.c         |  6 +++
 xenbus.c           | 23 ++++++++++++
 38 files changed, 320 insertions(+), 19 deletions(-)
 create mode 100644 include/export.h

-- 
2.35.3
Re: [PATCH v3 00/32] Mini-OS: hide mini-os internal symbols
Posted by Samuel Thibault 5 months, 1 week ago
Hello,

Juergen Gross, le lun. 27 nov. 2023 11:24:51 +0100, a ecrit:
>   Mini-OS: add EXPORT_SYMBOL() instances to ioremap.c
>   Mini-OS: add EXPORT_SYMBOL() instances to lwip-*.c
>   Mini-OS: add EXPORT_SYMBOL() instances to netfront.c
>   Mini-OS: add EXPORT_SYMBOL() instances to tpm_tis.c

I didn't receive the mails for those, but I went to the list archive,
and here it is for them:

Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Samuel