diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-01-30 17:23:56 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-01-30 17:23:56 +0000 |
commit | 5cc196d825892fccda2f24172793254b9728a6dc (patch) | |
tree | f0bc5ef6ebf3216a59e6953e09a2fce0ad2c7000 /libc/sysdeps/linux/mips | |
parent | cfcad9c1b1a3cb4daed1c15bfa000a619db95768 (diff) |
Patch from Christophe Massiot:
Hello,
When using uClibc to compile the modutils for a MIPS target, the linker
outputs an "undefined symbol: _flush_cache". After some digging, it's
a syscall only available on the MIPS architecture, and the _flush_cache
symbol is in the GNU libc.
Attached patch defines it in uClibc as well. I'm not sure if I made it
the right way, though, but it works for me.
Diffstat (limited to 'libc/sysdeps/linux/mips')
-rw-r--r-- | libc/sysdeps/linux/mips/Makefile | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/mips/cacheflush.c | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/mips/Makefile b/libc/sysdeps/linux/mips/Makefile index 53b3031b8..e207ae2d0 100644 --- a/libc/sysdeps/linux/mips/Makefile +++ b/libc/sysdeps/linux/mips/Makefile @@ -26,7 +26,7 @@ CRT0_OBJ = crt0.o crt1.o SSRC=bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S fork.S syscall.S SOBJS=$(patsubst %.S,%.o, $(SSRC)) -CSRC=__longjmp.c brk.c vfork.c setjmp_aux.c _mmap.c pipe.c __syscall_error.c +CSRC=__longjmp.c brk.c vfork.c setjmp_aux.c _mmap.c pipe.c __syscall_error.c cacheflush.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(SOBJS) $(MOBJ) $(COBJS) diff --git a/libc/sysdeps/linux/mips/cacheflush.c b/libc/sysdeps/linux/mips/cacheflush.c new file mode 100644 index 000000000..fd6bd89e0 --- /dev/null +++ b/libc/sysdeps/linux/mips/cacheflush.c @@ -0,0 +1,27 @@ +/* brk system call for Linux/MIPS. + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library 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 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <errno.h> +#include <unistd.h> +#include <sys/syscall.h> + +_syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op); +weak_alias(cacheflush, _flush_cache) +_syscall3(int, cachectl, void *, addr, const int, nbytes, const int, op); + |