Comments
Patch
From 07607cbb537033da33ec4d33178a99c32b19a699 Mon Sep 17 00:00:00 2001
From: Patrick Georgi <Patrick.Georgi@secunet.com>
Date: Tue, 15 Feb 2011 15:46:48 +0100
Subject: [PATCH] libpayload: Move stdin/stdout/stderr away from headers
Otherwise they exist in several object files, confusing the linker
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
---
payloads/libpayload/include/curses.h | 6 +-----
payloads/libpayload/include/stdio.h | 7 +------
payloads/libpayload/libc/printf.c | 7 +++++++
3 files changed, 9 insertions(+), 11 deletions(-)
@@ -148,11 +148,7 @@ typedef unsigned long chtype;
typedef unsigned long mmask_t;
#endif
-//// #include <stdio.h>
-struct _IO_FILE {
- // FIXME
-};
-typedef struct _IO_FILE FILE;
+#include <stdio.h>
//// #include <ncursesw/unctrl.h>
#include <stdarg.h> /* we need va_list */
//// #define va_list int // FIXME
@@ -32,14 +32,9 @@
#include <stddef.h>
-struct _FILE {
-} _stdout, _stdin, _stderr;
-
typedef struct _FILE FILE;
-FILE *stdout = &_stdout;
-FILE *stdin = &_stdin;
-FILE *stderr = &_stderr;
+extern FILE *stdout, *stdin, *stderr;
/**
* @defgroup printf Print functions
@@ -36,6 +36,13 @@
#include <libpayload.h>
#include <ctype.h>
+static struct _FILE {
+} _stdout, _stdin, _stderr;
+
+FILE *stdout = &_stdout;
+FILE *stdin = &_stdin;
+FILE *stderr = &_stderr;
+
/** Structure for specifying output methods for different printf clones. */
struct printf_spec {
/* Output function, returns count of printed characters or EOF. */
--
1.7.1