Re: [Bug-tar] tar 1.27.1 compile error on AIX 7.1 TL2 SP3 and AIX 6.1 TL
From:
yaberger
Subject:
Re: [Bug-tar] tar 1.27.1 compile error on AIX 7.1 TL2 SP3 and AIX 6.1 TL8 SP3 with IBM XL C/C++
Date:
Tue, 24 Dec 2013 15:38:59 -0500
Hi,
cc returns
xlc seem to returns an output more similar
to make
there are several other "compiler"
binaries that comes with IBM XL C/C++ but none of them seems to give a
better result (xlc_r, c99, etc.)
address@hidden ==> egrep -v "^#"
/tmp/tar.output > /tmp/foo.c
address@hidden ==> cc /tmp/foo.c
"/tmp/foo.c", line 2663.1:
1506-485 (S) Parameter declaration list is incompatible with declarator
for inline.
"/tmp/foo.c", line 2665.1:
1506-276 (S) Syntax error: possible missing '{'?
"/tmp/foo.c", line 2668.69:
1506-045 (S) Undeclared identifier s.
"/tmp/foo.c", line 2668.75:
1506-045 (S) Undeclared identifier n.
"/tmp/foo.c", line 2672.1:
1506-485 (S) Parameter declaration list is incompatible with declarator
for inline.
"/tmp/foo.c", line 2674.1:
1506-276 (S) Syntax error: possible missing '{'?
"/tmp/foo.c", line 2677.69:
1506-045 (S) Undeclared identifier s.
"/tmp/foo.c", line 2677.75:
1506-045 (S) Undeclared identifier n.
"/tmp/foo.c", line 2679.20:
1506-045 (S) Undeclared identifier p.
"/tmp/foo.c", line 2683.1:
1506-277 (S) Syntax error: possible missing ';' or ','?
"/tmp/foo.c", line 2681.1:
1506-485 (S) Parameter declaration list is incompatible with declarator
for inline.
"/tmp/foo.c", line 2688.13:
1506-045 (S) Undeclared identifier n.
"/tmp/foo.c", line 2692.32:
1506-045 (S) Undeclared identifier s.
"/tmp/foo.c", line 2696.3:
1506-046 (S) Syntax error.
address@hidden ==> xlc /tmp/foo.c
"/tmp/foo.c", line 4966.16:
1506-045 (S) Undeclared identifier SYSINT_BUFSIZE.
"/tmp/foo.c", line 4966.15:
1506-1324 (S) Array size must have integer type.
"/tmp/foo.c", line 4967.16:
1506-045 (S) Undeclared identifier SYSINT_BUFSIZE.
"/tmp/foo.c", line 4967.15:
1506-1324 (S) Array size must have integer type.
"/tmp/foo.c", line 5058.17:
1506-045 (S) Undeclared identifier SYSINT_BUFSIZE.
"/tmp/foo.c", line 5058.16:
1506-1324 (S) Array size must have integer type.
Best regards, and Happy Holidays
Yannick Bergeron
Advisory IT Specialist
From:
Paul Eggert <address@hidden>
To:
Yannick Y Bergeron/Bromont/address@hidden,
Cc:
address@hidden
Date:
12/24/2013 12:54 PM
Subject:
Re: [Bug-tar]
tar 1.27.1 compile error on AIX 7.1 TL2 SP3 and AIX 6.1 TL8 SP3 with IBM
XL C/C++
address@hidden wrote:
> tar.output is kinda big, and so is the enum to get the SYSINT_BUFSIZE
> value...
True, but SYSINT_BUFSIZE is being declared.
And it's being used on the next line
(line 4602 of tar-1.output).
So why is SYSINT_BUFSIZE "undeclared" later? It's
a global identifier; once that's declared,
it should never become undeclared.
Could be a compiler bug.
What happens if you remove every line starting with "#"
from tar-1.output, put the result into a file called
"foo.c", and compile foo.c? Here's what happens on
my Ubuntu 13.10 host when I run "gcc -c foo.c"
(these warnings may be due to architectural differences).
I don't see a problem with SYSINT_BUFSIZE here.
foo.c: In function ‘append_incremental_renames’:
foo.c:4706:170: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
( (&stk)->temp.tempint = (char *) (0) - (char *) (&stk)->chunk,
((((&stk)->temp.tempint > 0 && (&stk)->temp.tempint
< (&stk)->chunk_limit - (char *) (&stk)->chunk)) ? (int)
((&stk)->next_free = (&stk)->object_base = (&stk)->temp.tempint
+ (char *) (&stk)->chunk) : (((obstack_free) ((&stk), (&stk)->temp.tempint
+ (char *) (&stk)->chunk), 0), 0)));
^
foo.c: In function ‘read_incr_db_2’:
foo.c:4942:180: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
( (&stk)->temp.tempint = (char *) (content)
- (char *) (&stk)->chunk, ((((&stk)->temp.tempint > 0
&& (&stk)->temp.tempint < (&stk)->chunk_limit
- (char *) (&stk)->chunk)) ? (int) ((&stk)->next_free = (&stk)->object_base
= (&stk)->temp.tempint + (char *) (&stk)->chunk) : (((obstack_free)
((&stk), (&stk)->temp.tempint + (char *) (&stk)->chunk),
0), 0)));
^