PR other/46020
* configure.ac (CXX_FOR_TARGET): Add -funconfigured-libstdc++-v3. * Makefile.def (CXX_FOR_TARGET): Removed from flags_to_pass. * Makefile.tpl (CXX_FOR_TARGET_FLAG_TO_PASS): New. (BASE_FLAGS_TO_PASS): Use it. * configure: Rebuilt. * Makefile.in: Rebuilt.
This commit is contained in:
parent
35515841e0
commit
87cda2cf3f
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2010-11-26 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR other/46020
|
||||
* configure.ac (CXX_FOR_TARGET): Add -funconfigured-libstdc++-v3.
|
||||
* Makefile.def (CXX_FOR_TARGET): Removed from flags_to_pass.
|
||||
* Makefile.tpl (CXX_FOR_TARGET_FLAG_TO_PASS): New.
|
||||
(BASE_FLAGS_TO_PASS): Use it.
|
||||
* configure: Rebuilt.
|
||||
* Makefile.in: Rebuilt.
|
||||
|
||||
2010-11-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR binutils/12258
|
||||
|
@ -282,7 +282,6 @@ flags_to_pass = { flag= AS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= CC_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= CFLAGS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= CPPFLAGS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= CXX_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
|
||||
flags_to_pass = { flag= FLAGS_FOR_TARGET ; };
|
||||
|
22
Makefile.in
22
Makefile.in
@ -640,6 +640,26 @@ HOST_LIB_PATH_libelf = \
|
||||
@endif libelf
|
||||
|
||||
|
||||
CXX_FOR_TARGET_FLAG_TO_PASS = \
|
||||
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"
|
||||
@if target-libstdc++-v3
|
||||
# CXX_FOR_TARGET is tricky to get right for target libs that require a
|
||||
# functional C++ compiler. When we recurse, if we expand
|
||||
# CXX_FOR_TARGET before configuring libstdc++-v3, we won't get
|
||||
# libstdc++ include flags from the script. Instead, we get an
|
||||
# -funconfigured-* word, so that we'll get errors if this invalid C++
|
||||
# command line is used for anything, but also so that we can use the
|
||||
# word to decide whether or not to pass on this CXX_FOR_TARGET. If we
|
||||
# don't pass it on, sub-make will use the default definition, that
|
||||
# re-expands it at the time of use, so we'll get it right when we need
|
||||
# it. One potential exception is the expansion of CXX_FOR_TARGET
|
||||
# passed down as part of CXX within TARGET_FLAGS, but this wouldn't
|
||||
# really work, for C++ host programs can't depend on the current-stage
|
||||
# C++ target library.
|
||||
CXX_FOR_TARGET_FLAG_TO_PASS = \
|
||||
$(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi)
|
||||
@endif target-libstdc++-v3
|
||||
|
||||
# Flags to pass down to all sub-makes.
|
||||
BASE_FLAGS_TO_PASS = \
|
||||
"DESTDIR=$(DESTDIR)" \
|
||||
@ -707,7 +727,6 @@ BASE_FLAGS_TO_PASS = \
|
||||
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
|
||||
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||
"CPPFLAGS_FOR_TARGET=$(CPPFLAGS_FOR_TARGET)" \
|
||||
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
|
||||
"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
|
||||
"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
|
||||
"FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \
|
||||
@ -747,6 +766,7 @@ BASE_FLAGS_TO_PASS = \
|
||||
"STAGEfeedback_CFLAGS=$(STAGEfeedback_CFLAGS)" \
|
||||
"STAGEfeedback_CXXFLAGS=$(STAGEfeedback_CXXFLAGS)" \
|
||||
"STAGEfeedback_TFLAGS=$(STAGEfeedback_TFLAGS)" \
|
||||
$(CXX_FOR_TARGET_FLAG_TO_PASS) \
|
||||
"TFLAGS=$(TFLAGS)" \
|
||||
"CONFIG_SHELL=$(SHELL)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)"
|
||||
|
21
Makefile.tpl
21
Makefile.tpl
@ -551,6 +551,26 @@ HOST_LIB_PATH_[+module+] = \
|
||||
@endif [+module+]
|
||||
[+ ENDIF lib_path +][+ ENDFOR host_modules +]
|
||||
|
||||
CXX_FOR_TARGET_FLAG_TO_PASS = \
|
||||
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"
|
||||
@if target-libstdc++-v3
|
||||
# CXX_FOR_TARGET is tricky to get right for target libs that require a
|
||||
# functional C++ compiler. When we recurse, if we expand
|
||||
# CXX_FOR_TARGET before configuring libstdc++-v3, we won't get
|
||||
# libstdc++ include flags from the script. Instead, we get an
|
||||
# -funconfigured-* word, so that we'll get errors if this invalid C++
|
||||
# command line is used for anything, but also so that we can use the
|
||||
# word to decide whether or not to pass on this CXX_FOR_TARGET. If we
|
||||
# don't pass it on, sub-make will use the default definition, that
|
||||
# re-expands it at the time of use, so we'll get it right when we need
|
||||
# it. One potential exception is the expansion of CXX_FOR_TARGET
|
||||
# passed down as part of CXX within TARGET_FLAGS, but this wouldn't
|
||||
# really work, for C++ host programs can't depend on the current-stage
|
||||
# C++ target library.
|
||||
CXX_FOR_TARGET_FLAG_TO_PASS = \
|
||||
$(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi)
|
||||
@endif target-libstdc++-v3
|
||||
|
||||
# Flags to pass down to all sub-makes.
|
||||
BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF optional +] \
|
||||
"`echo '[+flag+]=$([+flag+])' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"[+ ELSE optional +] \
|
||||
@ -558,6 +578,7 @@ BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF optional +] \
|
||||
"STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \
|
||||
"STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \
|
||||
"STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \
|
||||
$(CXX_FOR_TARGET_FLAG_TO_PASS) \
|
||||
"TFLAGS=$(TFLAGS)" \
|
||||
"CONFIG_SHELL=$(SHELL)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)"
|
||||
|
2
configure
vendored
2
configure
vendored
@ -13363,7 +13363,7 @@ else
|
||||
esac
|
||||
if test $ok = yes; then
|
||||
# An in-tree tool is available and we can use it
|
||||
CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
|
||||
CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: just compiled" >&5
|
||||
$as_echo "just compiled" >&6; }
|
||||
elif expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then
|
||||
|
@ -3236,7 +3236,7 @@ GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
|
||||
GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
|
||||
GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
|
||||
GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
|
||||
[gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
|
||||
[gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
|
||||
c++)
|
||||
GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
|
||||
[gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
|
||||
|
Loading…
Reference in New Issue
Block a user