12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- From 7f2fd574646cb5ecbbc09372a2d8580ab72ec158 Mon Sep 17 00:00:00 2001
- From: Khem Raj <raj.khem@gmail.com>
- Date: Wed, 18 Mar 2015 00:49:28 +0000
- Subject: [PATCH] eglibc: Help bootstrap cross toolchain
- Taken from EGLIBC, r1484 + r1525
- 2007-02-20 Jim Blandy <jimb@codesourcery.com>
- * Makefile (install-headers): Preserve old behavior: depend on
- $(inst_includedir)/gnu/stubs.h only if install-bootstrap-headers
- is set; otherwise, place gnu/stubs.h on the 'install-others' list.
- 2007-02-16 Jim Blandy <jimb@codesourcery.com>
- * Makefile: Amend make install-headers to install everything
- necessary for building a cross-compiler. Install gnu/stubs.h as
- part of 'install-headers', not 'install-others'.
- If install-bootstrap-headers is 'yes', install a dummy copy of
- gnu/stubs.h, instead of computing the real thing.
- * include/stubs-bootstrap.h: New file.
- Upstream-Status: Pending
- Signed-off-by: Khem Raj <raj.khem@gmail.com>
- ---
- Makefile | 22 +++++++++++++++++++++-
- include/stubs-bootstrap.h | 12 ++++++++++++
- 2 files changed, 33 insertions(+), 1 deletion(-)
- create mode 100644 include/stubs-bootstrap.h
- diff --git a/Makefile b/Makefile
- index 179dd478ff..55cfb740bf 100644
- --- a/Makefile
- +++ b/Makefile
- @@ -79,9 +79,18 @@ subdir-dirs = include
- vpath %.h $(subdir-dirs)
-
- # What to install.
- -install-others = $(inst_includedir)/gnu/stubs.h
- install-bin-script =
-
- +# 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
- +else
- +install-others = $(inst_includedir)/gnu/stubs.h
- +endif
- +
- ifeq (yes,$(build-shared))
- headers += gnu/lib-names.h
- endif
- @@ -421,6 +430,16 @@ others: $(common-objpfx)testrun.sh $(common-objpfx)debugglibc.sh
-
- subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs)
-
- +# gnu/stubs.h depends (via the subdir 'stubs' targets) on all the .o
- +# files in EGLIBC. For bootstrapping a GCC/EGLIBC pair, an empty
- +# gnu/stubs.h is good enough.
- +ifeq ($(install-bootstrap-headers),yes)
- +$(inst_includedir)/gnu/stubs.h: include/stubs-bootstrap.h $(+force)
- + $(make-target-directory)
- + $(INSTALL_DATA) $< $@
- +
- +installed-stubs =
- +else
- ifndef abi-variants
- installed-stubs = $(inst_includedir)/gnu/stubs.h
- else
- @@ -447,6 +466,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force)
-
- install-others-nosubdir: $(installed-stubs)
- endif
- +endif
-
-
- # Since stubs.h is never needed when building the library, we simplify the
- diff --git a/include/stubs-bootstrap.h b/include/stubs-bootstrap.h
- new file mode 100644
- index 0000000000..1d2b669aff
- --- /dev/null
- +++ b/include/stubs-bootstrap.h
- @@ -0,0 +1,12 @@
- +/* Placeholder stubs.h file for bootstrapping.
- +
- + When bootstrapping a GCC/EGLIBC pair, GCC requires that the EGLIBC
- + headers be installed, but we can't fully build EGLIBC 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
- + EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but
- + an empty stubs.h like this will do fine for GCC. */
|