This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Final intermodule patch
- From: Richard Henderson <rth at redhat dot com>
- To: Geoffrey Keating <gkeating at apple dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 11 Jul 2003 11:02:20 -0700
- Subject: Re: Final intermodule patch
- References: <200307110829.h6B8T2aK002111@keatge.apple.com>
It doesn't bootstrap with alpha-linux.
First problem is Makefile related -- can't use -onestep at stage1.
Possible patch for that follows, but I don't know if we can rely
on nested variable expansion.
Second problem is that crtbegin.o is incorrectly built. This stems
from __attribute__((used)) not implying that the C symbol can't be
mangled with ".N", because the use is hidden in assembly somewhere.
(See alpha/elf.h CRT_CALL_STATIC_FUNCTION.) I can work around this
by librally sprinking __asm__ across crtstuff, but I don't think
that's a very good solution. Further, I think we'll run into this
same problem elsewhere with at least glibc and the linux kernel.
Thoughts?
r~
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.1112
diff -c -p -d -u -r1.1112 Makefile.in
--- Makefile.in 11 Jul 2003 08:33:01 -0000 1.1112
+++ Makefile.in 11 Jul 2003 18:00:50 -0000
@@ -105,6 +105,8 @@ LANGUAGES = c gcov$(exeext) gcov-dump$(e
# Selection of languages to be made during stage1 build.
BOOT_LANGUAGES = c @all_boot_languages@
+onestep = @onestep@
+
# Various ways of specifying flags for compilations:
# CFLAGS is for the user to override to, e.g., do a cross build with -O2.
# For recursive bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS
@@ -1034,9 +1036,9 @@ rest.cross: $(LIBGCC) specs
compilations: $(BACKEND)
# Like libcpp.a, this archive is strictly for the host.
-libbackend.a: $(OBJS@onestep@)
+libbackend.a: $(OBJS$(onestep))
-rm -rf libbackend.a
- $(AR) $(AR_FLAGS) libbackend.a $(OBJS@onestep@)
+ $(AR) $(AR_FLAGS) libbackend.a $(OBJS$(onestep))
-$(RANLIB) libbackend.a
# We call this executable `xgcc' rather than `gcc'
@@ -3497,7 +3499,7 @@ stage1_build:
$(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
CFLAGS="$(STAGE1_CFLAGS)" MAKEINFO="$(MAKEINFO)" \
GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
- MAKEINFOFLAGS="$(MAKEINFOFLAGS)" COVERAGE_FLAGS=
+ MAKEINFOFLAGS="$(MAKEINFOFLAGS)" COVERAGE_FLAGS= onestep=
$(STAMP) stage1_build
echo stage1_build > stage_last