Makefile.def (STAGE2_CFLAGS, [...]): Add to flags_to_pass.

ChangeLog:
* Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS):
Add to flags_to_pass.  Adjust uses of BOOT_CFLAGS.
(bootstrap2-debug, bootstrap-debug): New bootstrap stages.
* Makefile.tpl (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): New.
(do-compare, do-compare3, do-compare-debug): New.
([+compare-target+]): Use them.
contrib/ChangeLog:
* compare-debug: New.

From-SVN: r127570
This commit is contained in:
Alexandre Oliva 2007-08-17 00:00:00 +00:00 committed by Alexandre Oliva
parent db5b41105b
commit bb286d7113
6 changed files with 2832 additions and 222 deletions

View File

@ -1,3 +1,12 @@
2007-08-16 Alexandre Oliva <aoliva@redhat.com>
* Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS):
Add to flags_to_pass. Adjust uses of BOOT_CFLAGS.
(bootstrap2-debug, bootstrap-debug): New bootstrap stages.
* Makefile.tpl (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): New.
(do-compare, do-compare3, do-compare-debug): New.
([+compare-target+]): Use them.
2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
* MAINTAINERS (Write After Approval): Change my email address.

View File

@ -4,7 +4,7 @@ AutoGen definitions Makefile.tpl;
// Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
// This file was originally written by Nathanael Nerode.
//
// Copyright 2002, 2003, 2004, 2005, 2006 Free Software Foundation
// Copyright 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
//
// This file is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@ -236,6 +236,9 @@ flags_to_pass = { flag= LIBCXXFLAGS ; };
flags_to_pass = { flag= STAGE1_CFLAGS ; };
flags_to_pass = { flag= STAGE1_CHECKING ; };
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
flags_to_pass = { flag= STAGE2_CFLAGS ; };
flags_to_pass = { flag= STAGE3_CFLAGS ; };
flags_to_pass = { flag= STAGE4_CFLAGS ; };
flags_to_pass = { flag= GNATBIND ; };
flags_to_pass = { flag= GNATMAKE ; };
@ -512,26 +515,38 @@ bootstrap_stage = {
id=2 ; prev=1 ;
bootstrap_target=bootstrap2 ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags="$(BOOT_CFLAGS)" ; };
stage_cflags="$(STAGE2_CFLAGS)" ; };
bootstrap_stage = {
id=b2g0 ; prev=1 ;
bootstrap_target=bootstrap2-debug ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags="$(STAGE2_CFLAGS) -g0" ; };
bootstrap_stage = {
id=3 ; prev=2 ; lean=1 ;
compare_target=compare ;
bootstrap_target=bootstrap ;
cleanstrap_target=cleanstrap ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags="$(BOOT_CFLAGS)" ; };
stage_cflags="$(STAGE3_CFLAGS)" ; };
bootstrap_stage = {
id=b3g2 ; prev=b2g0 ; lean=1 ;
compare_target=compare-debug ;
bootstrap_target=bootstrap-debug ;
cleanstrap_target=cleanstrap-debug ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags="$(STAGE3_CFLAGS) -g2" ; };
bootstrap_stage = {
id=4 ; prev=3 ; lean=2 ;
compare_target=compare3 ;
bootstrap_target=bootstrap4 ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags="$(BOOT_CFLAGS)" ; };
stage_cflags="$(STAGE4_CFLAGS)" ; };
bootstrap_stage = {
id=profile ; prev=1 ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags='$(BOOT_CFLAGS) -fprofile-generate' ; };
stage_cflags='$(STAGE2_CFLAGS) -fprofile-generate' ; };
bootstrap_stage = {
id=feedback ; prev=profile ;
bootstrap_target=profiledbootstrap ;
stage_configure_flags="@stage2_werror_flag@" ;
stage_cflags='$(BOOT_CFLAGS) -fprofile-use' ; };
stage_cflags='$(STAGE3_CFLAGS) -fprofile-use' ; };

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ in
#
# Makefile for directory with subdirs to build.
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -323,6 +323,14 @@ STAGE1_CFLAGS=@stage1_cflags@
STAGE1_CHECKING=@stage1_checking@
STAGE1_LANGUAGES=@stage1_languages@
STAGE2_CFLAGS=$(BOOT_CFLAGS)
STAGE3_CFLAGS=$(BOOT_CFLAGS)
STAGE4_CFLAGS=$(BOOT_CFLAGS)
do-compare = @do_compare@
do-compare3 = $(do-compare)
do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
# -----------------------------------------------
# Programs producing files for the TARGET machine
# -----------------------------------------------
@ -1316,7 +1324,7 @@ do-clean: clean-stage[+id+]
cd .. ; \
for file in $${files} ; do \
f1=$$r/stage[+prev+]-gcc/$$file; f2=$$r/stage[+id+]-gcc/$$file; \
@do_compare@ > /dev/null 2>&1; \
$(do-[+compare-target+]) > /dev/null 2>&1; \
if test $$? -eq 1; then \
case $$file in \
./cc*-checksum$(objext) | ./libgcc/* ) \

View File

@ -1,3 +1,7 @@
2007-08-16 Alexandre Oliva <aoliva@redhat.com>
* compare-debug: New.
2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
Andreas Schwab <schwab@suse.de>

67
contrib/compare-debug Executable file
View File

@ -0,0 +1,67 @@
#! /bin/sh
# Compare stripped copies of two given object files.
# Copyright (C) 2007 Free Software Foundation
# Originally by Alexandre Oliva <aoliva@redhat.com>
# This file is part of GCC.
# GCC is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3, or (at your option) any later
# version.
# GCC is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
if test $# != 2; then
echo 'usage: compare-debug file1.o file2.o' >&2
exit 1
fi
if test ! -f "$1"; then
echo "$1" does not exist >&2
exit 1
fi
if test ! -f "$2"; then
echo "$2" does not exist >&2
exit 1
fi
if test -f "$1".stripped; then
echo "$1".stripped already exists, overwriting >&2
exit 1
fi
if test -f "$2".stripped; then
echo "$2".stripped already exists, overwriting >&2
exit 1
fi
trap 'rm -f "$1".stripped "$2".stripped' 0 1 2 15
cp "$1" "$1".stripped
strip "$1".stripped
cp "$2" "$2".stripped
strip "$2".stripped
if cmp "$1".stripped "$2".stripped; then
status=0
else
status=1
fi
rm -f "$1".stripped "$2".stripped
trap "exit $status; exit" 0 1 2 15
exit $status