|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] lib/vfscore: Populate exportsyms.uk
Hi Simon,
When building this against newlib I get a number of linker errors:
CC libuknetdev: netdev.o
LD libuknetdev.ld.o
OBJCOPY libuknetdev.o
LD helloworld_kvm-x86_64.ld.o
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libvfscore.o:
In function `fchown':
/root/workspace/gitlab/unikraft/upstreaming/unikraft/lib/vfscore/main.c:1963:
multiple definition of `fchown'
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libnewlibglue.o:/root/workspace/gitlab/unikraft/upstreaming/libs/newlib/file.c:100:
first defined here
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libvfscore.o:
In function `lchown':
/root/workspace/gitlab/unikraft/upstreaming/unikraft/lib/vfscore/main.c:1976:
multiple definition of `lchown'
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libnewlibglue.o:/root/workspace/gitlab/unikraft/upstreaming/libs/newlib/file.c:106:
first defined here
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libvfscore.o:
In function `rename':
/root/workspace/gitlab/unikraft/upstreaming/unikraft/lib/vfscore/main.c:909:
multiple definition of `rename'
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libnewlibc.o:/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libnewlibc/origin/newlib-2.5.0.20170922/newlib/libc/stdio/rename.c:66:
first defined here
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libvfscore.o:
In function `umask':
/root/workspace/gitlab/unikraft/upstreaming/unikraft/lib/vfscore/main.c:2063:
multiple definition of `umask'
/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/libnewlibglue.o:/root/workspace/gitlab/unikraft/upstreaming/libs/newlib/file.c:58:
first defined here
collect2: error: ld returned 1 exit status
/root/workspace/gitlab/unikraft/upstreaming/unikraft/plat/kvm/Linker.uk:21:
recipe for target
'/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/helloworld_kvm-x86_64.dbg'
failed
make[1]: ***
[/root/workspace/gitlab/unikraft/upstreaming/apps/helloworld/build/helloworld_kvm-x86_64.dbg]
Error 1
make[1]: Leaving directory
'/root/workspace/gitlab/unikraft/upstreaming/unikraft'
Makefile:21: recipe for target 'all' failed
make: *** [all] Error 2
fchown, lchown, and umask are stubs in the newlib glue code, so it'd fine to
just remove them.
rename is an actual implementation, but since vfscore now provides and exposes
one, you can just remove newlib's rename.c from Makefile.uk .
If you agree and submit these fixes to newlib I can then upstream this vfscore
patch.
-- Felipe
Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>
On 18.09.19, 12:18, "Simon Kuenzer" <simon.kuenzer@xxxxxxxxx> wrote:
In order to avoid surprising linking errors, we further populate the
`exportsyms.uk` file with symbols that are being expected to be publicly
provided by vfscore.
Duplicates of entries are removed with this commit, too (e.g., read, write)
Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
lib/vfscore/exportsyms.uk | 38 +++++++++++++++++++++++++++++++++-----
1 file changed, 33 insertions(+), 5 deletions(-)
diff --git a/lib/vfscore/exportsyms.uk b/lib/vfscore/exportsyms.uk
index e2627c03..46156098 100644
--- a/lib/vfscore/exportsyms.uk
+++ b/lib/vfscore/exportsyms.uk
@@ -3,9 +3,6 @@ vfscore_put_fd
vfscore_install_fd
vfscore_get_file
vfscore_put_file
-close
-write
-read
mount
vfscore_nullop
vfscore_release_mp_dentries
@@ -24,15 +21,17 @@ mkdir
fsync
fstat
flock
-lseek
+fhold
+fdrop
+fget
ftruncate
stat
chmod
fchmod
+fchown
dup
dup2
dup3
-vfscore_uiomove
sync
vfscore_mount_dump
umount
@@ -41,13 +40,16 @@ link
unlink
getcwd
chown
+chroot
chdir
fstatat
statfs
lstat
+lchown
openat
opendir
readdir
+readdir64
closedir
pread
pwrite
@@ -75,9 +77,35 @@ readlink
fallocate
lseek
uk_syscall_writev
+umask
dentry_alloc
+dentry_init
+dentry_lookup
+dentry_move
+dentry_remove
drele
vrele
+vput
+vref
+vflush
+dref
fcntl
readdir_r
+readdir64_r
fstatfs
+eaccess
+euidaccess
+rename
+__xmknod
+__xstat
+__lxstat
+vn_access
+vn_add_name
+vn_del_name
+vn_lock
+vn_lookup
+vn_setmode
+vn_settimes
+vn_stat
+vn_unlock
+vfs_busy
--
2.20.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 |