Am Dienstag den, 2. Dezember 2003, um 18:24, schrieb Dara Hazeghi:


P.S. BTW, how did you manage to build a cross-compiler
to darwin? I've never gotten the process to work fully.

Strange, it was YOUR thread on the list: "[distcc] distcc with cc1", that helped me to figure out the scheme.

Anyway, here is my receipt:

--- Begin of LinuxPC-stuff ---

host=i686-pc-linux-gnu
target=powerpc-apple-darwin
prefix=/usr/local/$target

1. Build of gcc-3.3.2 on LinuxPC (i686-pc-linux-gnu). No probs.

2. Build of binutils-2.14 on LinuxPC. No Probs.
   $ ../binutils/configure --target=$target --prefix=$prefix
   $ make
   $ make install

3. Copy "/usr/include" from MacOS X to LinuxPC as "/usr/local/powerpc-apple-darwin/"
but take care:


$ dir /usr/include/gcc/darwin/2.95.2/g++/
total 1232
-r--r--r-- 1 root wheel 1049 Sep 2 2001 typeinfo
-r--r--r-- 1 root wheel 161 Sep 2 2001 new.h
-r--r--r-- 1 root wheel 1207 Sep 2 2001 new
...
-r--r--r-- 1 root wheel 13509 Sep 2 2001 bastring.cc
-r--r--r-- 1 root wheel 4314 Sep 2 2001 strstream.h
lrwxr-xr-x 1 root wheel 1 Sep 2 2001 std -> . <--- !!! ATTENTION !!! gets recursiv!
-r--r--r-- 1 root wheel 2230 Sep 2 2001 _G_config.h
drwxr-xr-x 127 root wheel 4274 Sep 2 2001 .
drwxr-xr-x 12 root wheel 364 Sep 2 2001 ..


   Before copying / archiving you have to remove "std".
   Before your next compile on the Mac you have to re-link "std" again...

4. Build of gcc-3.3.2 CrossCompiler on LinuxPC. Lots of troubles.
$ ../gcc/configure --target=$target --prefix=$prefix
*** This configuration is not supported in the following subdirectories:
target-libffi target-boehm-gc target-zlib target-libjava
(Any other directories should still work fine.)
$ make -k
$ make install -k
The "-k" was the trick. From YOUR thread I learned, that there is no darwin-assembler in gcc.


5. Copy the not installed "cc1", "cc1plus" "by hand".
   cd ~/YOUR-BUILD-WORKING-DIR/build-gcc-powerpc-apple-darwin/gcc
   sudo cp -p cc1 /usr/local/powerpc-apple-darwin/lib/gcc-
lib/powerpc-apple-darwin/3.3.2/
   sudo cp -p cc1plus /usr/local/powerpc-apple-darwin/lib/gcc-
lib/powerpc-apple-darwin/3.3.2/

--- End of LinuxPC-stuff ---

--- Begin of MacOS X-stuff ---

6. I used a wrapper-script for "cc" on MacOS X.

It is a perl-script with the following core:

# Output CompilerCmds
#--------------------------------------------------
Command ("/usr/bin/cc -E $NoOutParameters $Name.$Extension > $Name.i\n"); # LOCAL
Command ("powerpc-apple-darwin-gcc $NoOutParameters -S $Name.i -o $Name.s\n"); # DISTANT
Command ("/usr/bin/cc $Name.s $TheParameters \n"); # LOCAL
Command ("rm $Name.i $Name.s\n"); # LOCAL
#--------------------------------------------------
# Output CompilerCmds


Quick Description:
$TheParameters: All parameters.
$NoOutParameters: All parameters except "-o file".
$Name: Source-file-name.
The script also handles a problem with quoting of parameters.
My test-case was the "readline-4.3" library. The Makefile generates lines like:
... -DRL_LIBRARY_VERSION='"4.3"' ...
This is handled by the perl-script.


If someone is interested I can post the complete script.

7. Create the necessary links.

$ dir /usr/lib/distcc/bin
total 64
drwxr-xr-x 3 root wheel 58 Nov 25 14:58 ..
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-jv-scan -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-jcf-dump -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-gcjh -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-gcj -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-gcc-3.3.2 -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-gcc -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-g77 -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-g++ -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-cpp -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 powerpc-apple-darwin-c++ -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 jar -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 grepjar -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 21 Nov 29 12:10 gcc -> /usr/local/bin/distcc
lrwxr-xr-x 1 root wheel 28 Nov 29 12:10 cc -> /Users/markus/Src/CC-Dist.pm <--- SCRIPT SEE ABOVE
drwxr-xr-x 18 root wheel 568 Nov 29 12:10 .


8. For me with MacOS X 10.1.5
   DISTCC_MMAP=0 is essential.

9. Time the success:
   Local:
   (G3 / 350 MHz)
   real    1m6.498s
   user    0m48.330s
   sys     0m8.440s

   Distccd (tcp) -j 5, no "localhost"
   (Intel SuSE-Linux / 900 MHz)
   real    0m39.759s
   user    0m21.170s
   sys     0m11.380s

--- End of MacOS X-stuff ---

HTH

Markus

----------------------------------------------------------------------
M. Biermaier
Wiesengasse 15
3011  Untertullnerbach                    E-Mail: mbier AT office-m.at
Austria / Europe                      Web Site: http://www.office-m.at

__ distcc mailing list http://distcc.samba.org/
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/distcc

Reply via email to