Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kbuild: support 'userldlibs' syntax

This syntax is useful to specify libraries linked to all userspace
programs in the Makefile.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

+7 -3
+4
Documentation/kbuild/makefiles.rst
··· 937 937 # net/bpfilter/Makefile 938 938 bpfilter_umh-userldflags += -static 939 939 940 + To specify libraries linked to a userspace program, you can use 941 + ``<executable>-userldlibs``. The ``userldlibs`` syntax specifies libraries 942 + linked to all userspace programs created in the current Makefile. 943 + 940 944 When linking bpfilter_umh, it will be passed the extra option -static. 941 945 942 946 From command line, :ref:`USERCFLAGS and USERLDFLAGS <userkbuildflags>` will also be used.
+3 -3
scripts/Makefile.userprogs
··· 19 19 user_ccflags = -Wp,-MMD,$(depfile) $(KBUILD_USERCFLAGS) $(userccflags) \ 20 20 $($(target-stem)-userccflags) 21 21 user_ldflags = $(KBUILD_USERLDFLAGS) $(userldflags) $($(target-stem)-userldflags) 22 + user_ldlibs = $(userldlibs) $($(target-stem)-userldlibs) 22 23 23 24 # Create an executable from a single .c file 24 25 quiet_cmd_user_cc_c = CC [U] $@ 25 26 cmd_user_cc_c = $(CC) $(user_ccflags) $(user_ldflags) -o $@ $< \ 26 - $($(target-stem)-userldlibs) 27 + $(user_ldlibs) 27 28 $(user-csingle): $(obj)/%: $(src)/%.c FORCE 28 29 $(call if_changed_dep,user_cc_c) 29 30 30 31 # Link an executable based on list of .o files 31 32 quiet_cmd_user_ld = LD [U] $@ 32 33 cmd_user_ld = $(CC) $(user_ldflags) -o $@ \ 33 - $(addprefix $(obj)/, $($(target-stem)-objs)) \ 34 - $($(target-stem)-userldlibs) 34 + $(addprefix $(obj)/, $($(target-stem)-objs)) $(user_ldlibs) 35 35 $(user-cmulti): FORCE 36 36 $(call if_changed,user_ld) 37 37 $(call multi_depend, $(user-cmulti), , -objs)