From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4F1D1C4F.4040003@gmail.com> Date: Mon, 23 Jan 2012 09:37:35 +0100 From: Jens Staal User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111224 Thunderbird/9.0.1 MIME-Version: 1.0 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> References: <4F171398.8020701@Princeton.EDU> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [9fans] ape compiler error, IND CHAR and INT Topicbox-Message-UUID: 609d0b44-ead7-11e9-9d60-3106f5b1d025 I get the same error no matter which BASIC file that gets generated to C and it is put in the generated header file (at different row numbers, ofcourse. I used test1 as use case to try to track it down), so there is some sort of typedef inconsistency in there somewhere. I believe that it has something to do with strndup and the "switch" function in the generated header, but I am not sure exactly what. 2012-01-23 09:13, steve skrev: > I must have missed that one, > From your old report it seems tr problem is at line 432 of test1.bac.h > > Can you reproduce the error? > > -Steve > > On 23 Jan 2012, at 06:47 AM, Jens Staal wrote: > >> 2012/1/18 John Floren: >>> On Wed, Jan 18, 2012 at 10:46 AM, Martin Harriss wrote: >>>> John Floren wrote: >>>>> I figured I'd try building Python from the source on their website >>>>> just for kicks. Configure went ok, but when I went to run "make", it >>>>> soon bailed out with this error: >>>>> >>>>> cc -c -OPT:Olimit=0 -g -DNDEBUG -O -I. -IInclude -I./Include >>>>> -DPy_BUILD_CORE -o Parser/grammar.o Parser/grammar.c >>>>> cc: flag -P ignored >>>>> cc: flag -: ignored >>>>> cc: can't find library for -l >>>>> /usr/john/Python-2.7.2/Parser/grammar.c:46[stdin:12906] incompatible >>>>> types: "IND CHAR" and "INT" for op "AS" >>>>> /usr/john/Python-2.7.2/Parser/grammar.c:108[stdin:12968] incompatible >>>>> types: "IND CHAR" and "INT" for op "AS" >>>>> cc: cpp: 8c 896765: error >>>>> *** Error code 1 >>>>> # >>>>> >>>>> The offending lines are these: >>>>> >>>>> d->d_name = strdup(name); >>>>> and >>>>> lb->lb_str = strdup(str); >>>>> >>>>> d_name and lb_str are both defined as char*, and strdup is supposed to >>>>> return a char*. However, if I'm reading that error message correctly, >>>>> it thinks strdup is trying to return a char*. Does anyone recognize >>>>> what's going on? >>>> >>>> No declaration in scope for the string functions, compiler thinks they >>>> return INT? >>>> >>>> Martin >>>> >>> Yup, I r dum, needed a -D_BSD_EXTENSION in my flags to make string.h >>> behave right. >>> >> I have a similar issue with BaCon (a ksh script converting BASIC code >> to C), a modified version running under APE sh can be found here: >> >> http://code.google.com/p/ports2plan9/source/browse/BaCon >> >> Also this one has the problem 'incompatible types "IND CONST CHAR" and >> "INT" for op "AS"' >> >> and I have not been able to track down exactly where in the script >> that the erroneous code gets generated. >> >> issue described here: >> http://code.google.com/p/ports2plan9/issues/detail?id=1 >> >> I have already added the -D_BSD_EXTENSION in the CFLAGS in the script.