Assembler error when trying to build GCC
Alex Austin
alex.austin@spectrumdsi.com
Mon Sep 15 18:17:00 GMT 2008
/cygdrive/c/Projects/toolchains/gnuarm/gcc-build/./gcc/xgcc -B/cygdrive/c/Projects/toolchains/gnuarm/gcc-build/./gcc/ -B/usr/local/toolchains/arm-elf/bin/ -B/usr/local/toolchains/arm-elf/lib/ -isystem /usr/local/toolchains/arm-elf/include -isystem /usr/local/toolchains/arm-elf/sys-include -O2 -O2 -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -Dinhibit_libc -fno-inline -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc-4.2.0/gcc -I../../gcc-4.2.0/gcc/. -I../../gcc-4.2.0/gcc/../include -I../../gcc-4.2.0/gcc/../libcpp/include -I../../gcc-4.2.0/gcc/../libdecnumber -I../libdecnumber -fleading-underscore -DL_udivsi3 -xassembler-with-cpp -c ../../gcc-4.2.0/gcc/config/arm/lib1funcs.asm -o libgcc/under/_udivsi3.o
../../gcc-4.2.0/gcc/config/arm/lib1funcs.asm: Assembler messages:
../../gcc-4.2.0/gcc/config/arm/lib1funcs.asm:754: Error: undefined symbol `__udivsi3' in operation
../../gcc-4.2.0/gcc/config/arm/lib1funcs.asm:754: Error: can't resolve `.text' {.text section} - `__udivsi3' {*UND* section}
make[2]: *** [libgcc/under/_udivsi3.o] Error 1
make[2]: Leaving directory `/cygdrive/c/Projects/toolchains/gnuarm/gcc-build/gcc'
make[1]: *** [stmp-multilib] Error 2
make[1]: Leaving directory `/cygdrive/c/Projects/toolchains/gnuarm/gcc-build/gcc'
make: *** [all-gcc] Error 2
Configure line is:
../gcc-4.2.0/configure --target=arm-elf --prefix=/usr/local/toolchains --enable-interwork --enable-multilib --enable-languages="c,c++,objc,obj-c++,java" --with-newlib --with-headers=../newlib-1.15.0/newlib/libc/include --with-cpu=arm946e-s --with-fpu=fpa
gcc/config/t-arm-elf:
=============================================================================================
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
echo '#ifndef __ARMEB__' >> fp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
echo '#endif' >> fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
echo '#ifndef __ARMEB__' > dp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c
echo '#endif' >> dp-bit.c
cat $(srcdir)/config/fp-bit.c >> dp-bit.c
MULTILIB_OPTIONS = marm/mthumb
MULTILIB_DIRNAMES = arm thumb
MULTILIB_EXCEPTIONS =
MULTILIB_OPTIONS += mlittle-endian/mbig-endian
MULTILIB_DIRNAMES += le be
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
MULTILIB_OPTIONS += mhard-float/msoft-float
MULTILIB_DIRNAMES += fpu soft
MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
# MULTILIB_OPTIONS += mapcs-32/mapcs-26
# MULTILIB_DIRNAMES += 32bit 26bit
# MULTILIB_EXCEPTIONS += *mthumb/*mapcs-26*
MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES += normal interwork
MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork*
MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
MULTILIB_DIRNAMES += elf under
MULTILIB_OPTIONS += mcpu=arm7
MULTILIB_DIRNAMES += nofmult
MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*
# Note: the multilib_exceptions matches both -mthumb and
# -mthumb-interwork
#
# We have to match all the arm cpu variants which do not have the
# multiply instruction and treat them as if the user had specified
# -mcpu=arm7. Note that in the following the ? is interpreted as
# an = for the purposes of matching command line options.
# FIXME: There ought to be a better way to do this.
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
# If EXTRA_MULTILIB_PARTS is not defined above then define EXTRA_PARTS here
# EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm
===================================================================================
Any ideas what the error could be?
Thanks,
- Alex
More information about the Gcc-help
mailing list