From 5cc196d825892fccda2f24172793254b9728a6dc Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 30 Jan 2003 17:23:56 +0000 Subject: 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. --- libc/sysdeps/linux/mips/Makefile | 2 +- libc/sysdeps/linux/mips/cacheflush.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 libc/sysdeps/linux/mips/cacheflush.c (limited to 'libc') 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 +#include +#include + +_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); + -- cgit v1.2.3