Re: Bug in 6.x' C++ compiler

2006-10-12 Thread Kostik Belousov
On Wed, Oct 11, 2006 at 01:22:57PM -0400, Mikhail Teterin wrote:
 GCC would not fix the bug described in
 
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29390
 
 because the compiler is of an unsupported version (they only support 4.x now).
 
 Yet, the problem is rather real and hits when the devel/icu port is
 built with low optimization (-O1 or -O0).

 Any chance, someone with interest in GCC internals and FreeBSD can
 find the fix?

 Simply compiling the loctest.ii, that is attached to the above bugzilla 
 report, is enough to reproduce the problem. Compiling with `-march=pentium4' 
 triggers the bug -- a bogus symbol is inserted:
 
   % c++ -O0 -g -c  -pipe -march=pentium4 loctest.ii
   % nm locate.o | fgrep .LC
   U .LC786
 
 Compiling without the -march (or with -O2) does not insert the bogus symbol:
 
   % c++ -O2 -g -c -pipe -march=pentium4 loctest.ii
   % nm loctest.o | fgrep .LC
   % c++ -O0 -g -c -pipe loctest.ii
   % nm loctest.o | fgrep .LC
   %
 
 I'm seeing this with both 3.4.4 and 3.4.6 versions of GCC... Thanks!
 
   -mi
deviant% /usr/local/opt/gcc-3.4.6/bin/g++ -O0 -g -c -fno-strict-aliasing -pipe 
-march=pentium4 loctest.ii
deviant% nm loctest.o | grep LC
 U _ZNK7icu_3_66Locale7getLCIDEv
deviant% c++ -O0 -g -c -fno-strict-aliasing -pipe -march=pentium4 loctest.ii
deviant% nm loctest.o | grep LC
 U .LC786
 U _ZNK7icu_3_66Locale7getLCIDEv
deviant% /usr/local/opt/gcc-3.4.6/bin/g++ -v 
Reading specs from 
/usr/local/opt/gcc-3.4.6/lib/gcc/i386-little-freebsd6/3.4.6/specs
Configured with: ../gcc-3.4.6/configure --prefix=/usr/local/opt/gcc-3.4.6 
--enable-shared --enable-threads --with-system-zlib --enable-__cxa_atexit 
--disable-nls --enable-long-long --with-as=/usr/local/opt/binutils/bin/as 
--with-ld=/usr/local/opt/binutils/bin/ld 
--enable-languages=c,c++,f77,objc,ada,java --host=i386-little-freebsd6
Thread model: posix
gcc version 3.4.6
deviant% c++ -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.6 [FreeBSD] 20060305

opt/gcc-3.4.6 is the stock version of the 3.4.6 built directly from the FSF
sources (relatively long time ago).


pgpuRjt8wbWNF.pgp
Description: PGP signature


OT: Re: Bug in 6.x' C++ compiler

2006-10-12 Thread O. Hartmann

Kostik Belousov wrote:

On Wed, Oct 11, 2006 at 01:22:57PM -0400, Mikhail Teterin wrote:

GCC would not fix the bug described in

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29390

because the compiler is of an unsupported version (they only support 4.x now).

Yet, the problem is rather real and hits when the devel/icu port is
built with low optimization (-O1 or -O0).

Any chance, someone with interest in GCC internals and FreeBSD can
find the fix?

Simply compiling the loctest.ii, that is attached to the above bugzilla 
report, is enough to reproduce the problem. Compiling with `-march=pentium4' 
triggers the bug -- a bogus symbol is inserted:


% c++ -O0 -g -c  -pipe -march=pentium4 loctest.ii
% nm locate.o | fgrep .LC
U .LC786

Compiling without the -march (or with -O2) does not insert the bogus symbol:

% c++ -O2 -g -c -pipe -march=pentium4 loctest.ii
% nm loctest.o | fgrep .LC
% c++ -O0 -g -c -pipe loctest.ii
% nm loctest.o | fgrep .LC
%

