пока что для себя опеделил следующую технологию компилячинья - вначале в директории своей программы делаю make и исправляю все ошибки, далее в директори uClinux make clean и затем уже make , такая цепочка получилась, потому что наверное не совсем верно составил makefile и make из директори программы и из uClinux дают рзные результаты

EXEC = uart
OBJS = uart.o
CFLAGS += -D__USE_BSD
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
romfs:
$(ROMFSINST) /bin/$(EXEC)
clean:
rm -f $(EXEC) *.gdb *.elf *.o