On Monday 2024-11-11 21:28, Szőke Benjamin wrote: > What is your detailed plans to solve it? Maybe the contents of both upper and > lower case *.h files can be merged to a common header files like > "xt_dscp_common.h" but what about the *.c sources? For example if xt_DSCP.c > removed and its content merged to xt_dscp.c before, what is the plan with > kernel config options of CONFIG_NETFILTER_XT_TARGET_DSCP which was made for > only xt_DSCP.c source to use in Makefile? Can we remove all of > CONFIG_NETFILTER_XT_TARGET* config in the future which will lost their *.c > source files? > > obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o > ... > obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o This issue you would approach by unconditionally building a .c file and using #ifdef IS_ENABLED(...) inside the .c file. Truth to be told, the overhead for a module (12288 bytes on on x86_64) completely dwarfs the code inside it (xt_dscp.o: 765 bytes), so combining modules should provide some decent memory savings.