Date: Tue, 4 Aug 2015 18:46:29 -0400 From: Jung-uk Kim <jkim@FreeBSD.org> To: Carlos Jacobo Puga Medina <cpm@fbsd.es>, "freebsd-ports@freebsd.org" <freebsd-ports@freebsd.org> Subject: Re: lang/tcc unusable Message-ID: <55C140C5.1010404@FreeBSD.org> In-Reply-To: <1438726953.17293.9.camel@fbsd.es> References: <1438633579.6572.13.camel@fbsd.es> <55BFD033.8070507@FreeBSD.org> <1438634467.7343.2.camel@fbsd.es> <55BFDCA0.8040006@FreeBSD.org> <1438638022.7343.7.camel@fbsd.es> <55BFEAAA.4070008@FreeBSD.org> <1438644237.7343.13.camel@fbsd.es> <55C005D7.3050103@FreeBSD.org> <1438700587.2911.4.camel@fbsd.es> <55C13155.3070500@FreeBSD.org> <1438726953.17293.9.camel@fbsd.es>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 08/04/2015 18:22, Carlos Jacobo Puga Medina wrote: > El mar, 04-08-2015 a las 17:40 -0400, Jung-uk Kim escribió: >> On 08/04/2015 11:03, Carlos Jacobo Puga Medina wrote: >>> El lun, 03-08-2015 a las 20:22 -0400, Jung-uk Kim escribió: >>>> On 08/03/2015 19:23, Carlos Jacobo Puga Medina wrote: >>>>> El lun, 03-08-2015 a las 18:26 -0400, Jung-uk Kim >>>>> escribió: >>>>>> On 08/03/2015 17:40, Carlos Jacobo Puga Medina wrote: >>>>>>> El lun, 03-08-2015 a las 17:26 -0400, Jung-uk Kim >>>>>>> escribió: >>>>>>>> On 08/03/2015 16:41, Carlos Jacobo Puga Medina >>>>>>>> wrote: >>>>>>>>> El lun, 03-08-2015 a las 16:33 -0400, Jung-uk Kim >>>>>>>>> escribió: >>>>>>>>> >>>>>>>>> Hi Jung-uk, >>> >>>>>>>>>> On 08/03/2015 16:26, Carlos Jacobo Puga Medina >>>>>>>>>> wrote: >>>>>>>>>>> Hi people, >>>>>>>>>>> >>>>>>>>>>> Recently I added amd64 support to TinyCC, but I >>>>>>>>>>> encounter the following problem trying to >>>>>>>>>>> compile a simple code. >>>>>>>>>>> >>>>>>>>>>> #include <stdio.h> >>>>>>>>>>> >>>>>>>>>>> int main(){ printf("hello, world!\n); return 0; >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> % tcc -o hello hello.c In file included from >>>>>>>>>>> hello.c:1: /usr/include/stdio.h:63: error: ';' >>>>>>>>>>> expected (got "va_list") >>>>>>>>>>> >>>>>>>>>>> I guess that some change introduced in >>>>>>>>>>> 'stdio.h' causes this weird behaviour. Last >>>>>>>>>>> time that TCC worked fine was on FreeBSD 9.1 >>>>>>>>>>> -RELEASE/i386. >>>>>>>>>>> >>>>>>>>>>> Also I reported this problem in the >>>>>>>>>>> tinycc-devel mailing list [1] >>>>>>>>>>> >>>>>>>>>>> Any thoughts? >>>>>>>>>> >>>>>>>>>> I haven't tried tcc but '"' is missing for the >>>>>>>>>> printf(). >>>>>>>>> >>>>>>>>> Yes, it was a typo here :) >>>>>>>> >>>>>>>> It seems it's a known tcc bug: >>>>>>>> >>>>>>>> http://savannah.nongnu.org/bugs/?30966 >>>>>>>> >>>>>>> >>>>>>> Is there something that we can do about it? >>>>>>> >>>>>>> Thanks for pointing me, jkim@ >>>>>> >>>>>> It seems there is no easy way to fix this problem without >>>>>> touching src tree, e.g., >>>>>> >>>>>> --- sys/x86/include/_types.h (revision 286256) +++ >>>>>> sys/x86/include/_types.h (working copy) @@ -152,7 +152,7 >>>>>> @@ */ #ifdef __GNUCLIKE_BUILTIN_VARARGS typedef >>>>>> __builtin_va_lis t __va_list; /* internally known to gcc >>>>>> */ -#elif defined(lint) +#elif defined(__TINYC__) || >>>>>> defined(lint) typedef char * __va_list; /* pretend */ >>>>>> #endif #if defined(__GNUC_VA_LIST_COMPATIBILITY) && >>>>>> !defined(__GNUC_VA_LIST) \ >>>>>> >>>>> >>>>> If you need doing some changes into the src tree. >>>> >>>> https://svnweb.freebsd.org/changeset/base/286265 >>>> >>> >>> That's OK! >>> >>>>> So, what do you recommend in such case? Would it be much >>>>> trouble add the necessary changes to run TCC again? >>>>> Furthermore, TinyCC developer has ignored this issue >>>>> completely. >>>> >>>> The only hack I see is defining __va_list as a macro from >>>> libtcc.c but it is ugly. >>>> >>> >>> Probably this should be discussed in the tinycc-devel ML. In >>> the meanwhile we can try your dirty hack :-) >> >> See the attached patch. Yes, it is ugly. ;-) > > It works :) > > If I compile some c file it generates a coredump (Bus error) > > /* traditional way */ > > % tcc -o hello hello.c % ./hello Bus error (core dumped) > > Although, it works using '-run' option > > % tcc -run hello.c hello, world! Yes, I saw that, too. % cat hello.c #include <stdio.h> int main(void) { printf("Hello, world!\n"); return (0); } % tcc -c hello.c % tcc -o hello hello.o % ./hello Bus error (core dumped) % cc -o hello hello.o % ./hello Hello, world! In other words, tcc can compile but linking is broken, I guess. Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVwUC/AAoJEHyflib82/FGJHkH/3Pi3cKj3nSZD6iNg4T0JY2/ BIo0FM2kkKbzdcKJfpYd8kxwqb3zeEkyL9Bq6JAHNkQo7ehPjBTgJHb7hMr8uyYa VCXhSjJI/jTFsSuey6000XA6Rj6q6oPB22L9Ojgdca+dN0RShNeUTcuT6lB637uj TyPjkBFvOGBNEZti+/uJmmOlwn3d/xB1j9voYaq1oIXwUb7Zof178aBvWGdPCPNu owBuPJ/dYodh5j4hWpxOsQspeRWJkRMa1i9FGg/rByb6dR4YL5Go/7RciCc5AXn7 hbRUwKvnyZihUnE0AHqBWndgLdYkP8OHYprBVqD0Zdj5YR+gqA4lXsthR9vOi2w= =nFtd -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55C140C5.1010404>