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