Commit 339325b3 by Alexandre Oliva Committed by Alexandre Oliva

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
parent 6122686d
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.
......
# 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
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.
......
...@@ -100,9 +100,11 @@ else ...@@ -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 ...@@ -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
......
2010-06-20 Alexandre Oliva <aoliva@redhat.com> 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
* doc/install.texi: Document bootstrap-lto.
2010-06-20 Alexandre Oliva <aoliva@redhat.com>
PR debug/44248 PR debug/44248
* lto-streamer-in.c (input_bb): Leave debug stmts alone. * lto-streamer-in.c (input_bb): Leave debug stmts alone.
(input_function): Drop them here, if VTA is disabled. (input_function): Drop them here, if VTA is disabled.
......
...@@ -2150,6 +2150,11 @@ Removes any @option{-O}-started option from @code{BOOT_CFLAGS}, and adds ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment