On Tue, 7 Apr 2009, Peter Elmer wrote:
> Hi Matthew,
>
> On Tue, Apr 07, 2009 at 03:05:10PM -0500, Matthew Jones wrote:
>> I recently installed SL5.2, which generally works well, but gcc is unable
>> to
>> report the symbols that it is having difficulty compiling...
>>
>> For example, if I compile the following program:
>>
>> int main() {
>> double d = 1.5;
>> e = d + 2;
>> }
>>
>> I get the following:
>>
>> $ g++ junk.cc
>> junk.cc: In function â:
>> junk.cc:3: error: â was not declared in this scope
>>
>
> I tried it with my (64bit) SL5 machine and do not see the problem:
> ...
> Hmm, I suspect you'll see mangled non-printable characters from my
> cut/paste (while it looked fine on my screen), which brings me to the other
> observation I have: the gcc 4.1.2 build we have made standalone (for use
> also on SLC4) machines _does_ have the kind of problem you mention. It is
> some bad interaction with the LANG (and terminal?) setting, I think, and
> I've not had time to track it down (would be great if someone here has some
> suggestion!), but I've found that if I use the workaround:
>
> unsetenv LANG
yes, this works. To see it more clearly:
$ echo $LANG
en_CA.UTF-8
$ g++ eg.cc 2>t.out
$ od -c t.out
0000000 e g . c c : I n f u n c t i
0000020 o n 342 200 230 i n t m a i n ( )
0000040 342 200 231 : \n e g . c c : 4 : e r
0000060 r o r : 342 200 230 e 342 200 231 w a s
0000100 n o t d e c l a r e d i n
0000120 t h i s s c o p e \n
0000134
and when unsetting the LANG var, the above chars become plain ascii:
$ od -c t.out
0000000 e g . c c : I n f u n c t i
0000020 o n ' i n t m a i n ( ) ' :
0000040 \n e g . c c : 4 : e r r o r :
0000060 ' e ' w a s n o t d e c
0000100 l a r e d i n t h i s s c
0000120 o p e \n
0000124
cheers, etc.
--
deatrich @ triumf.ca, Science/Atlas PH: +1 604-222-7665
<*> This moment's fortune cookie:
Comedy, like Medicine, was never meant to be practiced by the general public.
|