I'm seeing this with both 3.4.4 and 3.4.6 versions of GCC... Thanks!

-mi

deviant% /usr/local/opt/gcc-3.4.6/bin/g++ -O0 -g -c -fno-strict-aliasing -pipe 
-march=pentium4 loctest.ii
deviant% nm loctest.o | grep LC
 U _ZNK7icu_3_66Locale7getLCIDEv
deviant% c++ -O0 -g -c -fno-strict-aliasing -pipe -march=pentium4 loctest.ii
deviant% nm loctest.o | grep LC
 U .LC786
 U _ZNK7icu_3_66Locale7getLCIDEv
deviant% /usr/local/opt/gcc-3.4.6/bin/g++ -v 
Reading specs from /usr/local/opt/gcc-3.4.6/lib/gcc/i386-little-freebsd6/3.4.6/specs

Configured with: ../gcc-3.4.6/configure --prefix=/usr/local/opt/gcc-3.4.6 
--enable-shared --enable-threads --with-system-zlib --enable-__cxa_atexit 
--disable-nls --enable-long-long --with-as=/usr/local/opt/binutils/bin/as 
--with-ld=/usr/local/opt/binutils/bin/ld 
--enable-languages=c,c++,f77,objc,ada,java --host=i386-little-freebsd6
Thread model: posix
gcc version 3.4.6
deviant% c++ -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.6 [FreeBSD] 20060305

opt/gcc-3.4.6 is the stock version of the 3.4.6 built directly from the FSF
sources (relatively long time ago).



Well, I hope this bug has been sent by heaven and speeds up swapping 
system compiler of FreeBSD 6.X to 4.1 or 4.X :-)

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Bug in 6.x' C++ compiler

2006-10-12 Thread Mikhail Teterin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29390

четвер 12 жовтень 2006 05:54, Kostik Belousov написав:
 Thread model: posix
 gcc version 3.4.6 [FreeBSD] 20060305

 opt/gcc-3.4.6 is the stock version of the 3.4.6 built directly from the FSF
 sources (relatively long time ago).

Well, if the stock gcc-3.4.6 does not have the problem, but FreeBSD's version 
does, then finding the guilty diff would not be hard.

RE, would it be possible to hold the 6.2 release, over this?

-mi
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Bug in 6.x' C++ compiler

2006-10-12 Thread Kostik Belousov
On Thu, Oct 12, 2006 at 12:36:42PM -0400, Mikhail Teterin wrote:
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29390
 
 четвер 12 жовтень 2006 05:54, Kostik Belousov написав:
  Thread model: posix
  gcc version 3.4.6 [FreeBSD] 20060305
 
  opt/gcc-3.4.6 is the stock version of the 3.4.6 built directly from the FSF
  sources (relatively long time ago).
 
 Well, if the stock gcc-3.4.6 does not have the problem, but FreeBSD's version 
 does, then finding the guilty diff would not be hard.
In fact, the absence of that symbol in the code generated by differently
configured gcc means nothing. After I noted that, I did rebuilt the icu
with that compiler, and with march=pentium4  -O0 it built and tested
normally.

I think that this is actually some change in the configuration (and binutils
version it was configured with) that matters.


pgpx3Qi3K7kEF.pgp
Description: PGP signature


Re: OT: Re: Bug in 6.x' C++ compiler

2006-10-12 Thread Alexander Kabaev
On Thu, 12 Oct 2006 15:02:45 +0200
O. Hartmann [EMAIL PROTECTED] wrote:

 
 Well, I hope this bug has been sent by heaven and speeds up swapping 
 system compiler of FreeBSD 6.X to 4.1 or 4.X :-)
 ___
 freebsd-stable@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-stable
 To unsubscribe, send any mail to
 [EMAIL PROTECTED]
I've just had a confident message from heaven. They said major compiler
upgrades in 6.x will not happen anytime soon and wanted me to pass
this on to you. 

-- 
Alexander Kabaev


signature.asc
Description: PGP signature