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;
|
||||
}
|
||||
|
||||
/* These two are just ABI stubs, they don't do anything in dlloader world */
|
||||
_X_EXPORT void
|
||||
xf86LoaderReqSymLists(const char **list0, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, list0);
|
||||
LoaderVReqSymLists(list0, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
_X_EXPORT void
|
||||
xf86LoaderReqSymbols(const char *sym0, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, sym0);
|
||||
LoaderVReqSymbols(sym0, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
_X_EXPORT void
|
||||
xf86LoaderRefSymLists(const char **list0, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, list0);
|
||||
LoaderVRefSymLists(list0, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
_X_EXPORT void
|
||||
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;
|
||||
|
||||
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. */
|
||||
static loaderPtr _LoaderListPush(void);
|
||||
static loaderPtr _LoaderListPop(int);
|
||||
|
@ -300,165 +284,25 @@ _LoaderModuleToName(int module)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
|
||||
/* These four are just ABI stubs */
|
||||
_X_EXPORT void
|
||||
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
|
||||
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
|
||||
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
|
||||
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. */
|
||||
|
@ -578,15 +422,11 @@ LoaderSymbol(const char *sym)
|
|||
return (DLFindSymbol(sym));
|
||||
}
|
||||
|
||||
/* more stub */
|
||||
_X_EXPORT int
|
||||
LoaderCheckUnresolved(int delay_flag)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (fatalReqSym)
|
||||
FatalError("Some required symbols were unresolved\n");
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -103,11 +103,6 @@ ModuleDescPtr AddSibling(ModuleDescPtr head, ModuleDescPtr new);
|
|||
void LoaderSetPath(const char *path);
|
||||
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 *LoaderSymbolHandle(const char *, int);
|
||||
int LoaderUnload(int);
|
||||
|
|
Loading…
Reference in New Issue