Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Oct 2006 12:54:14 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Mikhail Teterin <mi+mx@aldan.algebra.com>
Cc:        stable@freebsd.org, gerald@freebsd.org
Subject:   Re: Bug in 6.x' C++ compiler
Message-ID:  <20061012095414.GM60834@deviant.kiev.zoral.com.ua>
In-Reply-To: <200610111322.57735.mi%2Bmx@aldan.algebra.com>
References:  <200610111322.57735.mi%2Bmx@aldan.algebra.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--1rguoi8KZGYj2k4L
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Oct 11, 2006 at 01:22:57PM -0400, Mikhail Teterin wrote:
> GCC would not fix the bug described in
>=20
> 	http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D29390
>=20
> because the compiler is of an unsupported version (they only support 4.x =
now).
>=20
> 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=
=20
> report, is enough to reproduce the problem. Compiling with `-march=3Dpent=
ium4'=20
> triggers the bug -- a bogus symbol is inserted:
>=20
> 	% c++ -O0 -g -c  -pipe -march=3Dpentium4 loctest.ii
> 	% nm locate.o | fgrep .LC
> 	U .LC786
>=20
> Compiling without the -march (or with -O2) does not insert the bogus symb=
ol:
>=20
> 	% c++ -O2 -g -c -pipe -march=3Dpentium4 loctest.ii
> 	% nm loctest.o | fgrep .LC
> 	% c++ -O0 -g -c -pipe loctest.ii
> 	% nm loctest.o | fgrep .LC
> 	%
>=20
> I'm seeing this with both 3.4.4 and 3.4.6 versions of GCC... Thanks!
>=20
> 	-mi
deviant% /usr/local/opt/gcc-3.4.6/bin/g++ -O0 -g -c -fno-strict-aliasing -p=
ipe -march=3Dpentium4 loctest.ii
deviant% nm loctest.o | grep LC
         U _ZNK7icu_3_66Locale7getLCIDEv
deviant% c++ -O0 -g -c -fno-strict-aliasing -pipe -march=3Dpentium4 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=20
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=3D/usr/local/opt/gcc-3.4.6=
 --enable-shared --enable-threads --with-system-zlib --enable-__cxa_atexit =
--disable-nls --enable-long-long --with-as=3D/usr/local/opt/binutils/bin/as=
 --with-ld=3D/usr/local/opt/binutils/bin/ld --enable-languages=3Dc,c++,f77,=
objc,ada,java --host=3Di386-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).

--1rguoi8KZGYj2k4L
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFLhDGC3+MBN1Mb4gRAoqMAJ9U/m0IUN+3/jw3Mi2FqRBMdjGZYwCfUm/p
5dQgxgC3o7fuKAnmtQef2dM=
=bL/d
-----END PGP SIGNATURE-----

--1rguoi8KZGYj2k4L--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061012095414.GM60834>