compare-debug: Drop LTO sections.

contrib/ChangeLog:
* compare-debug: Drop LTO sections.
config/ChangeLog:
* bootstrap-lto.mk: New.
gcc/ChangeLog:
* doc/install.texi: Document bootstrap-lto.

From-SVN: r161061
This commit is contained in:
Alexandre Oliva 2010-06-21 00:23:06 +00:00 committed by Alexandre Oliva
parent 6122686d13
commit 339325b303
6 changed files with 41 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2010-06-20 Alexandre Oliva <aoliva@redhat.com>
* bootstrap-lto.mk: New.
2010-06-10 Paolo Bonzini <bonzini@gnu.org> 2010-06-10 Paolo Bonzini <bonzini@gnu.org>
* override.m4: Remove obsolete (<2.64) definitions. * override.m4: Remove obsolete (<2.64) definitions.

8
config/bootstrap-lto.mk Normal file
View File

@ -0,0 +1,8 @@
# This option enables LTO for stage2 and stage3. It requires lto to
# be enabled for stage1 with --enable-stage1-languages.
STAGE2_CFLAGS += -flto
STAGE3_CFLAGS += -flto
# Ada fails to build with LTO, turn it off for now.
BOOT_ADAFLAGS += -fno-lto

View File

@ -1,3 +1,7 @@
2010-06-20 Alexandre Oliva <aoliva@redhat.com>
* compare-debug: Drop LTO sections.
2010-06-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 2010-06-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* gcc_update: Support updating a git clone. * gcc_update: Support updating a git clone.

View File

@ -100,9 +100,11 @@ else
done done
# If we found .eh_frame in one but not the other, or if we could not # If we found .eh_frame in one but not the other, or if we could not
# find a command to tell, try to strip off the .eh_frame section # find a command to tell, or if there are LTO sections, try to strip
# from both. # off the .eh_frame and LTO sections from both.
if test "x$cmp1" != "x$cmp2" || test "x$cmd" = "x"; then if test "x$cmp1" != "x$cmp2" || test "x$cmd" = "x" ||
$cmd --section-headers "$1.$suf1" | grep '.gnu.lto_' > /dev/null ||
$cmd --section-headers "$2.$suf2" | grep '.gnu.lto_' > /dev/null ; then
suf3=$suf1. suf3=$suf1.
while test -f "$1.$suf3"; do while test -f "$1.$suf3"; do
suf3=$suf3. suf3=$suf3.
@ -115,21 +117,27 @@ else
trap 'rm -f "$1.$suf1" "$2.$suf2" "$1.$suf3" "$2.$suf4"' 0 1 2 15 trap 'rm -f "$1.$suf1" "$2.$suf2" "$1.$suf3" "$2.$suf4"' 0 1 2 15
echo stripping off .eh_frame, then retrying >&2 echo stripping off .eh_frame and LTO sections, then retrying >&2
seclist=".eh_frame .rel.eh_frame .rela.eh_frame"
if test "x$cmd" != "x"; then
seclist="$seclist "`{ $cmd --section-headers "$1.$suf1"; $cmd --section-headers "$2.$suf2"; } | sed -n 's,.* \(\.gnu\.lto_[^ ]*\).*,\1,p' | sort -u`
fi
rsopts=`for sec in $seclist; do echo " --remove-section $sec"; done`
if (objcopy -v) 2>&1 | grep ' --remove-section' > /dev/null; then if (objcopy -v) 2>&1 | grep ' --remove-section' > /dev/null; then
objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf1" "$1.$suf3" objcopy $rsopts "$1.$suf1" "$1.$suf3"
mv "$1.$suf3" "$1.$suf1" mv "$1.$suf3" "$1.$suf1"
objcopy --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf2" "$2.$suf4" objcopy $rsopts "$2.$suf2" "$2.$suf4"
mv "$2.$suf4" "$2.$suf2" mv "$2.$suf4" "$2.$suf2"
elif (strip --help) 2>&1 | grep ' --remove-section' > /dev/null; then elif (strip --help) 2>&1 | grep ' --remove-section' > /dev/null; then
cp "$1.$suf1" "$1.$suf3" cp "$1.$suf1" "$1.$suf3"
strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$1.$suf3" strip $rsopts "$1.$suf3"
mv "$1.$suf3" "$1.$suf1" mv "$1.$suf3" "$1.$suf1"
cp "$2.$suf2" "$2.$suf4" cp "$2.$suf2" "$2.$suf4"
strip --remove-section .eh_frame --remove-section .rel.eh_frame --remove-section .rela.eh_frame "$2.$suf4" strip $rsopts "$2.$suf4"
mv "$2.$suf4" "$2.$suf2" mv "$2.$suf4" "$2.$suf2"
else else
echo failed to strip off .eh_frame >&2 echo failed to strip off .eh_frame >&2

View File

@ -1,3 +1,7 @@
2010-06-20 Alexandre Oliva <aoliva@redhat.com>
* doc/install.texi: Document bootstrap-lto.
2010-06-20 Alexandre Oliva <aoliva@redhat.com> 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
PR debug/44248 PR debug/44248

View File

@ -2150,6 +2150,11 @@ Removes any @option{-O}-started option from @code{BOOT_CFLAGS}, and adds
@item @samp{bootstrap-O3} @item @samp{bootstrap-O3}
Analogous to @code{bootstrap-O1}. Analogous to @code{bootstrap-O1}.
@item @samp{bootstrap-lto}
Enables Link-Time Optimization for host tools during bootstrapping.
@samp{BUILD_CONFIG=bootstrap-lto} is equivalent to adding
@option{-flto} to @samp{BOOT_CFLAGS}.
@item @samp{bootstrap-debug} @item @samp{bootstrap-debug}
Verifies that the compiler generates the same executable code, whether Verifies that the compiler generates the same executable code, whether
or not it is asked to emit debug information. To this end, this or not it is asked to emit debug information. To this end, this