Re: libgcc sparc-rtems config on gcc head

2011-11-04 Thread Rainer Orth
Joel,

>> That's what my patch does.  It would be good if Joel could test on
>> i386-rtems before comitting (as I will on Solaris/SPARC and x86, of
>> course).
>>
> i386-rtems builds fine after moving the files.
>
> From my perspective, you can commit.

Thanks for the confirmation.  I've run i386-pc-solaris2.{8, 11} and
sparc-sun-solaris2.{8, 11} bootstraps overnight.  Solaris 8 builds
crt[in].o, while they are included on Solaris 11 and thus skipped in
libgcc.  They completed without regressions (with the exception of
Solaris 8/SPARC where jc1 ICEs at one point, but that's unrelated).

I've now committed the patch.

 The rules are generic and have been integrated into libgcc/Makefile.in,
 but only used unless CUSTOM_CRTIN is set in a target fragment.
>>> s/unless/if/ I presume?  config/t-sol2 has the rules though so 
>>> config/t-rtems
>> No, if a t-* fragment sets CUSTOM_CRTIN, it's expected to provide its
>> own crt[in].o rules, just like the existing CUSTOM_CRTSTUFF does.  If
>> crt[in].o is not included in extra_parts, the generic rules are
>> unused/harmless.
>>
>>> could just copy them, at least for now.
>> True, but that's the sort of copy-and-paste programming I'd like to
>> reduce with this series of patches.
>>
> Thank you.  Avoiding cut and paste makes it easier
> for targets like RTEMS where we really do try to rely
> as much as possible on sharing. :)

Right, and it's less likely to miss new features...

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


[GCC steering committee] Epiphany port maintainership

2011-11-04 Thread Joern Rennecke

I propose myself as maintainer of the Epiphany port.
This port is currently being submitted / reviewed on the gcc-patches
mailing list.


Re: Dependent Labels Question

2011-11-04 Thread Hans-Peter Nilsson
On Thu, 3 Nov 2011, Iyer, Balaji V wrote:
> Is it possible to make sure that the "LABELX" occurs right
> after the "Call some_function" instruction (and the instruction
> scheduler moves the label with the call INSN)? I insert the
> label right after the call is expanded and LABELX is being moved
> above the Call instruction by the schedule_insns function.

Is emitting the label in port-specific code together with the
call insn (trigged by a punctuation like "%&" for i386) not an
option?

brgds, H-P


libgcc/static-object.mk weird error on powerpc-rtems

2011-11-04 Thread Joel Sherrill

Hi,

I am testing powerpc-rtems on the head and
have gotten a weird error compiling libgcc.
It is definitely a regression from 4.6.
I have no idea who might be the best person
to help resolve this.

/home2/joel/build/b-powerpc-gcc/powerpc-rtems4.11/libgcc
[joel@rtbf64a libgcc]$ make
/users/joel/test-gcc/gcc-svn/libgcc/static-object.mk:18: *** Unsupported 
file type: .  Stop.


Playing with the error message, it looks like
the "$o" in the message is empty.

What can I pass along to help get this debugged?

Thanks.

--
Joel Sherrill, Ph.D. Director of Research&  Development
joel.sherr...@oarcorp.comOn-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available (256) 722-9985




Bootstrap Failure Question

2011-11-04 Thread Iyer, Balaji V
Hello Everyone,
I am getting a bootstrap failure right now when I try to build GCC. 
Here is the output. Can someone please tell me how to fix this? Is this 
something I have modified? I just configured using the following command 
(../gcc/configure -prefix=). I haven't modified any of the .o 
files mentioned in the error.

Any help is greatly appreciated!

Also, please CC me when you respond.

Thanks,

Balaji V. Iyer.

