Hi, has anyone successfully built an arm cross compiler yet?
GCC: 4.4.5 GDC: Latest D2 (r357)

I always get the following error:
-----------------------------------------------------------------
i686-pc-linux-gnu-gcc -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -DHAVE_CONFIG_H -I. -Id -I../../gcc-4.4.5-build/gcc -I../../gcc-4.4.5-build/gcc/d -I../../gcc-4.4.5-build/gcc/../include -I../../gcc-4.4.5-build/gcc/../libcpp/include -I../../gcc-4.4.5-build/gcc/../libdecnumber -I../../gcc-4.4.5-build/gcc/../libdecnumber/dpd -I../libdecnumber -I/include -DCLOOG_PPL_BACKEND -I. -Id -I../../gcc-4.4.5-build/gcc -I../../gcc-4.4.5-build/gcc/d -I../../gcc-4.4.5-build/gcc/../include -I../../gcc-4.4.5-build/gcc/../libcpp/include -I../../gcc-4.4.5-build/gcc/../libdecnumber -I../../gcc-4.4.5-build/gcc/../libdecnumber/dpd -I../libdecnumber -I/include -DCLOOG_PPL_BACKEND -I../../gcc-4.4.5-build/gcc/d -I../../gcc-4.4.5-build/gcc/d/dmd2 -Id -D_GNU_SOURCE=1 -D_DH=1 -DD_NO_TRAMPOLINES=1 -DELFOBJ=1 -DLIBPHOBOS=\"-lgphobos2\" -DLIBPHOBOS_PROFILE=\"-lgphobos2\" -DLIBDRUNTIME=\"-lgdruntime\" -DLIBDRUNTIME_PROFILE=\"-lgdruntime\" -DD_GCC_VER=44 -Wno-missing-braces -fmessage-length=0 -o d/d-c-stubs.cglue.o -c ../../gcc-4.4.5-build/gcc/d/d-c-stubs.c i686-pc-linux-gnu-g++ -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -I. -I. -I../../gcc-4.4.5-build/gcc -I../../gcc-4.4.5-build/gcc/. -I../../gcc-4.4.5-build/gcc/../include -I../../gcc-4.4.5-build/gcc/../libcpp/include -I../../gcc-4.4.5-build/gcc/../libdecnumber -I../../gcc-4.4.5-build/gcc/../libdecnumber/dpd -I../libdecnumber -I/include -DCLOOG_PPL_BACKEND -I. -I. -I../../gcc-4.4.5-build/gcc -I../../gcc-4.4.5-build/gcc/. -I../../gcc-4.4.5-build/gcc/../include -I../../gcc-4.4.5-build/gcc/../libcpp/include -I../../gcc-4.4.5-build/gcc/../libdecnumber -I../../gcc-4.4.5-build/gcc/../libdecnumber/dpd -I../libdecnumber -I/include -DCLOOG_PPL_BACKEND -I../../gcc-4.4.5-build/gcc/d -I../../gcc-4.4.5-build/gcc/d/dmd2 -Id -D_GNU_SOURCE=1 -D_DH=1 -DD_NO_TRAMPOLINES=1 -DELFOBJ=1 -DLIBPHOBOS=\"-lgphobos2\" -DLIBPHOBOS_PROFILE=\"-lgphobos2\" -DLIBDRUNTIME=\"-lgdruntime\" -DLIBDRUNTIME_PROFILE=\"-lgdruntime\" -DD_GCC_VER=44 -Wno-missing-braces -fmessage-length=0 -Wl,--hash-style=gnu -Wl,--as-needed -o cc1d \ d/id.gen.o d/impcnvtab.gen.o attribs.o cppdefault.o stub-objc.o prefix.o arm-c.o gimplify.o tree-iterator.o d/aav.dmd.o d/access.dmd.o d/aliasthis.dmd.o d/array.dmd.o d/arrayop.dmd.o d/async.dmd.o d/attrib.dmd.o d/cast.dmd.o d/class.dmd.o d/clone.dmd.o d/cond.dmd.o d/constfold.dmd.o d/dchar.dmd.o d/declaration.dmd.o d/delegatize.dmd.o d/doc.dmd.o d/dsymbol.dmd.o d/dump.dmd.o d/entity.dmd.o d/enum.dmd.o d/expression.dmd.o d/func.dmd.o d/gnuc.dmd.o d/hdrgen.dmd.o d/html.dmd.o d/identifier.dmd.o d/imphint.dmd.o d/import.dmd.o d/init.dmd.o d/inline.dmd.o d/interpret.dmd.o d/json.dmd.o d/lexer.dmd.o d/lstring.dmd.o d/macro.dmd.o d/mangle.dmd.o d/mars.dmd.o d/mtype.dmd.o d/module.dmd.o d/opover.dmd.o d/optimize.dmd.o d/parse.dmd.o d/rmem.dmd.o d/root.dmd.o d/scope.dmd.o d/speller.dmd.o d/statement.dmd.o d/staticassert.dmd.o d/stringtable.dmd.o d/struct.dmd.o d/template.dmd.o d/todt.dmd.o d/toobj.dmd.o d/typinf.dmd.o d/unialpha.dmd.o d/utf.dmd.o d/unittests.dmd.o d/version.dmd.o d/builtin.dmd.o d/traits.dmd.o d/d-lang.glue.o d/d-decls.glue.o d/d-codegen.glue.o d/d-objfile.glue.o d/d-irstate.glue.o d/d-glue.glue.o d/d-convert.glue.o d/d-todt.glue.o d/d-gcc-real.glue.o d/d-gt.cglue.o d/d-builtins.cglue.o d/d-misc.cglue.o d/d-builtins2.glue.o d/symbol.glue.o d/asmstmt.glue.o d/dt.glue.o d/d-cppmngl.glue.o d/d-c-stubs.cglue.o main.o libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a -L/lib -lcloog -lmpfr -lgmp ../libcpp/libcpp.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
arm-c.o: In function `arm_output_c_attributes':
arm-c.c:(.text+0x7): undefined reference to `c_global_trees'
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [cc1d] Fehler 1
make[1]: Leaving directory `/var/abs/local/cross-arm-elf-gdc2-hg/src/gcc-build/gcc'
make: *** [all-gcc] Fehler 2
-----------------------------------------------------------------
(Sorry about the German error messages, forgot to use LANG=C but I think the most important part is in English anyway)

As the error message states the c_global_trees symbol is not linked in. It's used in arm-c.c and defined in c-common.c. Just linking against c-common.o isn't enough though as c-common needs more object files to be linked against.

This seems to be a D frontend related problem, building a gcc c cross compiler works. I tried building a native compiler on the arm machine and that worked (but it's painfully slow), so it's likely a cross compiler only problem.

I used the following script (custom Archlinux PKGBUILD, based on the cross-arm-elf-gcc-base and gdc2-hg PKGBUILDS):
http://pastebin.ca/1992505

--
Johannes Pfau

Reply via email to