Remove the loader's required and referenced symbol lists, dead code.
This commit is contained in:
parent
0486d3966d
commit
bca9364f3f
|
@ -2448,44 +2448,25 @@ xf86LoaderCheckSymbol(const char *name)
|
||||||
return LoaderSymbol(name) != NULL;
|
return LoaderSymbol(name) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* These two are just ABI stubs, they don't do anything in dlloader world */
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
xf86LoaderReqSymLists(const char **list0, ...)
|
xf86LoaderReqSymLists(const char **list0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, list0);
|
|
||||||
LoaderVReqSymLists(list0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
xf86LoaderReqSymbols(const char *sym0, ...)
|
xf86LoaderReqSymbols(const char *sym0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, sym0);
|
|
||||||
LoaderVReqSymbols(sym0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
xf86LoaderRefSymLists(const char **list0, ...)
|
xf86LoaderRefSymLists(const char **list0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, list0);
|
|
||||||
LoaderVRefSymLists(list0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
xf86LoaderRefSymbols(const char *sym0, ...)
|
xf86LoaderRefSymbols(const char *sym0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, sym0);
|
|
||||||
LoaderVRefSymbols(sym0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -97,22 +97,6 @@ static int refCount[MAX_HANDLE];
|
||||||
*/
|
*/
|
||||||
static int moduleseq = 0;
|
static int moduleseq = 0;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int num;
|
|
||||||
const char **list;
|
|
||||||
} symlist;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List of symbols that may be referenced, and which are allowed to be
|
|
||||||
* unresolved providing that they don't appear on the "reqired" list.
|
|
||||||
*/
|
|
||||||
static symlist refList = { 0, NULL };
|
|
||||||
|
|
||||||
/* List of symbols that must not be unresolved */
|
|
||||||
static symlist reqList = { 0, NULL };
|
|
||||||
|
|
||||||
static int fatalReqSym = 0;
|
|
||||||
|
|
||||||
/* Prototypes for static functions. */
|
/* Prototypes for static functions. */
|
||||||
static loaderPtr _LoaderListPush(void);
|
static loaderPtr _LoaderListPush(void);
|
||||||
static loaderPtr _LoaderListPop(int);
|
static loaderPtr _LoaderListPop(int);
|
||||||
|
@ -300,165 +284,25 @@ _LoaderModuleToName(int module)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* These four are just ABI stubs */
|
||||||
* Add a list of symbols to the referenced list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
|
||||||
AppendSymbol(symlist * list, const char *sym)
|
|
||||||
{
|
|
||||||
list->list = xnfrealloc(list->list, (list->num + 1) * sizeof(char **));
|
|
||||||
/* copy the symbol, since it comes from a module
|
|
||||||
that can be unloaded later */
|
|
||||||
list->list[list->num] = xnfstrdup(sym);
|
|
||||||
list->num++;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
AppendSymList(symlist * list, const char **syms)
|
|
||||||
{
|
|
||||||
while (*syms) {
|
|
||||||
AppendSymbol(list, *syms);
|
|
||||||
syms++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
SymInList(symlist * list, char *sym)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < list->num; i++)
|
|
||||||
if (strcmp(list->list[i], sym) == 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
LoaderVRefSymbols(const char *sym0, va_list args)
|
|
||||||
{
|
|
||||||
const char *s;
|
|
||||||
|
|
||||||
if (sym0 == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
s = sym0;
|
|
||||||
do {
|
|
||||||
AppendSymbol(&refList, s);
|
|
||||||
s = va_arg(args, const char *);
|
|
||||||
} while (s != NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
LoaderRefSymbols(const char *sym0, ...)
|
LoaderRefSymbols(const char *sym0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, sym0);
|
|
||||||
LoaderVRefSymbols(sym0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
LoaderVRefSymLists(const char **list0, va_list args)
|
|
||||||
{
|
|
||||||
const char **l;
|
|
||||||
|
|
||||||
if (list0 == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
l = list0;
|
|
||||||
do {
|
|
||||||
AppendSymList(&refList, l);
|
|
||||||
l = va_arg(args, const char **);
|
|
||||||
} while (l != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
LoaderRefSymLists(const char **list0, ...)
|
LoaderRefSymLists(const char **list0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, list0);
|
|
||||||
LoaderVRefSymLists(list0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
LoaderVReqSymLists(const char **list0, va_list args)
|
|
||||||
{
|
|
||||||
const char **l;
|
|
||||||
|
|
||||||
if (list0 == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
l = list0;
|
|
||||||
do {
|
|
||||||
AppendSymList(&reqList, l);
|
|
||||||
l = va_arg(args, const char **);
|
|
||||||
} while (l != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
LoaderReqSymLists(const char **list0, ...)
|
LoaderReqSymLists(const char **list0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, list0);
|
|
||||||
LoaderVReqSymLists(list0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
LoaderVReqSymbols(const char *sym0, va_list args)
|
|
||||||
{
|
|
||||||
const char *s;
|
|
||||||
|
|
||||||
if (sym0 == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
s = sym0;
|
|
||||||
do {
|
|
||||||
AppendSymbol(&reqList, s);
|
|
||||||
s = va_arg(args, const char *);
|
|
||||||
} while (s != NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
LoaderReqSymbols(const char *sym0, ...)
|
LoaderReqSymbols(const char *sym0, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, sym0);
|
|
||||||
LoaderVReqSymbols(sym0, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _LoaderHandleUnresolved() decides what to do with an unresolved
|
|
||||||
* symbol. Symbols that are not on the "referenced" or "required" lists
|
|
||||||
* get a warning if they are unresolved. Symbols that are on the "required"
|
|
||||||
* list generate a fatal error if they are unresolved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
_LoaderHandleUnresolved(char *symbol, char *module)
|
|
||||||
{
|
|
||||||
int fatalsym = 0;
|
|
||||||
|
|
||||||
if (xf86ShowUnresolved && !fatalsym) {
|
|
||||||
if (SymInList(&reqList, symbol)) {
|
|
||||||
fatalReqSym = 1;
|
|
||||||
ErrorF("Required symbol %s from module %s is unresolved!\n",
|
|
||||||
symbol, module);
|
|
||||||
}
|
|
||||||
if (!SymInList(&refList, symbol)) {
|
|
||||||
ErrorF("Symbol %s from module %s is unresolved!\n",
|
|
||||||
symbol, module);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return (fatalsym);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Public Interface to the loader. */
|
/* Public Interface to the loader. */
|
||||||
|
@ -578,15 +422,11 @@ LoaderSymbol(const char *sym)
|
||||||
return (DLFindSymbol(sym));
|
return (DLFindSymbol(sym));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* more stub */
|
||||||
_X_EXPORT int
|
_X_EXPORT int
|
||||||
LoaderCheckUnresolved(int delay_flag)
|
LoaderCheckUnresolved(int delay_flag)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
return 0;
|
||||||
|
|
||||||
if (fatalReqSym)
|
|
||||||
FatalError("Some required symbols were unresolved\n");
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -103,11 +103,6 @@ ModuleDescPtr AddSibling(ModuleDescPtr head, ModuleDescPtr new);
|
||||||
void LoaderSetPath(const char *path);
|
void LoaderSetPath(const char *path);
|
||||||
void LoaderSortExtensions(void);
|
void LoaderSortExtensions(void);
|
||||||
|
|
||||||
void LoaderVReqSymLists(const char **, va_list args);
|
|
||||||
void LoaderVReqSymbols(const char *, va_list args);
|
|
||||||
void LoaderVRefSymLists(const char **, va_list args);
|
|
||||||
void LoaderVRefSymbols(const char *, va_list args);
|
|
||||||
|
|
||||||
void LoaderShowStack(void);
|
void LoaderShowStack(void);
|
||||||
void *LoaderSymbolHandle(const char *, int);
|
void *LoaderSymbolHandle(const char *, int);
|
||||||
int LoaderUnload(int);
|
int LoaderUnload(int);
|
||||||
|
|
Loading…
Reference in New Issue