The "official" toolchain works fine. Try adding the following includes to gcc.
INCLUDES = -I$(ANDROID)/system/core/include \
-I$(ANDROID)/hardware/libhardware/include \
-I$(ANDROID)/out/target/product/generic/obj/include \
-I$(ANDROID)/bionic/libc/arch-arm/include \
-I$(ANDROID)/bionic/libc/include \
-I$(ANDROID)/bionic/libstdc++/include \
-I$(ANDROID)/bionic/libc/kernel/common \
-I$(ANDROID)/bionic/libc/kernel/arch-arm \
-I$(ANDROID)/bionic/libm/include \
-I$(ANDROID)/bionic/libm/include/arch/arm \
-I$(ANDROID)/bionic/libthread_db/include \
-I$(ANDROID)/bionic/libm/arm \
-I$(ANDROID)/bionic/libm
CFLAGS = -nostdlib \
$(INCLUDES) \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
-D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID \
-DSK_RELEASE -DNDEBUG -UDEBUG \
-march=armv5te -mtune=xscale -msoft-float -mthumb-interwork \
-fpic -fno-exceptions -ffunction-sections -funwind-tables \
-fstack-protector -fmessage-length=0 \
-include $(ANDROID)/system/core/include/arch/linux-arm/AndroidConfig.h
LDFLAGS = -nostdlib -Bdynamic \
-Wl,-T,$(ANDROID)/build/core/armelf.x \
-Wl,--gc-sections \
-Wl,-z,nocopyreloc \
-Wl,--no-undefined \
-Wl,-rpath-link=$(ANDROID)/out/target/product/generic/obj/lib \
-L$(ANDROID)/out/target/product/generic/obj/lib \
-Wl,-dynamic-linker,/system/bin/linker