make[2]: Leaving directory `/home/ME/gcc-source/gcc-4.7/b-gcc'
make "DESTDIR=" "RPATH_ENVVAR=LD_LIBRARY_PATH" 
"TARGET_SUBDIR=x86_64-unknown-linux-gnu" 
"bindir=/home/ME/gcc-source/gcc-4.7/install/bin" 
"datadir=/home/ME/gcc-source/gcc-4.7/install/share" 
"exec_prefix=/home/ME/gcc-source/gcc-4.7/install" 
"includedir=/home/ME/gcc-source/gcc-4.7/install/include" 
"datarootdir=/home/ME/gcc-source/gcc-4.7/install/share" 
"docdir=/home/ME/gcc-source/gcc-4.7/install/share/doc/" 
"infodir=/home/ME/gcc-source/gcc-4.7/install/share/info" 
"pdfdir=/home/ME/gcc-source/gcc-4.7/install/share/doc/" 
"htmldir=/home/ME/gcc-source/gcc-4.7/install/share/doc/" 
"libdir=/home/ME/gcc-source/gcc-4.7/install/lib" 
"libexecdir=/home/ME/gcc-source/gcc-4.7/install/libexec" "lispdir=" 
"localstatedir=/home/ME/gcc-source/gcc-4.7/install/var" 
"mandir=/home/ME/gcc-source/gcc-4.7/install/share/man" 
"oldincludedir=/usr/include" "prefix=/home/ME/gcc-source/gcc-4.7/install" 
"sbindir=/home/ME/gcc-source/gcc-4.7/install/sbin" 
"sharedstatedir=/home/ME/gcc-source/gcc-4.7/install/com" 
"sysconfdir=/home/ME/gcc-source/gcc-4.7/install/etc" 
"tooldir=/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu" 
"build_tooldir=/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu" 
"target_alias=x86_64-unknown-linux-gnu" "AWK=gawk" "BISON=bison" 
"CC_FOR_BUILD=gcc" "CFLAGS_FOR_BUILD=-g -O2" "CXX_FOR_BUILD=g++" 
"EXPECT=expect" "FLEX=flex" "INSTALL=/usr/bin/install -c" 
"INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" 
"INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS_FOR_BUILD=" "LEX=flex" "M4=m4" 
"MAKE=make" "RUNTEST=runtest" "RUNTESTFLAGS=" "SED=/bin/sed" "SHELL=/bin/bash" 
"YACC=bison -y" "`echo 'ADAFLAGS=' | sed -e s'/[^=][^=]*=$/XFOO=/'`" 
"ADA_CFLAGS=" "AR_FLAGS=rc" "`echo 'BOOT_ADAFLAGS=-gnatpg -gnata' | sed -e 
s'/[^=][^=]*=$/XFOO=/'`" "BOOT_CFLAGS=-g -O2" "BOOT_LDFLAGS=" "CFLAGS=-g -O2" 
"CXXFLAGS=-g -O2" "LDFLAGS=" "LIBCFLAGS=-g -O2" "LIBCXXFLAGS=-g -O2 
-fno-implicit-templates" "STAGE1_CHECKING=--enable-checking=yes,types" 
"STAGE1_LANGUAGES=c,c++,lto" "GNATBIND=no" "GNATMAKE=no" "AR_FOR_TARGET=ar" 
"AS_FOR_TARGET=as" "CC_FOR_TARGET=/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/xgcc 
-B/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/" "CFLAGS_FOR_TARGET=-g -O2" 
"CPPFLAGS_FOR_TARGET=" "CXXFLAGS_FOR_TARGET=-g -O2 -D_GNU_SOURCE" 
"DLLTOOL_FOR_TARGET=dlltool" 
"FLAGS_FOR_TARGET=-B/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu/bin/
 -B/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu/lib/ -isystem 
/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu/include -isystem 
/home/ME/gcc-source/gcc-4.7/install/x86_64-unknown-linux-gnu/sys-include" 
"GCJ_FOR_TARGET=/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/gcj 
-B/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/" 
"GFORTRAN_FOR_TARGET=/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/gfortran 
-B/home/ME/gcc-source/gcc-4.7/b-gcc/./gcc/" "GOC_FOR_TARGET=" 
"GOCFLAGS_FOR_TARGET=-O2 -g" "LD_FOR_TARGET=ld" "LIPO_FOR_TARGET=lipo" 
"LDFLAGS_FOR_TARGET=" "LIBCFLAGS_FOR_TARGET=-g -O2" "LIBCXXFLAGS_FOR_TARGET=-g 
-O2 -D_GNU_SOURCE -fno-implicit-templates" "NM_FOR_TARGET=nm" 
"OBJDUMP_FOR_TARGET=objdump" "RANLIB_FOR_TARGET=ranlib" 
"STRIP_FOR_TARGET=strip" "WINDRES_FOR_TARGET=windres" 
"WINDMC_FOR_TARGET=windmc" "BUILD_CONFIG=bootstrap-debug" "`echo 'LANGUAGES=' | 
sed -e s'/[^=][^=]*=$/XFOO=/'`" "LEAN=false" "STAGE1_CFLAGS=-g 
-fkeep-inline-functions" "STAGE1_CXXFLAGS=-g -fkeep-inline-functions" 
"STAGE1_TFLAGS=" "STAGE2_CFLAGS=-g -O2 -gtoggle" "STAGE2_CXXFLAGS=-g -O2 
-gtoggle" "STAGE2_TFLAGS=" "STAGE3_CFLAGS=-g -O2" "STAGE3_CXXFLAGS=-g -O2" 
"STAGE3_TFLAGS=" "STAGE4_CFLAGS=-g -O2" "STAGE4_CXXFLAGS=-g -O2" 
"STAGE4_TFLAGS=" "STAGEprofile_CFLAGS=-g -O2 -gtoggle -fprofile-generate" 
"STAGEprofile_CXXFLAGS=-g -O2 -gtoggle -fprofile-generate" 
"STAGEprofile_TFLAGS=" "STAGEfeedback_CFLAGS=-g -O2 -fprofile-use" 
"STAGEfeedback_CXXFLAGS=-g -O2 -fprofile-use" "STAGEfeedback_TFLAGS=" 
"CXX_FOR_TARGET= $r/./gcc/g++ -B$r/./gcc/ -nostdinc++ `if test -f 
$r/x86_64-unknown-linux-gnu/libstdc++-v3/scripts/testsuite_flags; then 
/bin/bash $r/x86_64-unknown-linux-gnu/libstdc++-v3/scripts/testsuite_flags 
--build-includes; else echo -funconfigured-libstdc++-v3 ; fi` 
-L$r/x86_64-unknown-linux-gnu/libstdc++-v3/src 
-L$r/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs" "TFLAGS=" 
"CONFIG_SHELL=/bin/bash" "MAKEINFO=makeinfo --split-size=500 
--split-size=500"  compare
make[2]: Entering directory `/home/ME/gcc-source/gcc-4.7/b-gcc'
make[3]: Entering directory 

