mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
Merge tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada: - Remove tristate choice support from Kconfig - Stop using the PROVIDE() directive in the linker script - Reduce the number of links for the combination of CONFIG_KALLSYMS and CONFIG_DEBUG_INFO_BTF - Enable the warning for symbol reference to .exit.* sections by default - Fix warnings in RPM package builds - Improve scripts/make_fit.py to generate a FIT image with separate base DTB and overlays - Improve choice value calculation in Kconfig - Fix conditional prompt behavior in choice in Kconfig - Remove support for the uncommon EMAIL environment variable in Debian package builds - Remove support for the uncommon "name <email>" form for the DEBEMAIL environment variable - Raise the minimum supported GNU Make version to 4.0 - Remove stale code for the absolute kallsyms - Move header files commonly used for host programs to scripts/include/ - Introduce the pacman-pkg target to generate a pacman package used in Arch Linux - Clean up Kconfig * tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (65 commits) kbuild: doc: gcc to CC change kallsyms: change sym_entry::percpu_absolute to bool type kallsyms: unify seq and start_pos fields of struct sym_entry kallsyms: add more original symbol type/name in comment lines kallsyms: use \t instead of a tab in printf() kallsyms: avoid repeated calculation of array size for markers kbuild: add script and target to generate pacman package modpost: use generic macros for hash table implementation kbuild: move some helper headers from scripts/kconfig/ to scripts/include/ Makefile: add comment to discourage tools/* addition for kernel builds kbuild: clean up scripts/remove-stale-files kconfig: recursive checks drop file/lineno kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec kallsyms: get rid of code for absolute kallsyms kbuild: Create INSTALL_PATH directory if it does not exist kbuild: Abort make on install failures kconfig: remove 'e1' and 'e2' macros from expression deduplication kconfig: remove SYMBOL_CHOICEVAL flag kconfig: add const qualifiers to several function arguments kconfig: call expr_eliminate_yn() at least once in expr_eliminate_dups() ...
This commit is contained in:
@@ -20,6 +20,9 @@
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <hashtable.h>
|
||||
#include <list.h>
|
||||
#include "modpost.h"
|
||||
#include "../../include/linux/license.h"
|
||||
|
||||
@@ -199,13 +202,8 @@ static struct module *new_module(const char *name, size_t namelen)
|
||||
return mod;
|
||||
}
|
||||
|
||||
/* A hash of all exported symbols,
|
||||
* struct symbol is also used for lists of unresolved symbols */
|
||||
|
||||
#define SYMBOL_HASH_SIZE 1024
|
||||
|
||||
struct symbol {
|
||||
struct symbol *next;
|
||||
struct hlist_node hnode;/* link to hash table */
|
||||
struct list_head list; /* link to module::exported_symbols or module::unresolved_symbols */
|
||||
struct module *module;
|
||||
char *namespace;
|
||||
@@ -218,7 +216,7 @@ struct symbol {
|
||||
char name[];
|
||||
};
|
||||
|
||||
static struct symbol *symbolhash[SYMBOL_HASH_SIZE];
|
||||
static HASHTABLE_DEFINE(symbol_hashtable, 1U << 10);
|
||||
|
||||
/* This is based on the hash algorithm from gdbm, via tdb */
|
||||
static inline unsigned int tdb_hash(const char *name)
|
||||
@@ -250,11 +248,7 @@ static struct symbol *alloc_symbol(const char *name)
|
||||
/* For the hash of exported symbols */
|
||||
static void hash_add_symbol(struct symbol *sym)
|
||||
{
|
||||
unsigned int hash;
|
||||
|
||||
hash = tdb_hash(sym->name) % SYMBOL_HASH_SIZE;
|
||||
sym->next = symbolhash[hash];
|
||||
symbolhash[hash] = sym;
|
||||
hash_add(symbol_hashtable, &sym->hnode, tdb_hash(sym->name));
|
||||
}
|
||||
|
||||
static void sym_add_unresolved(const char *name, struct module *mod, bool weak)
|
||||
@@ -275,7 +269,7 @@ static struct symbol *sym_find_with_module(const char *name, struct module *mod)
|
||||
if (name[0] == '.')
|
||||
name++;
|
||||
|
||||
for (s = symbolhash[tdb_hash(name) % SYMBOL_HASH_SIZE]; s; s = s->next) {
|
||||
hash_for_each_possible(symbol_hashtable, s, hnode, tdb_hash(name)) {
|
||||
if (strcmp(s->name, name) == 0 && (!mod || s->module == mod))
|
||||
return s;
|
||||
}
|
||||
@@ -954,17 +948,6 @@ static int secref_whitelist(const char *fromsec, const char *fromsym,
|
||||
match(fromsym, PATTERNS("*_ops", "*_probe", "*_console")))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* symbols in data sections must not refer to .exit.*, but there are
|
||||
* quite a few offenders, so hide these unless for W=1 builds until
|
||||
* these are fixed.
|
||||
*/
|
||||
if (!extra_warn &&
|
||||
match(fromsec, PATTERNS(DATA_SECTIONS)) &&
|
||||
match(tosec, PATTERNS(ALL_EXIT_SECTIONS)) &&
|
||||
match(fromsym, PATTERNS("*driver")))
|
||||
return 0;
|
||||
|
||||
/* Check for pattern 3 */
|
||||
if (strstarts(fromsec, ".head.text") &&
|
||||
match(tosec, PATTERNS(ALL_INIT_SECTIONS)))
|
||||
@@ -1168,40 +1151,6 @@ static Elf_Addr addend_386_rel(uint32_t *location, unsigned int r_type)
|
||||
return (Elf_Addr)(-1);
|
||||
}
|
||||
|
||||
#ifndef R_ARM_CALL
|
||||
#define R_ARM_CALL 28
|
||||
#endif
|
||||
#ifndef R_ARM_JUMP24
|
||||
#define R_ARM_JUMP24 29
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_THM_CALL
|
||||
#define R_ARM_THM_CALL 10
|
||||
#endif
|
||||
#ifndef R_ARM_THM_JUMP24
|
||||
#define R_ARM_THM_JUMP24 30
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_MOVW_ABS_NC
|
||||
#define R_ARM_MOVW_ABS_NC 43
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_MOVT_ABS
|
||||
#define R_ARM_MOVT_ABS 44
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_THM_MOVW_ABS_NC
|
||||
#define R_ARM_THM_MOVW_ABS_NC 47
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_THM_MOVT_ABS
|
||||
#define R_ARM_THM_MOVT_ABS 48
|
||||
#endif
|
||||
|
||||
#ifndef R_ARM_THM_JUMP19
|
||||
#define R_ARM_THM_JUMP19 51
|
||||
#endif
|
||||
|
||||
static int32_t sign_extend32(int32_t value, int index)
|
||||
{
|
||||
uint8_t shift = 31 - index;
|
||||
@@ -1262,7 +1211,7 @@ static Elf_Addr addend_arm_rel(void *loc, Elf_Sym *sym, unsigned int r_type)
|
||||
((lower & 0x07ff) << 1),
|
||||
20);
|
||||
return offset + sym->st_value + 4;
|
||||
case R_ARM_THM_CALL:
|
||||
case R_ARM_THM_PC22:
|
||||
case R_ARM_THM_JUMP24:
|
||||
/*
|
||||
* Encoding T4:
|
||||
|
||||
Reference in New Issue
Block a user