diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2016-12-22 14:50:00 -0500 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2016-12-22 14:50:00 -0500 |
commit | 959d85b3414d56fc49fc111eb0338cd8fd8dd971 (patch) | |
tree | b652c1159354efc2d889a9838e9f2a96709a9a4b /newlib/Makefile.in | |
parent | 483e696049e6c254d30663b15c7a5df1b75ca735 (diff) | |
download | newlib-959d85b3414d56fc49fc111eb0338cd8fd8dd971.zip newlib-959d85b3414d56fc49fc111eb0338cd8fd8dd971.tar.gz newlib-959d85b3414d56fc49fc111eb0338cd8fd8dd971.tar.bz2 |
This is an attempt to fix the problem described here:
https://sourceware.org/ml/newlib/2016/msg01139.html
https://gcc.gnu.org/ml/gcc/2016-12/msg00010.html
There is no change if libtool is used.
Some run-time support libraries provided by GCC (e.g. libgomp) use
configure checks to detect certain features, e.g. availability of
thread-local storage. The configure script generates a test program and
tries to compile and link it. It should use target libraries and
startfiles of the build tree if available and not random ones from the
installation prefix for this procedure. The search directories
specified by -B are a bit special, see for_each_path() in gcc.c of the
GCC sources. First a search is performed on all search paths with the
multilib directory appended (if desired), then a second search is
performed on demand with the base directory only. For each multilib
there is a "newlib" subdirectory. This directory is specified by a -B
option for the support libraries. In order to find the newlib artifacts
(ctr0.o, libc.a, libg.a and libm.a) they must be located in a proper
multilib subdirectory withing the build directory.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Diffstat (limited to 'newlib/Makefile.in')
-rw-r--r-- | newlib/Makefile.in | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/newlib/Makefile.in b/newlib/Makefile.in index f0296b6..58b4acd 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -53,6 +53,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@HAVE_CRT0_TRUE@@HAVE_MULTISUBDIR_TRUE@@USE_LIBTOOL_FALSE@am__append_1 = $(BUILD_MULTISUBDIR)/$(CRT0) +@HAVE_MULTISUBDIR_TRUE@@USE_LIBTOOL_FALSE@am__append_2 = $(BUILD_MULTISUBDIR)/libc.a $(BUILD_MULTISUBDIR)/libm.a subdir = . DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/configure \ @@ -380,13 +382,14 @@ SUBDIRS = libc libm \ tooldir = $(exec_prefix)/$(host_alias) toollibdir = $(tooldir)/lib$(MULTISUBDIR) AR_FLAGS = rc +noinst_DATA = stmp-targ-include $(am__append_1) $(am__append_2) @USE_LIBTOOL_TRUE@toollib_LTLIBRARIES = libm.la \ @USE_LIBTOOL_TRUE@ libc.la @USE_LIBTOOL_FALSE@toollib_LIBRARIES = libm.a \ @USE_LIBTOOL_FALSE@ libc.a -noinst_DATA = stmp-targ-include +@HAVE_MULTISUBDIR_TRUE@@USE_LIBTOOL_FALSE@BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR) toollib_DATA = $(CRT0) $(CRT1) # The functions ldexp, frexp and modf are traditionally supplied in @@ -930,21 +933,36 @@ uninstall-am: uninstall-toollibDATA uninstall-toollibLIBRARIES \ @USE_LIBTOOL_FALSE@libm.a: libm/libm.a @USE_LIBTOOL_FALSE@ rm -f $@ -@USE_LIBTOOL_FALSE@ ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@ +@USE_LIBTOOL_FALSE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ @USE_LIBTOOL_FALSE@libm/libm.a: ; @true +@HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR): +@HAVE_MULTISUBDIR_TRUE@ $(MKDIR_P) $@ + +@HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/crt0.o: $(CRT0_DIR)$(CRT0) $(BUILD_MULTISUBDIR) +@HAVE_MULTISUBDIR_TRUE@ rm -f $@ +@HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ + +@HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/libc.a: libc.a $(BUILD_MULTISUBDIR) +@HAVE_MULTISUBDIR_TRUE@ rm -f $@ $(BUILD_MULTISUBDIR)/libg.a +@HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ +@HAVE_MULTISUBDIR_TRUE@ ln libg.a $(BUILD_MULTISUBDIR)/libg.a >/dev/null 2>/dev/null || \ +@HAVE_MULTISUBDIR_TRUE@ cp libg.a $(BUILD_MULTISUBDIR)/libg.a + +@HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/libm.a: libm.a $(BUILD_MULTISUBDIR) +@HAVE_MULTISUBDIR_TRUE@ rm -f $@ +@HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ + crt0.o: $(CRT0_DIR)$(CRT0) rm -f $@ - ln $(CRT0_DIR)$(CRT0) $@ >/dev/null 2>/dev/null \ - || cp $(CRT0_DIR)$(CRT0) $@ + ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(CRT0_DIR)$(CRT0): ; @true crt1.o: $(CRT1_DIR)$(CRT1) rm -f $@ - ln $< $@ >/dev/null 2>/dev/null \ - || cp $< $@ + ln $< $@ >/dev/null 2>/dev/null || cp $< $@ $(CRT1_DIR)$(CRT1): ; @true |