[distcc] Re: ARM Tools / ADS (tcc tccp armcomp) porting

Aaron Perez Aaron.Perez at Hospira.com
Tue Apr 15 21:25:33 GMT 2008


Wang Lixin <wanglx <at> huawei.com> writes:

> 
> 
> Hi,
> 
>  
> I am 
> interesting in DISTCC porting for ARM/ADS. How can i get this patch? 
> Can you send it to me by email.
> Thanks.
> 
>  
> B.R. 
> Wang Lixin
> 
> 
> 
> __ 
> distcc mailing list            http://distcc.samba.org/
> To unsubscribe or change options: 
> https://lists.samba.org/mailman/listinfo/distcc

All,

    I've been playing with the distcc/armcc combo for a while now and though 
I'd like to go through the formal development process, it's not all that 
straightforward and I don't have that much free time (enough ranting).

    To the point, armcc/armcpp won't compile anything that it's not expecting 
(*.i, *.ii, etc. vs. *.c, *.cpp, etc). Apparently it doesn't even try to open 
it, it just dies with a semi-cryptic C3065E: type of <file> unknown. I wrote a 
DISTCC_KEEP_FILETYPE flag so that armcc is happy and it appears to working 
correctly (I haven't gotten a full compile yet due to lack of time and a 
complex makefile system).

    Also, I had to setup TMPDIR=c:/cygwin/tmp/ or armcc kept erroring with a 
can't find /tmp/file.c. If I gave it a relative path it was fine but it didn't 
like an absolute path. A co-worker and I stumbled upon giving it the DOS path 
instead of /cygdrive/c/cygwin/tmp/ that CygWin thinks it is and that was the 
last piece of the puzzle.

    Hope this helps everybody running a distcc/armcc/cygwin chain.

Here's the diff
diff ./distcc-2.18.3/src/filename.c ./original/distcc-2.18.3/src/filename.c
140,167c140,157
<
<     /*
<      * Keep the file's extension *.c, *.cpp, etc. instead of *.i, *.ii, etc.
<      * Some compiler's (i.e. ARM's armcc, armcpp, etc.) will only compile 
expected filetypes
<      * and *.i, *.ii, etc. are not expected.
<      */
<     if (dcc_getenv_bool("DISTCC_KEEP_FILETYPE", 1)) {
<         return e;
<       } else {
<           e++;
<         if (!strcmp(e, "i") || !strcmp(e, "c")) {
<             return ".i";
<         } else if (!strcmp(e, "c") || !strcmp(e, "cc")
<                    || !strcmp(e, "cpp") || !strcmp(e, "cxx")
<                    || !strcmp(e, "cp") || !strcmp(e, "c++")
<                    || !strcmp(e, "C") || !strcmp(e, "ii")) {
<             return ".ii";
<         } else if(!strcmp(e,"mi") || !strcmp(e, "m")) {
<             return ".mi";
<         } else if(!strcmp(e,"mii") || !strcmp(e,"mm")
<                     || !strcmp(e,"M")) {
<             return ".mii";
<         } else if (!strcasecmp(e, "s")) {
<             return ".s";
<         } else {
<             return NULL;
<         }
<     }
---
>     e++;
>     if (!strcmp(e, "i") || !strcmp(e, "c")) {
>         return ".i";
>     } else if (!strcmp(e, "c") || !strcmp(e, "cc")
>                || !strcmp(e, "cpp") || !strcmp(e, "cxx")
>                || !strcmp(e, "cp") || !strcmp(e, "c++")
>                || !strcmp(e, "C") || !strcmp(e, "ii")) {
>         return ".ii";
>     } else if(!strcmp(e,"mi") || !strcmp(e, "m")) {
>         return ".mi";
>     } else if(!strcmp(e,"mii") || !strcmp(e,"mm")
>                 || !strcmp(e,"M")) {
>         return ".mii";
>     } else if (!strcasecmp(e, "s")) {
>         return ".s";
>     } else {
>         return NULL;
>     }



More information about the distcc mailing list