Hi Greg, I currently need the attached patch to get udev to even compile againt klibc. I think there are still problems with the CALLOUT pipe failing. It's likely klibc's fault. I'll investigate that this afternoon. My makefile-foo is probably sub-par. If someone could figure out a good way to get things right for 64bit platforms, then that would be good. I'm not entirely sure why I had to change $(GCC) to $(LD) in the link step. If I don't I get a warning: /usr/bin/ld: Warning: type of symbol 'errno' changed from 1 to 6 in /usr/lib/gcc-lib/ia64-linux/3.3.2/../../../libc.a(errno.o) Maybe we're missing a flag on the final link, while using $(GCC)? The old Makefile.klibc used $(LD), which allowed me to track down this problem. thanks, mh -- Martin Hicks || mort@bork.org || PGP/GnuPG: 0x4C7F2BEE # This is a BitKeeper generated patch for the following project: # Project Name: udev # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.199 -> 1.200 # Makefile 1.34 -> 1.35 # tdb/tdb.h 1.1 -> 1.2 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/11/24 mort@green.i.bork.org 1.200 # -Fixes for 64 bit platform. # -I also had to change the makefile to use the linker on the final step to avoid # an error on ia64. # -Included signal.h in tdb/tdb.h to fix a compile problem for ia64. # -------------------------------------------- # diff -Nru a/Makefile b/Makefile --- a/Makefile Mon Nov 24 12:03:31 2003 +++ b/Makefile Mon Nov 24 12:03:31 2003 @@ -65,6 +65,9 @@ ARCH := ${shell $(CC) -dumpmachine | sed -e s'/-.*//' -e 's/i.86/i386/' -e 's/sparc.*/sparc/' \ -e 's/arm.*/arm/g' -e 's/m68k.*/m68k/' -e 's/ppc/powerpc/g'} +# Defaults to 32-bit. +BITS := 32 + # code taken from uClibc to determine the gcc include dir GCCINCDIR := ${shell $(CC) -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp"} @@ -93,6 +96,10 @@ CFLAGS+=-pipe endif +ifeq ($(strip $(ARCH)),ia64) + BITS=64 +endif + # if DEBUG is enabled, then we do not strip or optimize ifeq ($(strip $(DEBUG)),true) CFLAGS += $(WARNINGS) -O1 -g -DDEBUG -D_GNU_SOURCE @@ -117,8 +124,10 @@ CRT0 = $(KLIBC_DIR)/crt0.o - LIBC = $(ARCH_LIB_OBJS) $(LIB_OBJS) - CFLAGS += -nostdinc -I$(INCLUDE_DIR) -I$(INCLUDE_DIR)/bits32 -I$(GCCINCDIR) -Iklibc/linux/include -D__KLIBC__ + LIBC = $(ARCH_LIB_OBJS) $(LIB_OBJS) $(CRT0) + CFLAGS += -nostdinc -I$(INCLUDE_DIR) -I$(KLIBC_DIR)/arch/$(ARCH)/include \ + -I$(INCLUDE_DIR)/bits$(BITS) -I$(GCCINCDIR) -Iklibc/linux/include \ + -D__KLIBC__ LIB_OBJS = LDFLAGS = --static --nostdlib -nostartfiles else @@ -166,7 +175,7 @@ $(ROOT): $(GEN_HEADERS) $(OBJS) - $(CC) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS) + $(LD) $(LDFLAGS) -o $(ROOT) $(CRT0) $(OBJS) $(LIB_OBJS) $(ARCH_LIB_OBJS) $(STRIPCMD) $(ROOT) clean: diff -Nru a/tdb/tdb.h b/tdb/tdb.h --- a/tdb/tdb.h Mon Nov 24 12:03:31 2003 +++ b/tdb/tdb.h Mon Nov 24 12:03:31 2003 @@ -25,6 +25,7 @@ extern "C" { #endif +#include /* flags to tdb_store() */ #define TDB_REPLACE 1