Re: Bootstrap Failure Question

2011-11-04 Thread Jeff Law
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 11/04/11 12:34, Iyer, Balaji V wrote:
> Hello Everyone, I am getting a bootstrap failure right now when I
> try to build GCC. Here is the output. Can someone please tell me
> how to fix this? Is this something I have modified? I just
> configured using the following command (../gcc/configure
> -prefix=). I haven't modified any of the .o files
> mentioned in the error.
Typically a comparison failure means GCC has mis-compiled itself.  You
have to figure out why.

I typically start with a small test which is compiled differently by
the stage1 and stage2 compilers.  Then I figure out where they diverge
in their behavior (say at a pass level).  Then I figure out where they
first diverge at a function within a pass.  That's usually the
function that is being mis-compiled.

Sometimes you can make some educated guesses based recent changes and
comparing how something was compiled before/after the change.

In all these are some of the most annoying bugs to tackle.

jeff
> 
> 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOtDHBAAoJEBRtltQi2kC7L20H/1SCJSyusm+MG3oL3SIS2AWz
ahbGFPnIQO0jPi7KGGuH0Cb1ynk1yvHlyLGOoLMAxvRU4zzoKVpXfg7PD966C8Ad
m7Lak7kTlyX6i+rB4+CIAsAA24u0Q1vzvnyzW4gEYk7v1dvvee1nqEMR5p/DbfUU
iXei/L+tZJ4Vq5lf/+0B8Zz7+P10KmU1VydAlFS9OeK2QKuESXUADUiVZtrWZXsB
ClzXOqm6F9Zq/HpK/Va5SGeiYy3sXGzFIzYUnV/RlZcExWH7kPTgbkLXky/D4lKS
CyTzXsfo5mvqZuIp7HtOXGrSZPl2/w2Y1KF0LlQntkJKVR81sic/KG2CfeAVGPA=
=5ZYe
-END PGP SIGNATURE-


