Re: [Tinycc-devel] Segmentation Faults and test failures on ARM (Raspbian/Raspberry Pi)
Le mercredi 30 janvier 2013 06:31:12, Christian Jullien a écrit : Hi all, The only very minor issue I had is that, by default, GNU time is not installed on RPi this prevents test/speedtest to work. Not really an issue I would say, it happens a lot to need additional dependency to run a testsuite. And I prefer that people have a failure because of missing dependency than no failure and miss a regression due to this test being deactivated. After installing GNU time, all works ROOTB (only got one warning in tccpp.c and another with texi2html) Best regards, Thomas signature.asc Description: This is a digitally signed message part. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Call for testing
Le samedi 26 janvier 2013 07:09:11, Feng Nauh a écrit : tinycc/tests: on archlinux x86_64, make weaktest, result as: ... tcctest.c:391:5: note: use option -std=c99 or -std=gnu99 to compile your code make: *** [weaktest] Error 1 I think the weaktest is not included in the default tests precisely because it's broken. Best regards, Thomas signature.asc Description: This is a digitally signed message part. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
[Tinycc-devel] Changelog: call for update before release
Hi there, I think tinycc is ready for release now and I wanted to do it today before I noticed that the Changelog is quite small considering all the time passed since the last release. Hence I'm wondering if all the important bits are mentionned there. I'd thus like you to mention me any missing important user-related changes in the Changelog. As suggested by Grishka, we wan't to only mention what changes for the user of tcc. Please answer me here and I'll commit what I consider is missing. Don't feel offense if a change is not added in the Changelog. It might be very important to us tinycc developpers but not so much for the users of tinycc. There is a couple of fixes I did myself which I didn't put in the Changelog. Anyway, in doubt just mention your changes and I'll take the decision to add it or not to the Changelog. Best regards, Thomas signature.asc Description: This is a digitally signed message part. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Call for testing
Works fine on the BeagleBone as long as configured with --with-libgcc. I ran the make test many times, no Segmentation faults. Omitting --with-libgcc and building still result in this, however: Test: 11_precedence... tcc: error: undefined symbol '__aeabi_idiv' But I am very happy with the way the new release candidate works on both the Pi and the Bone. Clearly the Segmentation faults are fixed. Thanks to all for your great work on this. Regards, Jerry On Wed, Jan 30, 2013 at 10:59 AM, Thomas Preud'homme robo...@celest.frwrote: Le samedi 26 janvier 2013 07:09:11, Feng Nauh a écrit : tinycc/tests: on archlinux x86_64, make weaktest, result as: ... tcctest.c:391:5: note: use option -std=c99 or -std=gnu99 to compile your code make: *** [weaktest] Error 1 I think the weaktest is not included in the default tests precisely because it's broken. Best regards, Thomas ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel -- Interested in bats? Check out my blog at: http://www.karaokebats.com/ ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Changelog: call for update before release
Thomas Preud'homme wrote: Hi there, I think tinycc is ready for release now and I wanted to do it today before I noticed that the Changelog is quite small considering all the time passed since the last release. Hence I'm wondering if all the important bits are mentionned there. I'd thus like you to mention me any missing important user-related changes in the Changelog. As suggested by Grishka, we wan't to only mention what changes for the user of tcc. Please answer me here and I'll commit what I consider is missing. I did some cleanup. The idea is to make Changelog more interesting and readable to the user. Also I made some few other changes. Please re-test configure and build. Also with cross-compilers (configure --enable-cross) and the Out-of-tree build (../tinycc/configure [--enable-cross]) Anyway, Thomas, if your schedule allows, I'd just wait a week now for things to settle down. Thanks, --- grischka ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Changelog: call for update before release
Le mercredi 30 janvier 2013 19:00:43, grischka a écrit : I did some cleanup. The idea is to make Changelog more interesting and readable to the user. Much better indeed. Thanks. Also I made some few other changes. Please re-test configure and build. Also with cross-compilers (configure --enable-cross) and the Out-of-tree build (../tinycc/configure [--enable-cross]) Out-of-tree works with and without cross-compilation thanks to the just pushed patch ;) With regards to the line CPPFLAGS = -I$(TOP) added in Makefile, if it's necessary to compile, then there will be a problem whenever someone build with make CPPFLAGS = foo as it will override CPPFLAGS. CPPFLAGS += doesn't work either in that case. I thought about using override but then you need to use override everytime you want to modify it. Since this line is the only one to set the CPPFLAGS, maybe override can be used. What do you think? Anyway, Thomas, if your schedule allows, I'd just wait a week now for things to settle down. I was enthousiast about releasing tomorrow or friday but if you think it's best let's wait next wednesday. It'll give more time for people to show up and tell what changes they forgot to put in the Changelog. Thanks, --- grischka Best regards, Thomas signature.asc Description: This is a digitally signed message part. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Changelog: call for update before release
Thomas Preud'homme wrote: With regards to the line CPPFLAGS = -I$(TOP) added in Makefile, if it's necessary to compile, then there will be a problem whenever someone build with make CPPFLAGS = foo as it will override CPPFLAGS. CPPFLAGS += doesn't work either in that case. I thought about using override but then you need to use override everytime you want to modify it. Since this line is the only one to set the CPPFLAGS, maybe override can be used. What do you think? Well, you could do COMPILE_FLAGS = -I$(TOP) $(CPPFLAGS) $(CFLAGS) and then use $(COMPILE_FLAGS) instead of $(CPPFLAGS) $(CFLAGS) everywhere. I was enthousiast about releasing tomorrow or friday but if you think it's best let's wait next wednesday. Sure. It'll give more time for people to show up and tell what changes they forgot to put in the Changelog. You're optimistic to assume people showing up now who did something maybe two years (or even just two months) ago. ;) --- grischka ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
[Tinycc-devel] Small patch
Error: $ ./configure --cc=tcc Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc/tcc Target root prefix Source path /home/ivo/git/tinycc C compiler tcc Target OSLinux CPU x86 Big Endian no gprof enabledno cross compilers no use libgcc no Creating config.mak and config.h $ make [..snip..] gcc -c lib/bcheck.c -o bcheck.o -I. -I/home/ivo/git/tinycc -Wall -g -O2 -mpreferred-stack-boundary=2 -m386 -malign-functions=0 -m32 cc1: error: unrecognized command line option -m386 88888888 diff --git a/Makefile b/Makefile index d257464..0333ebe 100644 --- a/Makefile +++ b/Makefile @@ -232,7 +232,7 @@ libtcc1.a : FORCE lib/%/libtcc1.a : FORCE $(PROGS_CROSS) @$(MAKE) -C lib cross TARGET=$* bcheck.o : lib/bcheck.c - gcc -c $ -o $@ $(CPPFLAGS) $(CFLAGS) + $(CC) -c $ -o $@ $(CPPFLAGS) $(CFLAGS) FORCE: # install ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Small patch
Hello ! I'm looking again on the reports done with Coverity Scan and found several things one of it is this: static void asm_expr_prod(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_unary(s1, pe); for(;;) { op = tok; if (op != '*' op != '/' op != '%' op != TOK_SHL op != TOK_SAR) break; next(); asm_expr_unary(s1, e2); if (pe-sym || e2.sym) tcc_error(invalid operation with label); switch(op) { case '*': pe-v *= e2.v; break; case '/': if (e2.v == 0) { div_error: tcc_error(division by zero); } pe-v /= e2.v; break; case '%': if (e2.v == 0) goto div_error; pe-v %= e2.v; break; case TOK_SHL: pe-v = e2.v; break; default: case TOK_SAR:this case after default what does it mean ?? pe-v = e2.v; break; } } } On Wed, Jan 30, 2013 at 11:08 PM, Ivo van Poorten ivo...@gmail.com wrote: Error: $ ./configure --cc=tcc Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc/tcc Target root prefix Source path /home/ivo/git/tinycc C compiler tcc Target OSLinux CPU x86 Big Endian no gprof enabledno cross compilers no use libgcc no Creating config.mak and config.h $ make [..snip..] gcc -c lib/bcheck.c -o bcheck.o -I. -I/home/ivo/git/tinycc -Wall -g -O2 -mpreferred-stack-boundary=2 -m386 -malign-functions=0 -m32 cc1: error: unrecognized command line option -m386 88888888 diff --git a/Makefile b/Makefile index d257464..0333ebe 100644 --- a/Makefile +++ b/Makefile @@ -232,7 +232,7 @@ libtcc1.a : FORCE lib/%/libtcc1.a : FORCE $(PROGS_CROSS) @$(MAKE) -C lib cross TARGET=$* bcheck.o : lib/bcheck.c - gcc -c $ -o $@ $(CPPFLAGS) $(CFLAGS) + $(CC) -c $ -o $@ $(CPPFLAGS) $(CFLAGS) FORCE: # install ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Small patch
Here is some that I found simple to make: Author: mingodad mingo...@gmail.com 2013-01-31 01:17:50 Committer: mingodad mingo...@gmail.com 2013-01-31 01:17:50 Parent: 1b1e7ee1fd2f269872128dc5e8b830bd55dfa80c (Fix cross-compilation out-of-tree build) Branch: vio_patch Follows: release_0_9_25 Precedes: Alerts found using Coverity Scan --- libtcc.c --- index b0a9b1a..69d9e0d 100644 @@ -479,8 +479,7 @@ ST_FUNC void put_extern_sym2(Sym *sym, Section *section, case TOK_strlen: case TOK_strcpy: case TOK_alloca: -strcpy(buf, __bound_); -strcat(buf, name); +snprintf(buf, sizeof(buf), __bound_%s, name); name = buf; break; } --- tccelf.c --- index a4dee19..479b2fa 100644 @@ -114,7 +114,7 @@ ST_FUNC int put_elf_sym(Section *s, uplong value, unsigned long size, if (ELFW(ST_BIND)(info) != STB_LOCAL) { /* add another hashing entry */ nbuckets = base[0]; -h = elf_hash(name) % nbuckets; +h = name ? elf_hash(name) % nbuckets : 0; *ptr = base[2 + h]; base[2 + h] = sym_index; base[1]++; @@ -3052,7 +3052,7 @@ static int ld_add_file_list(TCCState *s1, const char *cmd, int as_needed) ret = -1; goto lib_parse_error; } -strcpy(libname, filename[1]); +snprintf(libname, sizeof(libname), %s, filename[1]); libname_to_filename(s1, libname, filename); } else if (t != LD_TOK_NAME) { tcc_error_noabort(filename expected); --- tccgen.c --- index 4300403..e06a932 100644 @@ -361,6 +361,7 @@ void vpush64(int ty, unsigned long long v) CValue cval; CType ctype; ctype.t = ty; +ctype.ref = 0; cval.ull = v; vsetc(ctype, VT_CONST, cval); } @@ -1734,6 +1735,7 @@ ST_FUNC void gen_op(int op) } vswap(); type1.t = t; +type1.ref = 0; gen_cast(type1); vswap(); /* special case for shifts and long long: we keep the shift as @@ -2717,6 +2719,7 @@ static void struct_decl(CType *type, int u) v = anon_sym++; } type1.t = a; +type1.ref = 0; /* we put an undefined size for struct/union */ s = sym_push(v | SYM_STRUCT, type1, 0, -1); s-r = 0; /* default alignment is zero as gcc */ @@ -3396,6 +3399,7 @@ static void gfunc_param_typed(Sym *func, Sym *arg) /* default casting : only need to convert float to double */ if ((vtop-type.t VT_BTYPE) == VT_FLOAT) { type.t = VT_DOUBLE; +type.ref = 0; gen_cast(type); } } else if (arg == NULL) { @@ -3592,6 +3596,7 @@ ST_FUNC void unary(void) if ((vtop-r (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST) { CType boolean; boolean.t = VT_BOOL; +boolean.ref = 0; gen_cast(boolean); vtop-c.i = !vtop-c.i; } else if ((vtop-r VT_VALMASK) == VT_CMP) @@ -4101,6 +4106,7 @@ static void expr_cond(void) CType boolean; int c; boolean.t = VT_BOOL; +boolean.ref = 0; vdup(); gen_cast(boolean); c = vtop-c.i; @@ -5574,7 +5580,7 @@ ST_FUNC void gen_inline_functions(void) str = fn-token_str; fn-sym = NULL; if (file) -strcpy(file-filename, fn-filename); +snprintf(file-filename, sizeof(file-filename), %s, fn-filename); sym-r = VT_SYM | VT_CONST; sym-type.t = ~VT_INLINE; On Thu, Jan 31, 2013 at 1:13 AM, Domingo Alvarez Duarte mingo...@gmail.comwrote: Also on this function: CID 968150 (#1 of 1): Unchecked return value (CHECKED_RETURN)6. check_return: Calling function parse_btype(CType *, AttributeDef *) without checking return value (as is done elsewhere 7 out of 8 times). /* enum/struct/union declaration. u is either VT_ENUM or VT_STRUCT */ static void struct_decl(CType *type, int u) { ... bit_pos = 0; offset = 0; while (tok != '}') { parse_btype(btype, ad); no check made here ? while (1) { bit_size = -1; v = 0; type1 = btype; On Thu, Jan 31, 2013 at 1:07 AM, Domingo Alvarez Duarte mingo...@gmail.com wrote: Also here : static void asm_expr_logic(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_prod(s1, pe); for(;;) { op = tok; if (op != '' op != '|' op != '^') break; next();
Re: [Tinycc-devel] Small patch
Also on this function: CID 968150 (#1 of 1): Unchecked return value (CHECKED_RETURN)6. check_return: Calling function parse_btype(CType *, AttributeDef *) without checking return value (as is done elsewhere 7 out of 8 times). /* enum/struct/union declaration. u is either VT_ENUM or VT_STRUCT */ static void struct_decl(CType *type, int u) { ... bit_pos = 0; offset = 0; while (tok != '}') { parse_btype(btype, ad); no check made here ? while (1) { bit_size = -1; v = 0; type1 = btype; On Thu, Jan 31, 2013 at 1:07 AM, Domingo Alvarez Duarte mingo...@gmail.comwrote: Also here : static void asm_expr_logic(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_prod(s1, pe); for(;;) { op = tok; if (op != '' op != '|' op != '^') break; next(); asm_expr_prod(s1, e2); if (pe-sym || e2.sym) tcc_error(invalid operation with label); switch(op) { case '': pe-v = e2.v; break; case '|': pe-v |= e2.v; break; default: case '^': ///what this case after default mean pe-v ^= e2.v; break; } } } On Thu, Jan 31, 2013 at 1:06 AM, Domingo Alvarez Duarte mingo...@gmail.com wrote: Hello ! I'm looking again on the reports done with Coverity Scan and found several things one of it is this: static void asm_expr_prod(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_unary(s1, pe); for(;;) { op = tok; if (op != '*' op != '/' op != '%' op != TOK_SHL op != TOK_SAR) break; next(); asm_expr_unary(s1, e2); if (pe-sym || e2.sym) tcc_error(invalid operation with label); switch(op) { case '*': pe-v *= e2.v; break; case '/': if (e2.v == 0) { div_error: tcc_error(division by zero); } pe-v /= e2.v; break; case '%': if (e2.v == 0) goto div_error; pe-v %= e2.v; break; case TOK_SHL: pe-v = e2.v; break; default: case TOK_SAR:this case after default what does it mean ?? pe-v = e2.v; break; } } } On Wed, Jan 30, 2013 at 11:08 PM, Ivo van Poorten ivo...@gmail.comwrote: Error: $ ./configure --cc=tcc Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc/tcc Target root prefix Source path /home/ivo/git/tinycc C compiler tcc Target OSLinux CPU x86 Big Endian no gprof enabledno cross compilers no use libgcc no Creating config.mak and config.h $ make [..snip..] gcc -c lib/bcheck.c -o bcheck.o -I. -I/home/ivo/git/tinycc -Wall -g -O2 -mpreferred-stack-boundary=2 -m386 -malign-functions=0 -m32 cc1: error: unrecognized command line option -m386 88888888 diff --git a/Makefile b/Makefile index d257464..0333ebe 100644 --- a/Makefile +++ b/Makefile @@ -232,7 +232,7 @@ libtcc1.a : FORCE lib/%/libtcc1.a : FORCE $(PROGS_CROSS) @$(MAKE) -C lib cross TARGET=$* bcheck.o : lib/bcheck.c - gcc -c $ -o $@ $(CPPFLAGS) $(CFLAGS) + $(CC) -c $ -o $@ $(CPPFLAGS) $(CFLAGS) FORCE: # install ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] Small patch
Also here : static void asm_expr_logic(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_prod(s1, pe); for(;;) { op = tok; if (op != '' op != '|' op != '^') break; next(); asm_expr_prod(s1, e2); if (pe-sym || e2.sym) tcc_error(invalid operation with label); switch(op) { case '': pe-v = e2.v; break; case '|': pe-v |= e2.v; break; default: case '^': ///what this case after default mean pe-v ^= e2.v; break; } } } On Thu, Jan 31, 2013 at 1:06 AM, Domingo Alvarez Duarte mingo...@gmail.comwrote: Hello ! I'm looking again on the reports done with Coverity Scan and found several things one of it is this: static void asm_expr_prod(TCCState *s1, ExprValue *pe) { int op; ExprValue e2; asm_expr_unary(s1, pe); for(;;) { op = tok; if (op != '*' op != '/' op != '%' op != TOK_SHL op != TOK_SAR) break; next(); asm_expr_unary(s1, e2); if (pe-sym || e2.sym) tcc_error(invalid operation with label); switch(op) { case '*': pe-v *= e2.v; break; case '/': if (e2.v == 0) { div_error: tcc_error(division by zero); } pe-v /= e2.v; break; case '%': if (e2.v == 0) goto div_error; pe-v %= e2.v; break; case TOK_SHL: pe-v = e2.v; break; default: case TOK_SAR:this case after default what does it mean ?? pe-v = e2.v; break; } } } On Wed, Jan 30, 2013 at 11:08 PM, Ivo van Poorten ivo...@gmail.comwrote: Error: $ ./configure --cc=tcc Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc/tcc Target root prefix Source path /home/ivo/git/tinycc C compiler tcc Target OSLinux CPU x86 Big Endian no gprof enabledno cross compilers no use libgcc no Creating config.mak and config.h $ make [..snip..] gcc -c lib/bcheck.c -o bcheck.o -I. -I/home/ivo/git/tinycc -Wall -g -O2 -mpreferred-stack-boundary=2 -m386 -malign-functions=0 -m32 cc1: error: unrecognized command line option -m386 88888888 diff --git a/Makefile b/Makefile index d257464..0333ebe 100644 --- a/Makefile +++ b/Makefile @@ -232,7 +232,7 @@ libtcc1.a : FORCE lib/%/libtcc1.a : FORCE $(PROGS_CROSS) @$(MAKE) -C lib cross TARGET=$* bcheck.o : lib/bcheck.c - gcc -c $ -o $@ $(CPPFLAGS) $(CFLAGS) + $(CC) -c $ -o $@ $(CPPFLAGS) $(CFLAGS) FORCE: # install ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel