chiark / gitweb /
[PATCH] fix klibc with printf() and gcc
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Wed, 14 Jan 2004 02:48:33 +0000 (18:48 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:13:16 +0000 (21:13 -0700)
On Mon, Jan 12, 2004 at 05:04:45PM -0800, Greg KH wrote:
> Very nice, applied.  But I did have to make one small change to get the
> code to build properly with klibc:
>
> > +static void print_record(char *path, struct udevice *dev)
> > +{
> > + printf("P: %s\n", path);
> > + printf("N: %s\n", dev->name);
> > + printf("S: %s\n", dev->symlink);
> > + printf("O: %s\n", dev->owner);
> > + printf("G: %s\n", dev->group);
> > + printf("\n");
> > +}
>
> Turns out that gcc likes to convert single character printf() calls to
> putchar() which is only defined in klibc as a macro :(

Just for information. This seems to fix the gcc with klibc :)

Makefile

index 5e641292665fe88b6c93a2ee4cd6f37aea324521..a921a22bb9b90bfec5ad1a8010308a1896252f44 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -133,7 +133,7 @@ ifeq ($(strip $(USE_KLIBC)),true)
        LIBC =  $(ARCH_LIB_OBJS) $(LIB_OBJS) $(CRT0)
        CFLAGS += -nostdinc -I$(INCLUDE_DIR) -I$(KLIBC_DIR)/arch/$(ARCH)/include \
                -I$(INCLUDE_DIR)/bits$(BITSIZE) -I$(GCCINCDIR) -I$(LINUX_INCLUDE_DIR) \
-               -D__KLIBC__
+               -D__KLIBC__ -fno-builtin-printf
        LIB_OBJS =
        LDFLAGS = --static --nostdlib -nostartfiles -nodefaultlibs
 else