[C++11] Reclaiming fixed-point suffixes for user-defined literals.

2011-11-04 Thread 3dw4rd
Greetings,

Now that C++11 user-defined literals are in trunk I was thinking about 
reclaiming some of the numeric suffixes that are currently recognized by gcc in 
the preprocessor.  The C++11 spec stipulates that any suffix that is recognized 
by the implementation is not allowable as a user-defined literal suffix in c++. 
 This prevents C++ from hijacking 123LL, 1.234L, etc.  On the other hand, there 
are several numeric literal suffixes that are recognized and used as gnu 
extensions.

One class of suffixes stands out in this connection: fixed-point literals.  
These end in 'k' or 'r' and can optionally be unsigned by starting with 'u' and 
optionally have a size 'h', 'l', 'll'.  The difference for these suffixes is 
that fixed-point literals are explicitly rejected by the c++ front end.  
Attempts to use such literals:
int i= 1.23k;
results in 'error: fixed-point types not supported in C++'.

So I ask the question:  Should I make a simple change to libcpp to allow 
fixed-point literal suffixes to pass to the user-defined literal code in c++11 
mode?

Thanks,

Ed Smith-Rowland

P.S. There are other suffixes that might be reclaimed as well such as 'i', 'I', 
'j', 'J' for complex integral or floating point imaginary numbers and others.  
These might be more difficult or impossible to reclaim for C++11 because these 
might be allowed and used in gnu-C++ and it might break existing code.


sparc-rtems 4.6 vs 4.7

2011-11-04 Thread Joel Sherrill

Hi,

Thanks to Eric Botcazou, David Miller, and
Ranier Orth, sparc-rtems is testable again.
It appears to be approximately the same as
the 4.6 results but I would appreciate
a double check from a sparc maintainer.

Since it looks like a lot of the failures
in both cases are lto, vect and stack-align
tests, I suspect that of the ~3100 tests
that were added, we have a number of new
tests that won't work on when compiling
specifically for an erc32 (-mcpu=cypress).

Insight appreciated.  Thanks.

=
4.6.1 20110329
http://gcc.gnu.org/ml/gcc-testresults/2011-04/msg00203.html
=== gcc Summary ===

# of expected passes68033
# of unexpected failures714
# of expected failures227
# of unresolved testcases128
# of unsupported tests1237

=== g++ Summary ===

# of expected passes25343
# of unexpected failures97
# of unexpected successes1
# of expected failures161
# of unsupported tests446
=
4.7.0 20111104
http://gcc.gnu.org/ml/gcc-testresults/2011-11/msg00440.html
=== gcc Summary ===

# of expected passes71190
# of unexpected failures940
# of expected failures286
# of unresolved testcases49
# of unsupported tests1693


=== g++ Summary ===

# of expected passes26704
# of unexpected failures72
# of unexpected successes1
# of expected failures153
# of unsupported tests457
=

--
Joel Sherrill, Ph.D. Director of Research&  Development
joel.sherr...@oarcorp.comOn-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available (256) 722-9985




RE: Bootstrap Failure Question

2011-11-04 Thread Iyer, Balaji V
Thanks Jeff for your help! 

So, are the errors confined to these files? Or could it be anywhere?

