From d7f2b37cad318f38d83d2249b8ff97f13ce973d8 Mon Sep 17 00:00:00 2001 From: "John Hodge (sonata)" Date: Mon, 3 Nov 2014 12:40:05 +0800 Subject: [PATCH] Usermode/libc - Fix not loading crt0.s in libc --- Usermode/Libraries/libc.so_src/Makefile | 2 +- Usermode/Libraries/libc.so_src/stdio.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Usermode/Libraries/libc.so_src/Makefile b/Usermode/Libraries/libc.so_src/Makefile index 4dc43e1c..40977e9c 100644 --- a/Usermode/Libraries/libc.so_src/Makefile +++ b/Usermode/Libraries/libc.so_src/Makefile @@ -7,7 +7,7 @@ CPPFLAGS += CFLAGS += -nostdlib -Wall -Werror -Wextra ASFLAGS += LDFLAGS += -nostdlib -PRELINK := $(CRTI) $(CRTBEGINS) $(CRTS) +PRELINK := $(CRTI) $(CRTBEGINS) $(CRT0S) LIBS += $(LIBGCC_PATH) $(CRTENDS) $(CRTN) INCFILES := stdio.h stdlib.h diff --git a/Usermode/Libraries/libc.so_src/stdio.c b/Usermode/Libraries/libc.so_src/stdio.c index a0008d3d..cf2e7336 100644 --- a/Usermode/Libraries/libc.so_src/stdio.c +++ b/Usermode/Libraries/libc.so_src/stdio.c @@ -692,6 +692,10 @@ EXPORT size_t fread(void *ptr, size_t size, size_t num, FILE *fp) if( _GetFileMode(fp) != FILE_FLAG_MODE_READ ) { errno = 0; LOG_WARN("not open for read"); + if( fp == stdin ) { + LOG_WARN("BUGCHECK FAIL: stdin was not open for read"); + exit(129); + } return -1; } -- 2.20.1