You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada: - improve fixdep to coalesce consecutive slashes in dep-files - fix some issues of the maintainer string generation in deb-pkg script - remove unused CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX and clean-up several tools and linker scripts - clean-up modpost - allow to enable the dead code/data elimination for PowerPC in EXPERT mode - improve two coccinelle scripts for better performance - pass endianness and machine size flags to sparse for all architecture - misc fixes * tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits) kbuild: add machine size to CHECKFLAGS kbuild: add endianness flag to CHEKCFLAGS kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice scripts: Fixed printf format mismatch scripts/tags.sh: use `find` for $ALLSOURCE_ARCHS generation coccinelle: deref_null: improve performance coccinelle: mini_lock: improve performance powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled kbuild: LD_DEAD_CODE_DATA_ELIMINATION no -ffunction-sections/-fdata-sections for module build kbuild: Fix asm-generic/vmlinux.lds.h for LD_DEAD_CODE_DATA_ELIMINATION modpost: constify *modname function argument where possible modpost: remove redundant is_vmlinux() test modpost: use strstarts() helper more widely modpost: pass struct elf_info pointer to get_modinfo() checkpatch: remove VMLINUX_SYMBOL() check vmlinux.lds.h: remove no-op macro VMLINUX_SYMBOL() kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX export.h: remove code for prefixing symbols with underscore depmod.sh: remove symbol prefix support ...
This commit is contained in:
@@ -802,13 +802,12 @@ KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
|
||||
endif
|
||||
|
||||
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
|
||||
KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
|
||||
KBUILD_CFLAGS_KERNEL += $(call cc-option,-ffunction-sections,)
|
||||
KBUILD_CFLAGS_KERNEL += $(call cc-option,-fdata-sections,)
|
||||
endif
|
||||
|
||||
# arch Makefile may override CC so keep this after arch Makefile is included
|
||||
NOSTDINC_FLAGS += -nostdinc -isystem $(call shell-cached,$(CC) -print-file-name=include)
|
||||
CHECKFLAGS += $(NOSTDINC_FLAGS)
|
||||
|
||||
# warn about C99 declaration after statement
|
||||
KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
|
||||
@@ -878,6 +877,12 @@ ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
|
||||
LDFLAGS_vmlinux += $(call ld-option, -X,)
|
||||
endif
|
||||
|
||||
# insure the checker run with the right endianness
|
||||
CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian)
|
||||
|
||||
# the checker needs the correct machine size
|
||||
CHECKFLAGS += $(if $(CONFIG_64BIT),-m64,-m32)
|
||||
|
||||
# Default kernel image to build when no specific target is given.
|
||||
# KBUILD_IMAGE may be overruled on the command line or
|
||||
# set in the environment
|
||||
@@ -1763,7 +1768,7 @@ quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files))
|
||||
# Run depmod only if we have System.map and depmod is executable
|
||||
quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
|
||||
cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
|
||||
$(KERNELRELEASE) "$(patsubst y,_,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX))"
|
||||
$(KERNELRELEASE)
|
||||
|
||||
# Create temporary dir for module support files
|
||||
# clean it up only when building all modules
|
||||
|
||||
@@ -597,21 +597,6 @@ config CC_STACKPROTECTOR_AUTO
|
||||
|
||||
endchoice
|
||||
|
||||
config LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool
|
||||
help
|
||||
Select this if the architecture wants to do dead code and
|
||||
data elimination with the linker by compiling with
|
||||
-ffunction-sections -fdata-sections and linking with
|
||||
--gc-sections.
|
||||
|
||||
This requires that the arch annotates or otherwise protects
|
||||
its external entry points from being discarded. Linker scripts
|
||||
must also merge .text.*, .data.*, and .bss.* correctly into
|
||||
output sections. Care must be taken not to pull in unrelated
|
||||
sections (e.g., '.text.init'). Typically '.' in section names
|
||||
is used to distinguish them from label names / C identifiers.
|
||||
|
||||
config HAVE_ARCH_WITHIN_STACK_FRAMES
|
||||
bool
|
||||
help
|
||||
@@ -687,12 +672,6 @@ config MODULES_USE_ELF_REL
|
||||
Modules only use ELF REL relocations. Modules with ELF RELA
|
||||
relocations will give an error.
|
||||
|
||||
config HAVE_UNDERSCORE_SYMBOL_PREFIX
|
||||
bool
|
||||
help
|
||||
Some architectures generate an _ in front of C symbols; things like
|
||||
module loading and assembly files need to know about this.
|
||||
|
||||
config HAVE_IRQ_EXIT_ON_IRQ_STACK
|
||||
bool
|
||||
help
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
NM := $(NM) -B
|
||||
|
||||
LDFLAGS_vmlinux := -static -N #-relax
|
||||
CHECKFLAGS += -D__alpha__ -m64
|
||||
CHECKFLAGS += -D__alpha__
|
||||
cflags-y := -pipe -mno-fp-regs -ffixed-8
|
||||
cflags-y += $(call cc-option, -fno-jump-tables)
|
||||
|
||||
|
||||
+1
-1
@@ -135,7 +135,7 @@ endif
|
||||
KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
|
||||
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
|
||||
|
||||
CHECKFLAGS += -D__arm__ -m32
|
||||
CHECKFLAGS += -D__arm__
|
||||
|
||||
#Default value
|
||||
head-y := arch/arm/kernel/head$(MMUEXT).o
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ LDFLAGS += -maarch64linux
|
||||
UTS_MACHINE := aarch64
|
||||
endif
|
||||
|
||||
CHECKFLAGS += -D__aarch64__ -m64
|
||||
CHECKFLAGS += -D__aarch64__
|
||||
|
||||
ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm64/kernel/module.lds
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ READELF := $(CROSS_COMPILE)readelf
|
||||
|
||||
export AWK
|
||||
|
||||
CHECKFLAGS += -m64 -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
||||
CHECKFLAGS += -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
||||
|
||||
OBJCOPYFLAGS := --strip-all
|
||||
LDFLAGS_vmlinux := -static
|
||||
|
||||
@@ -309,9 +309,6 @@ ifdef CONFIG_MIPS
|
||||
CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \
|
||||
egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
|
||||
sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g')
|
||||
ifdef CONFIG_64BIT
|
||||
CHECKFLAGS += -m64
|
||||
endif
|
||||
endif
|
||||
|
||||
OBJCOPYFLAGS += --remove-section=.reginfo
|
||||
|
||||
@@ -25,7 +25,6 @@ LDFLAGS_vmlinux :=
|
||||
LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
||||
|
||||
KBUILD_CFLAGS += -pipe -ffixed-r10 -D__linux__
|
||||
CHECKFLAGS += -mbig-endian
|
||||
|
||||
ifeq ($(CONFIG_OPENRISC_HAVE_INST_MUL),y)
|
||||
KBUILD_CFLAGS += $(call cc-option,-mhard-mul)
|
||||
|
||||
@@ -22,13 +22,13 @@ KBUILD_IMAGE := vmlinuz
|
||||
KBUILD_DEFCONFIG := default_defconfig
|
||||
|
||||
NM = sh $(srctree)/arch/parisc/nm
|
||||
CHECKFLAGS += -D__hppa__=1 -mbig-endian
|
||||
CHECKFLAGS += -D__hppa__=1
|
||||
LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
||||
export LIBGCC
|
||||
|
||||
ifdef CONFIG_64BIT
|
||||
UTS_MACHINE := parisc64
|
||||
CHECKFLAGS += -D__LP64__=1 -m64
|
||||
CHECKFLAGS += -D__LP64__=1
|
||||
CC_ARCHES = hppa64
|
||||
LD_BFD := elf64-hppa-linux
|
||||
else # 32-bit
|
||||
|
||||
@@ -198,6 +198,7 @@ config PPC
|
||||
select HAVE_KPROBES
|
||||
select HAVE_KPROBES_ON_FTRACE
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
select HAVE_LIVEPATCH if HAVE_DYNAMIC_FTRACE_WITH_REGS
|
||||
select HAVE_MEMBLOCK
|
||||
select HAVE_MEMBLOCK_NODE_MAP
|
||||
|
||||
@@ -89,7 +89,7 @@ SECTIONS
|
||||
*/
|
||||
.text BLOCK(0) : AT(ADDR(.text) - LOAD_OFFSET) {
|
||||
#ifdef CONFIG_LD_HEAD_STUB_CATCH
|
||||
*(.linker_stub_catch);
|
||||
KEEP(*(.linker_stub_catch));
|
||||
. = . ;
|
||||
#endif
|
||||
|
||||
@@ -98,7 +98,7 @@ SECTIONS
|
||||
ALIGN_FUNCTION();
|
||||
#endif
|
||||
/* careful! __ftr_alt_* sections need to be close to .text */
|
||||
*(.text.hot .text .text.fixup .text.unlikely .fixup __ftr_alt_* .ref.text);
|
||||
*(.text.hot TEXT_MAIN .text.fixup .text.unlikely .fixup __ftr_alt_* .ref.text);
|
||||
SCHED_TEXT
|
||||
CPUIDLE_TEXT
|
||||
LOCK_TEXT
|
||||
@@ -184,10 +184,10 @@ SECTIONS
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
|
||||
INIT_DATA
|
||||
__vtop_table_begin = .;
|
||||
*(.vtop_fixup);
|
||||
KEEP(*(.vtop_fixup));
|
||||
__vtop_table_end = .;
|
||||
__ptov_table_begin = .;
|
||||
*(.ptov_fixup);
|
||||
KEEP(*(.ptov_fixup));
|
||||
__ptov_table_end = .;
|
||||
}
|
||||
|
||||
@@ -208,26 +208,26 @@ SECTIONS
|
||||
. = ALIGN(8);
|
||||
__ftr_fixup : AT(ADDR(__ftr_fixup) - LOAD_OFFSET) {
|
||||
__start___ftr_fixup = .;
|
||||
*(__ftr_fixup)
|
||||
KEEP(*(__ftr_fixup))
|
||||
__stop___ftr_fixup = .;
|
||||
}
|
||||
. = ALIGN(8);
|
||||
__mmu_ftr_fixup : AT(ADDR(__mmu_ftr_fixup) - LOAD_OFFSET) {
|
||||
__start___mmu_ftr_fixup = .;
|
||||
*(__mmu_ftr_fixup)
|
||||
KEEP(*(__mmu_ftr_fixup))
|
||||
__stop___mmu_ftr_fixup = .;
|
||||
}
|
||||
. = ALIGN(8);
|
||||
__lwsync_fixup : AT(ADDR(__lwsync_fixup) - LOAD_OFFSET) {
|
||||
__start___lwsync_fixup = .;
|
||||
*(__lwsync_fixup)
|
||||
KEEP(*(__lwsync_fixup))
|
||||
__stop___lwsync_fixup = .;
|
||||
}
|
||||
#ifdef CONFIG_PPC64
|
||||
. = ALIGN(8);
|
||||
__fw_ftr_fixup : AT(ADDR(__fw_ftr_fixup) - LOAD_OFFSET) {
|
||||
__start___fw_ftr_fixup = .;
|
||||
*(__fw_ftr_fixup)
|
||||
KEEP(*(__fw_ftr_fixup))
|
||||
__stop___fw_ftr_fixup = .;
|
||||
}
|
||||
#endif
|
||||
@@ -240,7 +240,7 @@ SECTIONS
|
||||
. = ALIGN(8);
|
||||
.machine.desc : AT(ADDR(.machine.desc) - LOAD_OFFSET) {
|
||||
__machine_desc_start = . ;
|
||||
*(.machine.desc)
|
||||
KEEP(*(.machine.desc))
|
||||
__machine_desc_end = . ;
|
||||
}
|
||||
#ifdef CONFIG_RELOCATABLE
|
||||
@@ -288,7 +288,7 @@ SECTIONS
|
||||
.data : AT(ADDR(.data) - LOAD_OFFSET) {
|
||||
DATA_DATA
|
||||
*(.data.rel*)
|
||||
*(.sdata)
|
||||
*(SDATA_MAIN)
|
||||
*(.sdata2)
|
||||
*(.got.plt) *(.got)
|
||||
*(.plt)
|
||||
@@ -303,7 +303,7 @@ SECTIONS
|
||||
|
||||
.opd : AT(ADDR(.opd) - LOAD_OFFSET) {
|
||||
__start_opd = .;
|
||||
*(.opd)
|
||||
KEEP(*(.opd))
|
||||
__end_opd = .;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ KBUILD_CFLAGS += -m64
|
||||
KBUILD_AFLAGS += -m64
|
||||
UTS_MACHINE := s390x
|
||||
STACK_SIZE := 16384
|
||||
CHECKFLAGS += -D__s390__ -D__s390x__ -mbig-endian
|
||||
CHECKFLAGS += -D__s390__ -D__s390x__
|
||||
|
||||
export LD_BFD
|
||||
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ else
|
||||
# sparc64
|
||||
#
|
||||
|
||||
CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ -m64
|
||||
CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__
|
||||
LDFLAGS := -m elf64_sparc
|
||||
export BITS := 64
|
||||
UTS_MACHINE := sparc64
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ ifeq ($(CONFIG_X86_32),y)
|
||||
else
|
||||
BITS := 64
|
||||
UTS_MACHINE := x86_64
|
||||
CHECKFLAGS += -D__x86_64__ -m64
|
||||
CHECKFLAGS += -D__x86_64__
|
||||
|
||||
biarch := -m64
|
||||
KBUILD_AFLAGS += -m64
|
||||
|
||||
@@ -19,42 +19,32 @@
|
||||
#define KCRC_ALIGN 4
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
|
||||
#define KSYM(name) _##name
|
||||
#else
|
||||
#define KSYM(name) name
|
||||
#endif
|
||||
|
||||
/*
|
||||
* note on .section use: @progbits vs %progbits nastiness doesn't matter,
|
||||
* since we immediately emit into those sections anyway.
|
||||
*/
|
||||
.macro ___EXPORT_SYMBOL name,val,sec
|
||||
#ifdef CONFIG_MODULES
|
||||
.globl KSYM(__ksymtab_\name)
|
||||
.globl __ksymtab_\name
|
||||
.section ___ksymtab\sec+\name,"a"
|
||||
.balign KSYM_ALIGN
|
||||
KSYM(__ksymtab_\name):
|
||||
__put \val, KSYM(__kstrtab_\name)
|
||||
__ksymtab_\name:
|
||||
__put \val, __kstrtab_\name
|
||||
.previous
|
||||
.section __ksymtab_strings,"a"
|
||||
KSYM(__kstrtab_\name):
|
||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
|
||||
.asciz "_\name"
|
||||
#else
|
||||
__kstrtab_\name:
|
||||
.asciz "\name"
|
||||
#endif
|
||||
.previous
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
.section ___kcrctab\sec+\name,"a"
|
||||
.balign KCRC_ALIGN
|
||||
KSYM(__kcrctab_\name):
|
||||
__kcrctab_\name:
|
||||
#if defined(CONFIG_MODULE_REL_CRCS)
|
||||
.long KSYM(__crc_\name) - .
|
||||
.long __crc_\name - .
|
||||
#else
|
||||
.long KSYM(__crc_\name)
|
||||
.long __crc_\name
|
||||
#endif
|
||||
.weak KSYM(__crc_\name)
|
||||
.weak __crc_\name
|
||||
.previous
|
||||
#endif
|
||||
#endif
|
||||
@@ -84,12 +74,12 @@ KSYM(__kcrctab_\name):
|
||||
#endif
|
||||
|
||||
#define EXPORT_SYMBOL(name) \
|
||||
__EXPORT_SYMBOL(name, KSYM_FUNC(KSYM(name)),)
|
||||
__EXPORT_SYMBOL(name, KSYM_FUNC(name),)
|
||||
#define EXPORT_SYMBOL_GPL(name) \
|
||||
__EXPORT_SYMBOL(name, KSYM_FUNC(KSYM(name)), _gpl)
|
||||
__EXPORT_SYMBOL(name, KSYM_FUNC(name), _gpl)
|
||||
#define EXPORT_DATA_SYMBOL(name) \
|
||||
__EXPORT_SYMBOL(name, KSYM(name),)
|
||||
__EXPORT_SYMBOL(name, name,)
|
||||
#define EXPORT_DATA_SYMBOL_GPL(name) \
|
||||
__EXPORT_SYMBOL(name, KSYM(name),_gpl)
|
||||
__EXPORT_SYMBOL(name, name,_gpl)
|
||||
|
||||
#endif
|
||||
|
||||
+171
-163
File diff suppressed because it is too large
Load Diff
+5
-11
@@ -10,14 +10,8 @@
|
||||
* hackers place grumpy comments in header files.
|
||||
*/
|
||||
|
||||
/* Some toolchains use a `_' prefix for all user symbols. */
|
||||
#ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
|
||||
#define __VMLINUX_SYMBOL(x) _##x
|
||||
#define __VMLINUX_SYMBOL_STR(x) "_" #x
|
||||
#else
|
||||
#define __VMLINUX_SYMBOL(x) x
|
||||
#define __VMLINUX_SYMBOL_STR(x) #x
|
||||
#endif
|
||||
|
||||
/* Indirect, so macros are expanded before pasting. */
|
||||
#define VMLINUX_SYMBOL(x) __VMLINUX_SYMBOL(x)
|
||||
@@ -46,14 +40,14 @@ extern struct module __this_module;
|
||||
#if defined(CONFIG_MODULE_REL_CRCS)
|
||||
#define __CRC_SYMBOL(sym, sec) \
|
||||
asm(" .section \"___kcrctab" sec "+" #sym "\", \"a\" \n" \
|
||||
" .weak " VMLINUX_SYMBOL_STR(__crc_##sym) " \n" \
|
||||
" .long " VMLINUX_SYMBOL_STR(__crc_##sym) " - . \n" \
|
||||
" .weak __crc_" #sym " \n" \
|
||||
" .long __crc_" #sym " - . \n" \
|
||||
" .previous \n");
|
||||
#else
|
||||
#define __CRC_SYMBOL(sym, sec) \
|
||||
asm(" .section \"___kcrctab" sec "+" #sym "\", \"a\" \n" \
|
||||
" .weak " VMLINUX_SYMBOL_STR(__crc_##sym) " \n" \
|
||||
" .long " VMLINUX_SYMBOL_STR(__crc_##sym) " \n" \
|
||||
" .weak __crc_" #sym " \n" \
|
||||
" .long __crc_" #sym " \n" \
|
||||
" .previous \n");
|
||||
#endif
|
||||
#else
|
||||
@@ -66,7 +60,7 @@ extern struct module __this_module;
|
||||
__CRC_SYMBOL(sym, sec) \
|
||||
static const char __kstrtab_##sym[] \
|
||||
__attribute__((section("__ksymtab_strings"), aligned(1))) \
|
||||
= VMLINUX_SYMBOL_STR(sym); \
|
||||
= #sym; \
|
||||
static const struct kernel_symbol __ksymtab_##sym \
|
||||
__used \
|
||||
__attribute__((section("___ksymtab" sec "+" #sym), used)) \
|
||||
|
||||
@@ -1038,6 +1038,33 @@ config CC_OPTIMIZE_FOR_SIZE
|
||||
|
||||
endchoice
|
||||
|
||||
config HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool
|
||||
help
|
||||
This requires that the arch annotates or otherwise protects
|
||||
its external entry points from being discarded. Linker scripts
|
||||
must also merge .text.*, .data.*, and .bss.* correctly into
|
||||
output sections. Care must be taken not to pull in unrelated
|
||||
sections (e.g., '.text.init'). Typically '.' in section names
|
||||
is used to distinguish them from label names / C identifiers.
|
||||
|
||||
config LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool "Dead code and data elimination (EXPERIMENTAL)"
|
||||
depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
depends on EXPERT
|
||||
help
|
||||
Select this if the architecture wants to do dead code and
|
||||
data elimination with the linker by compiling with
|
||||
-ffunction-sections -fdata-sections, and linking with
|
||||
--gc-sections.
|
||||
|
||||
This can reduce on disk and in-memory size of the kernel
|
||||
code and static data, particularly for small configs and
|
||||
on small systems. This has the possibility of introducing
|
||||
silently broken kernel if the required annotations are not
|
||||
present. This option is not well tested yet, so use at your
|
||||
own risk.
|
||||
|
||||
config SYSCTL
|
||||
bool
|
||||
|
||||
|
||||
@@ -147,7 +147,6 @@ $(obj)/%.i: $(src)/%.c FORCE
|
||||
cmd_gensymtypes_c = \
|
||||
$(CPP) -D__GENKSYMS__ $(c_flags) $< | \
|
||||
$(GENKSYMS) $(if $(1), -T $(2)) \
|
||||
$(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \
|
||||
$(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \
|
||||
$(if $(KBUILD_PRESERVE),-p) \
|
||||
-r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null))
|
||||
@@ -355,7 +354,6 @@ cmd_gensymtypes_S = \
|
||||
sed 's/.*___EXPORT_SYMBOL[[:space:]]*\([a-zA-Z0-9_]*\)[[:space:]]*,.*/EXPORT_SYMBOL(\1);/' ) | \
|
||||
$(CPP) -D__GENKSYMS__ $(c_flags) -xc - | \
|
||||
$(GENKSYMS) $(if $(1), -T $(2)) \
|
||||
$(patsubst y,-s _,$(CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX)) \
|
||||
$(patsubst y,-R,$(CONFIG_MODULE_REL_CRCS)) \
|
||||
$(if $(KBUILD_PRESERVE),-p) \
|
||||
-r $(firstword $(wildcard $(2:.symtypes=.symref) /dev/null))
|
||||
@@ -487,15 +485,10 @@ targets += $(lib-target)
|
||||
|
||||
dummy-object = $(obj)/.lib_exports.o
|
||||
ksyms-lds = $(dot-target).lds
|
||||
ifdef CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
|
||||
ref_prefix = EXTERN(_
|
||||
else
|
||||
ref_prefix = EXTERN(
|
||||
endif
|
||||
|
||||
quiet_cmd_export_list = EXPORTS $@
|
||||
cmd_export_list = $(OBJDUMP) -h $< | \
|
||||
sed -ne '/___ksymtab/s/.*+\([^ ]*\).*/$(ref_prefix)\1)/p' >$(ksyms-lds);\
|
||||
sed -ne '/___ksymtab/s/.*+\([^ ]*\).*/EXTERN(\1)/p' >$(ksyms-lds);\
|
||||
rm -f $(dummy-object);\
|
||||
echo | $(CC) $(a_flags) -c -o $(dummy-object) -x assembler -;\
|
||||
$(LD) $(ld_flags) -r -o $@ -T $(ksyms-lds) $(dummy-object);\
|
||||
|
||||
@@ -61,9 +61,6 @@ for mod in "$MODVERDIR"/*.mod; do
|
||||
sed -n -e '3{s/ /\n/g;/^$/!p;}' "$mod"
|
||||
done | sort -u |
|
||||
while read sym; do
|
||||
if [ -n "$CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX" ]; then
|
||||
sym="${sym#_}"
|
||||
fi
|
||||
echo "#define __KSYM_${sym} 1"
|
||||
done >> "$new_ksyms_file"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user