Comparing stages 2 and 3
warning: gcc/cc1obj-checksum.o differs
warning: gcc/cc1-checksum.o differs
warning: gcc/cc1plus-checksum.o differs
Bootstrap comparison failure!
gcc/i386-common.o differs
gcc/bitmap.o differs
libiberty/timeval-utils.o differs
libiberty/pic/timeval-utils.o differs


Is there anything else I can do to pin-point the problem? (like maybe gdb a 
certain file or pass a certain flag to get some debug info)

Thanks,

Balaji V. Iyer.

-Original Message-
From: Jeff Law [mailto:l...@redhat.com] 
Sent: Friday, November 04, 2011 2:41 PM
To: Iyer, Balaji V
Cc: 'gcc@gcc.gnu.org'
Subject: Re: Bootstrap Failure Question

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 11/04/11 12:34, Iyer, Balaji V wrote:
> Hello Everyone, I am getting a bootstrap failure right now when I try 
> to build GCC. Here is the output. Can someone please tell me how to 
> fix this? Is this something I have modified? I just configured using 
> the following command (../gcc/configure -prefix=). I 
> haven't modified any of the .o files mentioned in the error.
Typically a comparison failure means GCC has mis-compiled itself.  You have to 
figure out why.

I typically start with a small test which is compiled differently by the stage1 
and stage2 compilers.  Then I figure out where they diverge in their behavior 
(say at a pass level).  Then I figure out where they first diverge at a 
function within a pass.  That's usually the function that is being mis-compiled.

Sometimes you can make some educated guesses based recent changes and comparing 
how something was compiled before/after the change.

In all these are some of the most annoying bugs to tackle.

jeff
> 
> 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOtDHBAAoJEBRtltQi2kC7L20H/1SCJSyusm+MG3oL3SIS2AWz
ahbGFPnIQO0jPi7KGGuH0Cb1ynk1yvHlyLGOoLMAxvRU4zzoKVpXfg7PD966C8Ad
m7Lak7kTlyX6i+rB4+CIAsAA24u0Q1vzvnyzW4gEYk7v1dvvee1nqEMR5p/DbfUU
iXei/L+tZJ4Vq5lf/+0B8Zz7+P10KmU1VydAlFS9OeK2QKuESXUADUiVZtrWZXsB
ClzXOqm6F9Zq/HpK/Va5SGeiYy3sXGzFIzYUnV/RlZcExWH7kPTgbkLXky/D4lKS
CyTzXsfo5mvqZuIp7HtOXGrSZPl2/w2Y1KF0LlQntkJKVR81sic/KG2CfeAVGPA=
=5ZYe
-END PGP SIGNATURE-


Re: Dependent Labels Question

2011-11-04 Thread Bernd Schmidt
On 11/04/11 15:37, Hans-Peter Nilsson wrote:
> On Thu, 3 Nov 2011, Iyer, Balaji V wrote:
>> Is it possible to make sure that the "LABELX" occurs right
>> after the "Call some_function" instruction (and the instruction
>> scheduler moves the label with the call INSN)? I insert the
>> label right after the call is expanded and LABELX is being moved
>> above the Call instruction by the schedule_insns function.
> 
> Is emitting the label in port-specific code together with the
> call insn (trigged by a punctuation like "%&" for i386) not an
> option?

Some ports do that kind of thing. You must also define the
cannot_copy_insn_p hook to make sure that only one of these labels gets
emitted. In general however you don't want to do this since it prevents
optimizations.


Bernd


Re: sparc-rtems 4.6 vs 4.7

2011-11-04 Thread Eric Botcazou
> Since it looks like a lot of the failures
> in both cases are lto, vect and stack-align
> tests, I suspect that of the ~3100 tests
> that were added, we have a number of new
> tests that won't work on when compiling
> specifically for an erc32 (-mcpu=cypress).

The results can hardly be analyzed, there are too many failures, although they 
probably come from a small number of problems.  You should consider looking
into the gazillions of execution failures, determining why they fail (they pass 
on Solaris or Linux) and submit patches to XFAIL/SKIP them for sparc-rtems.

-- 
Eric Botcazou


