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

[Minios-devel] [UNIKRAFT PATCH v4 1/5] lib/vfscore, lib/*fs: Ignore incompatible function pointer typecast



Vnode operations are implemented with function calls. In order to stub
some of the operations a no-op function is filled to those struct
entries. Such a stub function just returns an error code that tells that
the functionality is not implemented. However, the function signature
may not match with the stubbed vnode operation, so it is typecasted.
GCC 8 introduces a warning when function pointer typecasts are
incompatible. This patch adds a CFLAG to ignore this warning for
vfscore and all current filesystem implementations.

Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
 lib/9pfs/Makefile.uk    | 2 ++
 lib/devfs/Makefile.uk   | 2 ++
 lib/ramfs/Makefile.uk   | 2 ++
 lib/vfscore/Makefile.uk | 3 ++-
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/9pfs/Makefile.uk b/lib/9pfs/Makefile.uk
index 9d4dfb57..8a667efa 100644
--- a/lib/9pfs/Makefile.uk
+++ b/lib/9pfs/Makefile.uk
@@ -1,4 +1,6 @@
 $(eval $(call addlib_s,lib9pfs,$(CONFIG_LIB9PFS)))
 
+LIB9PFS_CFLAGS-$(call gcc_version_ge,8,0) += -Wno-cast-function-type
+
 LIB9PFS_SRCS-y += $(LIB9PFS_BASE)/9pfs_vfsops.c
 LIB9PFS_SRCS-y += $(LIB9PFS_BASE)/9pfs_vnops.c
diff --git a/lib/devfs/Makefile.uk b/lib/devfs/Makefile.uk
index f89e6577..c496fd56 100644
--- a/lib/devfs/Makefile.uk
+++ b/lib/devfs/Makefile.uk
@@ -2,5 +2,7 @@ $(eval $(call addlib_s,libdevfs,$(CONFIG_LIBDEVFS)))
 
 CINCLUDES-y += -I$(LIBDEVFS_BASE)/include
 
+LIBDEVFS_CFLAGS-$(call gcc_version_ge,8,0) += -Wno-cast-function-type
+
 LIBDEVFS_SRCS-y += $(LIBDEVFS_BASE)/device.c
 LIBDEVFS_SRCS-y += $(LIBDEVFS_BASE)/devfs_vnops.c
diff --git a/lib/ramfs/Makefile.uk b/lib/ramfs/Makefile.uk
index 9a443358..bec0a957 100644
--- a/lib/ramfs/Makefile.uk
+++ b/lib/ramfs/Makefile.uk
@@ -1,4 +1,6 @@
 $(eval $(call addlib_s,libramfs,$(CONFIG_LIBRAMFS)))
 
+LIBRAMFS_CFLAGS-$(call gcc_version_ge,8,0) += -Wno-cast-function-type
+
 LIBRAMFS_SRCS-y += $(LIBRAMFS_BASE)/ramfs_vfsops.c
 LIBRAMFS_SRCS-y += $(LIBRAMFS_BASE)/ramfs_vnops.c
diff --git a/lib/vfscore/Makefile.uk b/lib/vfscore/Makefile.uk
index e36c9217..0a3974fe 100644
--- a/lib/vfscore/Makefile.uk
+++ b/lib/vfscore/Makefile.uk
@@ -2,6 +2,8 @@ $(eval $(call addlib_s,libvfscore,$(CONFIG_LIBVFSCORE)))
 
 CINCLUDES-y += -I$(LIBVFSCORE_BASE)/include
 
+LIBVFSCORE_CFLAGS-$(call gcc_version_ge,8,0) += -Wno-cast-function-type
+
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/fd.c
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/file.c
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/stdio.c
@@ -15,7 +17,6 @@ LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/lookup.c
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/fops.c
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/subr_uio.c
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/pipe.c
-LIBVFSCORE_PIPE_FLAGS-y += -Wno-cast-function-type
 LIBVFSCORE_SRCS-y += $(LIBVFSCORE_BASE)/extra.ld
 
 
-- 
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®.