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]"

Reply via email to