Failure to bootstrap trunk with --enable-threads=posix on cygwin since r180767

2011-11-04 Thread Christian Joensson
On cygwin, I get the following failure when trying to boostrap current
Fri Nov  4 19:36:52 UTC 2011 (revision 180977) gcc trunk:

/bin/sh ../../../gcc/libgcc/../mkinstalldirs .
ln -s -f libgcc.map libgcc.map.def && if [ ! -d ./shlib ]; then mkdir
./shlib; else true; fi && /usr/local/src/objdir/./gcc/xgcc
-B/usr/local/src/objdir/./gcc/ -B/usr/i686-pc-cygwin/bin/
-B/usr/i686-pc-cygwin/lib/ -isystem /usr/i686-pc-cygwin/include
-isystem /usr/i686-pc-cygwin/sys-include-O2
-I../../../gcc/libgcc/../winsup/w32api/include
-I../../../gcc/libgcc/../winsup/include
-I../../../gcc/libgcc/../winsup/cygwin/include -g -O2 -DIN_GCC   -W
-Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -g
-DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -pthread -shared
-nodefaultlibs libgcc.map.def
-Wl,--out-implib,./shlib/libgcc_s.dll.a.tmp -o
./shlib/cyggcc_s-1.dll.tmp -g -O2 -B./ _chkstk_s.o _chkstk_ms_s.o
_muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o
_cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o
_absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o
_subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o
_ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o
_ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o
_popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o
_powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o
_mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o
_divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o
_fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o
_fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o
_fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o
_floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o
_moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o
tf-signs_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o
multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o
fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o
fixunstfdi_s.o floatditf_s.o floatunditf_s.o extendsftf2_s.o
extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o
trunctfxf2_s.o enable-execute-stack_s.o unwind-dw2_s.o
unwind-dw2-fde_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o
-Wl,-lpthread -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 && if
[ -f ./shlib/cyggcc_s-1.dll ]; then mv -f ./shlib/cyggcc_s-1.dll
./shlib/cyggcc_s-1.dll.backup; else true; fi && mv
./shlib/cyggcc_s-1.dll.tmp ./shlib/cyggcc_s-1.dll && mv
./shlib/libgcc_s.dll.a.tmp ./shlib/libgcc_s.dll.a
xgcc: error: unrecognized command line option ‘-pthread’
make[3]: *** [libgcc_s.dll] Error 1
make[3]: Leaving directory `/usr/local/src/objdir/i686-pc-cygwin/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/usr/local/src/objdir'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/usr/local/src/objdir'
make: *** [all] Error 2

This is with gcc configured as

Using built-in specs.
COLLECT_GCC=./gcc/xgcc
Target: i686-pc-cygwin
Configured with: ../gcc/configure --prefix=/usr --exec-prefix=/usr
--bindir=/usrfdir=/etc --datarootdir=/usr/share
--docdir=/usr/share/doc/gcc4 -C --datadir=/usnable-bootstrap
--enable-version-specific-runtime-libs --libexecdir=/usr/lib --enu-as
--with-dwarf2 --disable-sjlj-exceptions
--enable-languages=c,c++,fortran,jble-libjava --program-suffix=-4
--enable-libgomp --enable-libssp --enable-threadRGET=gcc-4
CXX_FOR_TARGET=g++-4
Thread model: posix
gcc version 4.7.0 2004 (experimental) [trunk revision 180977] (GCC)

Note the --enable-threads=posix.

Backing off to revision 180766 does not yield this problem, while
180767 has the problem.

-- 
Cheers,

/ChJ


gcc-4.6-20111104 is now available

2011-11-04 Thread gccadmin
Snapshot gcc-4.6-2004 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-2004/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch 
revision 180991

You'll find:

 gcc-4.6-20111104.tar.bz2 Complete GCC

  MD5=938b905a30881e90c2a2c31d7f997f76
  SHA1=6d2c1e1d7da8a10095a2ad5da13b67b25d3647bf

Diffs from 4.6-20111028 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


--enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread DJ Delorie

For example, rx-elf...

gcc/function.c: In function 'thread_prologue_and_epilogue_insns':
gcc/regs.h:322:34: error: array subscript is above array bounds 
[-Werror=array-bounds]

function.c has this:

  if (pic_offset_table_rtx)
add_to_hard_reg_set (&set_up_by_prologue, Pmode,
 PIC_OFFSET_TABLE_REGNUM);

Which ends up here:

static inline unsigned int
end_hard_regno (enum machine_mode mode, unsigned int regno)
{
  return regno + hard_regno_nregs[regno][(int) mode];
}

but if PIC_OFFSET_TABLE_REGNUM isn't defined by the target, you get:

#ifndef PIC_OFFSET_TABLE_REGNUM
#define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
#endif

which is ~0 and *always* out of range.

Does this warrant another excpetion to -Werror in Makefile.in ?  Or is
there another way to get past this these days?


Index: Makefile.in
===
--- Makefile.in  (revision 180992)
+++ Makefile.in (working copy)
@@ -195,12 +195,14 @@ GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D
 # flex output may yield harmless "no previous prototype" warnings
 build/gengtype-lex.o-warn = -Wno-error
 gengtype-lex.o-warn = -Wno-error
 # mips-tfile.c contains -Wcast-qual warnings.
 mips-tfile.o-warn = -Wno-error
 expmed.o-warn = -Wno-error
+# non-PIC targets always get an array-bounds error in 
thread_prologue_and_epilogue_insns
+function.o-warn = -Wno-error
 
 # All warnings have to be shut off in stage1 if the compiler used then
 # isn't gcc; configure determines that.  WARN_CFLAGS will be either
 # $(GCC_WARN_CFLAGS), or nothing.  Similarly, WARN_CXXFLAGS will be
 # either $(GCC_WARN_CXXFLAGS), or nothing.
 WARN_CFLAGS = @warn_cflags@



Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread Ian Lance Taylor
DJ Delorie  writes:

> gcc/function.c: In function 'thread_prologue_and_epilogue_insns':
> gcc/regs.h:322:34: error: array subscript is above array bounds 
> [-Werror=array-bounds]
>
> function.c has this:
>
>   if (pic_offset_table_rtx)
>   add_to_hard_reg_set (&set_up_by_prologue, Pmode,
>PIC_OFFSET_TABLE_REGNUM);
>
> Which ends up here:
>
> static inline unsigned int
> end_hard_regno (enum machine_mode mode, unsigned int regno)
> {
>   return regno + hard_regno_nregs[regno][(int) mode];
> }
>
> but if PIC_OFFSET_TABLE_REGNUM isn't defined by the target, you get:
>
> #ifndef PIC_OFFSET_TABLE_REGNUM
> #define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
> #endif
>
> which is ~0 and *always* out of range.

But if PIC_OFFSET_TABLE_REGNUM == INVALID_REGNUM, then
pic_offset_table_rtx should be NULL_RTX.  See init_emit_regs in
emit-rtl.c.  So I think there must be something else going on here.

Ian


Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread DJ Delorie

> >   if (pic_offset_table_rtx)
> > add_to_hard_reg_set (&set_up_by_prologue, Pmode,
> >  PIC_OFFSET_TABLE_REGNUM);
>
> But if PIC_OFFSET_TABLE_REGNUM == INVALID_REGNUM, then
> pic_offset_table_rtx should be NULL_RTX.

It is, but is gcc smart enough to know that causal relationship?


Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread Ian Lance Taylor
DJ Delorie  writes:

>> >   if (pic_offset_table_rtx)
>> >add_to_hard_reg_set (&set_up_by_prologue, Pmode,
>> > PIC_OFFSET_TABLE_REGNUM);
>>
>> But if PIC_OFFSET_TABLE_REGNUM == INVALID_REGNUM, then
>> pic_offset_table_rtx should be NULL_RTX.
>
> It is, but is gcc smart enough to know that causal relationship?

Oh, I see what you mean, sorry.

Does it help if we change
if (pic_offset_table_rtx)
to
if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
?

Ian


Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread DJ Delorie

> Does it help if we change
> if (pic_offset_table_rtx)
> to
> if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)

That seems to work.


Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread Andrew Pinski
On Fri, Nov 4, 2011 at 6:01 PM, DJ Delorie  wrote:
>
>> >   if (pic_offset_table_rtx)
>> >     add_to_hard_reg_set (&set_up_by_prologue, Pmode,
>> >                          PIC_OFFSET_TABLE_REGNUM);
>>
>> But if PIC_OFFSET_TABLE_REGNUM == INVALID_REGNUM, then
>> pic_offset_table_rtx should be NULL_RTX.
>
> It is, but is gcc smart enough to know that causal relationship?
No because the setting of pic_offset_table_rtx is in emit-rtl.c.
Maybe it is just better to do:
if ((unsigned) PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
 add_to_hard_reg_set (&set_up_by_prologue, Pmode,
  PIC_OFFSET_TABLE_REGNUM);
in function.c.

Thanks,
Andrew Pinski


Re: serious libgcc regression added recently

2011-11-04 Thread David Miller
From: Jakub Jelinek 
Date: Thu, 3 Nov 2011 09:22:51 +0100

> I think much better would be to handle sparc*/s390*/powerpc* differently
> here, just using #ifdef __LP64__ test.  i?86/x86_64 is different because
> of the third weirdo multilib option.

I just tested and committed the following, it seemed to make no sense
to keep the case statement there and now the host_address should be
available to anyone who wants to make use of it in config.host


[PATCH] Tweak libgcc configure test for 64-bit.

libgcc/

* configure.ac: Test for 64-bit addresses on !x86 using __LP64__.
* configure: Rebuild.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181000 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgcc/ChangeLog|5 +
 libgcc/configure|   15 +--
 libgcc/configure.ac |   15 +--
 3 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index ec06a09..d3f091e 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-04  David S. Miller  
+
+   * configure.ac: Test for 64-bit addresses on !x86 using __LP64__.
+   * configure: Rebuild.
+
 2011-11-04  Andreas Krebbel  
 
* config/s390/t-crtstuff: Add -fPIC to CRTSTUFF_T_CFLAGS_S
diff --git a/libgcc/configure b/libgcc/configure
index 0f18037..1895a76 100644
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -4609,21 +4609,16 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_cfi" >&5
 $as_echo "$libgcc_cv_cfi" >&6; }
 
-# Check 32bit or 64bit for x86 and sparc.
-case ${host} in
-i?86*-*-* | x86_64*-*-* | sparc*-*-*)
-  cat > conftest.c < conftest.c < conftest.c < conftest.c <

Re: --enable-werror-always fails function.o for any non-pic target

2011-11-04 Thread Ian Lance Taylor
DJ Delorie  writes:

>> Does it help if we change
>> if (pic_offset_table_rtx)
>> to
>> if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
>
> That seems to work.

That patch is fine if it bootstraps.

Ian


predicate forward references (Was: Re: RFA: Add Epiphany port)

2011-11-04 Thread Joern Rennecke

Quoting Richard Henderson :


(define_predicate "call_address_operand"
  (match_code "symbol_ref,const,reg")
{
  return (symbolic_operand (op, mode) || (GET_CODE (op) == REG));
})


Nit.

(define_predicate "call_address_operand"
  (ior (match_code "reg")
   (match_operand 0 "symbolic_operand")))


It doesn't like the predicates in their original order this way - it  
complains:
../../srcw/gcc/config/epiphany/predicates.md:25: reference to unknown  
predicate 'symbolic_operand'


Is there a way to have a predicate forward declaration?


Re: predicate forward references (Was: Re: RFA: Add Epiphany port)

2011-11-04 Thread Richard Henderson
On 11/04/2011 09:01 PM, Joern Rennecke wrote:
> Is there a way to have a predicate forward declaration?

No, sadly.  Something for a future enhancement in the genfoo.


r~