|
| 1 | +diff --git a/Makefile b/Makefile |
| 2 | +index f520fc513..31a837f38 100644 |
| 3 | +--- a/Makefile |
| 4 | ++++ b/Makefile |
| 5 | +@@ -468,6 +468,23 @@ KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \ |
| 6 | + KBUILD_USERCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS) |
| 7 | + KBUILD_USERLDFLAGS := $(USERLDFLAGS) |
| 8 | + |
| 9 | ++HAVE_PKGCONFIG := 1 |
| 10 | ++ifeq ($(shell command -v $(HOSTPKG_CONFIG) 2> /dev/null),) |
| 11 | ++HAVE_PKGCONFIG := 0 |
| 12 | ++endif |
| 13 | ++ |
| 14 | ++STATIC_FLG := |
| 15 | ++STATIC_FLG_F := |
| 16 | ++ifeq ($(FORCE_STATIC_HOST), 1) |
| 17 | ++ifeq ($(HAVE_PKGCONFIG), 1) |
| 18 | ++STATIC_FLG := -static |
| 19 | ++STATIC_FLG_F := -$(STATIC_FLG) |
| 20 | ++$(info TRY TO BUILD HOST BIN AS STATIC) |
| 21 | ++else |
| 22 | ++$(warning TRY TO BUILD HOST BIN AS STATIC BUT NO PKGCONF, IGNORED) |
| 23 | ++endif |
| 24 | ++endif |
| 25 | ++ |
| 26 | + # These flags apply to all Rust code in the tree, including the kernel and |
| 27 | + # host programs. |
| 28 | + export rust_common_flags := --edition=2021 \ |
| 29 | +@@ -500,13 +517,13 @@ export rust_common_flags := --edition=2021 \ |
| 30 | + -Wrustdoc::missing_crate_level_docs \ |
| 31 | + -Wrustdoc::unescaped_backticks |
| 32 | + |
| 33 | +-KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \ |
| 34 | ++KBUILD_HOSTCFLAGS := -Os $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \ |
| 35 | + $(HOSTCFLAGS) -I $(srctree)/scripts/include |
| 36 | +-KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) \ |
| 37 | ++KBUILD_HOSTCXXFLAGS := -Wall -Os $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS) \ |
| 38 | + -I $(srctree)/scripts/include |
| 39 | + KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \ |
| 40 | + -Zallow-features= $(HOSTRUSTFLAGS) |
| 41 | +-KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS) |
| 42 | ++KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(STATIC_FLG) $(HOSTLDFLAGS) |
| 43 | + KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS) |
| 44 | + KBUILD_PROCMACROLDFLAGS := $(or $(PROCMACROLDFLAGS),$(KBUILD_HOSTLDFLAGS)) |
| 45 | + |
| 46 | +@@ -629,7 +646,7 @@ export RUSTC_BOOTSTRAP := 1 |
| 47 | + # Allows finding `.clippy.toml` in out-of-srctree builds. |
| 48 | + export CLIPPY_CONF_DIR := $(srctree) |
| 49 | + |
| 50 | +-export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG |
| 51 | ++export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG STATIC_FLG STATIC_FLG_F |
| 52 | + export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN |
| 53 | + export HOSTRUSTC KBUILD_HOSTRUSTFLAGS |
| 54 | + export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL |
| 55 | +diff --git a/certs/Makefile b/certs/Makefile |
| 56 | +index f6fa4d8d7..ef19f1d6f 100644 |
| 57 | +--- a/certs/Makefile |
| 58 | ++++ b/certs/Makefile |
| 59 | +@@ -84,5 +84,5 @@ targets += x509_revocation_list |
| 60 | + |
| 61 | + hostprogs := extract-cert |
| 62 | + |
| 63 | +-HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) -I$(srctree)/scripts |
| 64 | +-HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto) |
| 65 | ++HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) $(STATIC_FLG_F) --cflags libcrypto 2> /dev/null) -I$(srctree)/scripts |
| 66 | ++HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CONFIG) $(STATIC_FLG_F) --libs libcrypto 2> /dev/null || echo -lcrypto) |
| 67 | +diff --git a/scripts/Makefile b/scripts/Makefile |
| 68 | +index 46f860529..ab9f2bed2 100644 |
| 69 | +--- a/scripts/Makefile |
| 70 | ++++ b/scripts/Makefile |
| 71 | +@@ -28,8 +28,8 @@ rustdoc_test_gen-rust := y |
| 72 | + HOSTCFLAGS_sorttable.o = -I$(srctree)/tools/include |
| 73 | + HOSTLDLIBS_sorttable = -lpthread |
| 74 | + HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include |
| 75 | +-HOSTCFLAGS_sign-file.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) |
| 76 | +-HOSTLDLIBS_sign-file = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto) |
| 77 | ++HOSTCFLAGS_sign-file.o = $(shell $(HOSTPKG_CONFIG) $(STATIC_FLG_F) --cflags libcrypto 2> /dev/null) |
| 78 | ++HOSTLDLIBS_sign-file = $(shell $(HOSTPKG_CONFIG) $(STATIC_FLG_F) --libs libcrypto 2> /dev/null || echo -lcrypto) |
| 79 | + |
| 80 | + ifdef CONFIG_UNWINDER_ORC |
| 81 | + ifeq ($(ARCH),x86_64) |
| 82 | +diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile |
| 83 | +index ce1b556df..05dc65d7d 100644 |
| 84 | +--- a/tools/bpf/resolve_btfids/Makefile |
| 85 | ++++ b/tools/bpf/resolve_btfids/Makefile |
| 86 | +@@ -62,8 +62,8 @@ $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU |
| 87 | + DESTDIR=$(LIBBPF_DESTDIR) $(HOST_OVERRIDES) prefix= subdir= \ |
| 88 | + $(abspath $@) install_headers |
| 89 | + |
| 90 | +-LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) |
| 91 | +-LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf) |
| 92 | ++LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf $(STATIC_FLG_F) --cflags 2>/dev/null) |
| 93 | ++LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf $(STATIC_FLG_F) --libs 2>/dev/null || echo -lelf) |
| 94 | + |
| 95 | + HOSTCFLAGS_resolve_btfids += -g \ |
| 96 | + -I$(srctree)/tools/include \ |
| 97 | +diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile |
| 98 | +index b436656cd..e89143b8e 100644 |
| 99 | +--- a/tools/objtool/Makefile |
| 100 | ++++ b/tools/objtool/Makefile |
| 101 | +@@ -20,8 +20,8 @@ LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a |
| 102 | + OBJTOOL := $(OUTPUT)objtool |
| 103 | + OBJTOOL_IN := $(OBJTOOL)-in.o |
| 104 | + |
| 105 | +-LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) |
| 106 | +-LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf) |
| 107 | ++LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf $(STATIC_FLG_F) --cflags 2>/dev/null) |
| 108 | ++LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf $(STATIC_FLG_F) --libs 2>/dev/null || echo -lelf) |
| 109 | + |
| 110 | + all: $(OBJTOOL) |
| 111 | + |
0 commit comments