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.