Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Aug 2007 13:38:35 +0200
From:      Harald Schmalzbauer <h.schmalzbauer@omnisec.de>
To:        freebsd-current@freebsd.org
Cc:        Alexander Kabaev <kan@freebsd.org>, "Constantine A. Murenin" <cnst@freebsd.org>
Subject:   Re: GSoC2007: cnst-sensors.2007-08-20.patch
Message-ID:  <200708261338.35874.h.schmalzbauer@omnisec.de>
In-Reply-To: <46D10B10.2060608@FreeBSD.org>
References:  <200708210339.l7L3dUX0038042@repoman.freebsd.org> <200708260216.14210.h.schmalzbauer@omnisec.de> <46D10B10.2060608@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Am Sonntag, 26. August 2007 07:09:36 schrieb Constantine A. Murenin:
[...]
> > /usr/src/sys/modules/coretemp/../../dev/coretemp/coretemp.c:297: error:
> > SSE register return with SSE disabled
> > *** Error code 1
> > 1 error
>
> I cannot reproduce this bug on i386 with gcc 4.2.0 20070514, so this
> sounds like a bug in the compiler, either for allowing me to compile the
> code that shouldn't compile (and run flawlessly -- coretemp is totally
> tested here), or for not allowing you to compile the code that should
> compile. (I'll recompile my compiler tomorrow to catch up on the updates
> to gcc 4.2.1 to see if that changes anything.)
>
> Could you please provide more details, e.g. platform (I guess it is
> amd64?), compiler version and any changes you've made to the tree?

It's a core2 (E6420) machine, running amd64 -current from today (so gcc 4.2.1 
with default -O2).
In make.conf I have CPUTYPE?=core2, but removing the CPUTYPE doesn't make any 
difference, it fails exactly with the same error.
Makeoption is -j5 as it's a ULE kernel but that's completely irrelevant I 
think.

> This is the code that seems to generate this error with your compiler:
>
> 		s->value = temp * 1e6 + 273.15e6;
>
> Where s->value is of type int64_t, and temp is of type int.  Does anyone
> know if the e notation should not be used in this context?
>
> In the meantime, I assume that changing that line to:
>
> 		s->value = temp * 1000000 + 273150000;
>
> must solve the problem.

Right, kernel compiles fine now.

Thanks, -Harry



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