This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.
- From: "mexas at bristol dot ac dot uk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Aug 2009 11:15:00 -0000
- Subject: [Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.
- References: <bug-40959-17791@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from mexas at bristol dot ac dot uk 2009-08-11 11:14 -------
Some very basic analysis.
gcc43 builds on alpha, but not on ia64,
so I was trying to spot the difference.
# pwd
/usr/ports/lang/gcc43
# grep -C3 crtfastmath ./work/build/gcc/Makefile
# List of extra object files that should be compiled for this target machine.
# The rules for compiling them should be in the t-* file for the machine.
EXTRA_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o
so I had a search for t-* files on alpha and ia64, and it seems
some t-* files are missing from ia64:
#################
on alpha
#################
# uname -srm
FreeBSD 6.4-STABLE alpha
# pwd
/usr/ports/lang/gcc43
# find . -name "t-crt*"|grep alpha
./work/gcc-4.3-20090726/gcc/config/alpha/t-crtfm
./work/gcc-4.3-20090726/libgcc/config/alpha/t-crtfm
#
#################
on ia64
#################
# uname -srm
FreeBSD 8.0-BETA2 ia64
# pwd
/usr/ports/lang/gcc43
# find . -name "t-crt*" | grep ia64
#
so I copied the above 2 t-crtfm files from alpha to ia64
config directory and substituted "alpha" for "ia64":
# cat ./work/gcc-4.3-20090726/gcc/config/ia64/t-crtfm
EXTRA_PARTS += crtfastmath.o
$(T)crtfastmath.o: $(srcdir)/config/ia64/crtfastmath.c $(GCC_PASSES)
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -frandom-seed=gcc-crtfastmath -c \
-o $(T)crtfastmath.o $(srcdir)/config/ia64/crtfastmath.c
# cat ./work/gcc-4.3-20090726/libgcc/config/ia64/t-crtfm
# FIXME drow/20061228 - I have preserved this -frandom-seed option
# while migrating this rule from the GCC directory, but I do not
# know why it is necessary if no other crt file uses it.
crtfastmath.o: $(gcc_srcdir)/config/ia64/crtfastmath.c
$(gcc_compile) -frandom-seed=gcc-crtfastmath -c \
$(gcc_srcdir)/config/ia64/crtfastmath.c
#
But the error is still there.
gmake[4]: *** No rule to make target
`/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o',
needed by `T_TARGET'. Stop.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40959