Added stubs for functions in dlfcn.h.

This commit is contained in:
Jonas 'Sortie' Termansen 2012-05-30 23:58:04 +02:00
parent 6eb6a14ace
commit aac12add54
3 changed files with 99 additions and 0 deletions

View File

@ -54,6 +54,7 @@ time.o \
random.o \
abs.o \
env.o \
dlfcn.o \
integer.o \
c++.o \
memory.o \

54
libmaxsi/dlfcn.cpp Normal file
View File

@ -0,0 +1,54 @@
/*******************************************************************************
COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2012.
This file is part of LibMaxsi.
LibMaxsi is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
You should have received a copy of the GNU Lesser General Public License
along with LibMaxsi. If not, see <http://www.gnu.org/licenses/>.
dlfcn.cpp
Dynamic linking.
*******************************************************************************/
#include <stdio.h>
#include <dlfcn.h>
static const char* dlerrormsg = NULL;
extern "C" void* dlopen(const char* filename, int mode)
{
dlerrormsg = "Sortix does not yet support dynamic linking";
fprintf(stderr, "%s: loading file: %s\n", dlerrormsg, filename);
return NULL;
}
extern "C" void* dlsym(void* handle, const char* name)
{
dlerrormsg = "Sortix does not yet support dynamic linking";
fprintf(stderr, "%s: resolving symbol: %s\n", dlerrormsg, name);
return NULL;
}
extern "C" int dlclose(void* handle)
{
return 0;
}
extern "C" char* dlerror(void* handle)
{
const char* result = dlerrormsg;
dlerrormsg = NULL;
return (char*) dlerrormsg;
}

44
libmaxsi/include/dlfcn.h Normal file
View File

@ -0,0 +1,44 @@
/*******************************************************************************
COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2012.
This file is part of LibMaxsi.
LibMaxsi is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
You should have received a copy of the GNU Lesser General Public License
along with LibMaxsi. If not, see <http://www.gnu.org/licenses/>.
dlfcn.h
Dynamic linking.
*******************************************************************************/
#ifndef _DLFCN_H
#define _DLFCN_H 1
#include <features.h>
__BEGIN_DECLS
#define RTLD_LAZY (1<<0)
#define RTLD_NOW (1<<1)
#define RTLD_GLOBAL (1<<8)
#define RTLD_LOCAL 0 /* Bit 8 is not set. */
int dlclose(void* handle);
char* dlerror(void* handle);
void* dlopen(const char* filename, int mode);
void* dlsym(void* handle, const char* name);
__END_DECLS
#endif