uclibc supports cross-compiling ncurses?
Juan Lablanca
juan.lablanca at yacoub.de
Fri Sep 23 13:37:50 UTC 2005
Taking into acount Steven's advice, I downloaded and compiled
sucessfully buildroot (as explained on
http://buildroot.uclibc.org/buildroot.html) with the following
configuration:
-Packet: ncurses
-Target Architecture: arm
-Target Processor type: generic arm
-Target Processor Endianess: Little Endian
-MMU: no
and i set "no" the rest of the options.
by the way, I had to fix a bug for this configuration, rebuilding busybox.
I got the files under /package/ncurses, ncurses.mk and Config.in from
http://www.uclibc.org/cgi-bin/cvsweb/trunk/buildroot/package/ncurses/.
Then i tried to compile my ncurses-program with this new created
compiler (arm-linux-gcc), but it failed by linking since all the ncurses
functions can not be found.
The makefile that i used to compile the ncurses program is as follows:
******************************************************************************************************
CROSSCOMPILE:=
/targets/LxNETES/buildroot/build_arm/staging_dir/bin/arm-linux-
CC := ${CROSSCOMPILE}gcc
LD := ${CROSSCOMPILE}gcc
RM := rm -f
SRC_DIR := ${PWD}/src
INC_DIR := ${PWD}/include
BUILD_DIR := ${PWD}/build
BIN_DIR := ${PWD}/bin
VPATH := ${SRC_DIR}:${BUILD_DIR}
MAKEFILE := ${PWD}/Makefile
DEP_FILE := ${PWD}/.depend
UCLIBC := /targets/LxNETES/buildroot/toolchain_build_arm/uClibc
INCLUDES := -I${INC_DIR} -I${UCLIBC}/include -I${UCLIBC}/libm
-I${UCLIBC}/libc
INCLUDES +=
-I/targets/LxNETES/buildroot/build_arm/ncurses-5.4/include
STDFLAGS := -g -Wall -Wstrict-prototypes -Wno-trigraphs -O2
-fno-strict-aliasing -fno-common -pipe
STDFLAGS += -W -ansi -D_SVID_SOURCE -D_XOPEN_SOURCE
STDFLAGS += -fno-builtin -DNO_MM -mapcs-32 -mtune=arm7tdmi
-nostdinc -iwithprefix include
CFLAGS := ${STDFLAGS} ${DEFINES} ${INCLUDES}
LFLAGS := -s -static
LFLAGS += -L${UCLIBC}/lib -L${UCLIBC}/libc
-L/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib
LFLAGS +=
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crt0.o
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crti.o
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crtn.o
LFLAGS += -nostartfiles -W -Wall -Ws -fno-builtin
-Wl,-elf2flt -lform -lmenu -lncurses
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libpanel.so.5.4
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libmenu.so.5.4
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libncurses.so.5.4
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crtn.o -lform -lmenu
-lpanel -lncurses
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libpanel.a
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libmenu.a
/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib/libncurses.a
SRC_OBJS := main19.c shm_init.c shm_read.c shm_write.c shm_remove.c
MOD_OBJS := ${SRC_OBJS:%.c=${BUILD_DIR}/%.o}
TARGET := ${BIN_DIR}/main19
all: ${TARGET}
${TARGET}: ${MOD_OBJS}
${LD} ${LFLAGS} $? -o ${TARGET}
clean: ${MAKEFILE}
${RM} ${MOD_OBJS} ${TARGET}
dep: ${DEP_FILE}
${DEP_FILE}: ${SRC_OBJS}
${CC} -MM ${CFLAGS} $< > ${DEP_FILE}
${BUILD_DIR}/%.o: %.c ${MAKEFILE}
${CC} ${CFLAGS} -c $< -o $@
******************************************************************************************************
A part of the compiling output is:
/targets/LxNETES/buildroot/build_arm/staging_dir/bin/arm-linux-gcc -s
-static -L/targets/LxNETES/buildroot/toolchain_build_arm/uClibc/lib
-L/targets/LxNETES/buildroot/toolchain_build_arm/uClibc/libc
-L/targets/LxNETES/buildroot/build_arm/ncurses-5.4/lib
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crt0.o
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crti.o
/usr/local/LxNETES-2.3/arm-elf/uClibc-0.9.19/lib/crtn.o -nostartfiles -W
-Wall -Ws -fno-builtin -Wl,-elf2flt -lform -lmenu -lncurses
/home/juan/ucterminal/build/main19.o
/home/juan/ucterminal/build/shm_init.o
/home/juan/ucterminal/build/shm_read.o
/home/juan/ucterminal/build/shm_write.o
/home/juan/ucterminal/build/shm_remove.o -o
/home/juan/ucterminal/bin/main19
/targets/LxNETES/buildroot/build_arm/staging_dir/bin-ccache/../lib/gcc/arm-linux-uclibc/3.4.2/../../../../arm-linux-uclibc/bin/ld:
warning: cannot find entry symbol lf2flt; defaulting to 000080c0
/home/juan/ucterminal/build/main19.o: In function `create_menu':
/home/juan/ucterminal/src/main19.c:854: undefined reference to `new_menu'
/home/juan/ucterminal/src/main19.c:857: undefined reference to `newwin'
/home/juan/ucterminal/src/main19.c:858: undefined reference to `keypad'
/home/juan/ucterminal/src/main19.c:861: undefined reference to
`set_menu_win'
/home/juan/ucterminal/src/main19.c:862: undefined reference to
`set_menu_format'
...
Right now what i am wondering is whether arm-linux-elf supports ncurses.
Could you guys please give me a hand to solve that?
Best regards,
Juanfran.
More information about the uClibc
mailing list