intercept puts() in libsys, for gcc
This commit is contained in:
parent
ee3b5fb5ea
commit
aacbfc41cc
@ -98,6 +98,7 @@ SRCS= \
|
|||||||
asynsend.c \
|
asynsend.c \
|
||||||
kprintf.c \
|
kprintf.c \
|
||||||
kputc.c \
|
kputc.c \
|
||||||
|
kputs.c \
|
||||||
tickdelay.c \
|
tickdelay.c \
|
||||||
get_randomness.c \
|
get_randomness.c \
|
||||||
getidle.c \
|
getidle.c \
|
||||||
|
24
lib/libsys/kputs.c
Normal file
24
lib/libsys/kputs.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/* system services puts()
|
||||||
|
*
|
||||||
|
* This is here because gcc converts printf() calls without actual formatting
|
||||||
|
* in the format string, to puts() calls. While that "feature" can be disabled
|
||||||
|
* with the -fno-builtin-printf gcc flag, we still don't want the resulting
|
||||||
|
* mayhem to occur in system servers even when that flag is forgotten.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* puts() uses kputc() to print characters. */
|
||||||
|
void kputc(int c);
|
||||||
|
|
||||||
|
int puts(const char *s)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (; *s; s++)
|
||||||
|
kputc(*s);
|
||||||
|
|
||||||
|
kputc('\n');
|
||||||
|
kputc('\0');
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user