install-others-nosubdir: $(installed-stubs)
endif
+# If we're bootstrapping, install a dummy gnu/stubs.h along with the
+# other headers, so 'make install-headers' produces a useable include
+# tree. Otherwise, install gnu/stubs.h later, after the rest of the
+# build is done.
+ifeq ($(install-bootstrap-headers),yes)
+install-headers: $(inst_includedir)/gnu/stubs.h $(installed-stubs)
+endif
# Since stubs.h is never needed when building the library, we simplify the
# hairy installation process by producing it in place only as the last part
# iterates over all the subdirs; subdir_install in each subdir depends on
# the subdir's stubs file. Having more direct dependencies would result in
# extra iterations over the list for subdirs and many recursive makes.
+ifeq ($(install-bootstrap-headers),yes)
+# gnu/stubs.h depends (via the subdir 'stubs' targets) on all the .o
+# files in GLIBC. For bootstrapping a GCC/GLIBC pair, an empty
+# gnu/stubs.h is good enough.
+$(installed-stubs): include/stubs-bootstrap.h $(+force)
+ $(make-target-directory)
+ $(INSTALL_DATA) $< $@
+else
$(installed-stubs): include/stubs-prologue.h subdir_install
$(make-target-directory)
@rm -f $(objpfx)stubs.h
then echo 'stubs.h unchanged'; \
else $(INSTALL_DATA) $(objpfx)stubs.h $@; fi
rm -f $(objpfx)stubs.h
+endif
\f
# This makes the Info or DVI file of the documentation from the Texinfo source.
.PHONY: info dvi pdf html
--- /dev/null
+/* Placeholder stubs.h file for bootstrapping.
+
+ When bootstrapping a GCC/GLIBC pair, GCC requires that the GLIBC
+ headers be installed, but we can't fully build GLIBC without that
+ GCC. So we run the command:
+
+ make install-headers install-bootstrap-headers=yes
+
+ to install the headers GCC needs, but avoid building certain
+ difficult headers. The <gnu/stubs.h> header depends, via the
+ GLIBC subdir 'stubs' make targets, on every .o file in GLIBC, but
+ an empty stubs.h like this will do fine for GCC. */