<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="keywords" content="Linux to PPC Darwin Cross Compiler,PhotoRec,TestDisk" /> <link rel="shortcut icon" href="favicon.ico" /> <link rel="search" type="application/opensearchdescription+xml" href="opensearch_desc.php" title="CGSecurity (English)" /> <link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html" /> <title>Linux to PPC Darwin Cross Compiler - CGSecurity</title> <style type="text/css" media="screen, projection">/*<![CDATA[*/ @import "shared.css_97.css"; @import "main.css_97.css"; /*]]>*/</style> <link rel="stylesheet" type="text/css" media="print" href="commonprint.css_97.css" /> <!--[if lt IE 5.5000]><style type="text/css">@import "ie50fixes.css_97.css";</style><![endif]--> <!--[if IE 5.5000]><style type="text/css">@import "ie55fixes.css_97.css";</style><![endif]--> <!--[if IE 6]><style type="text/css">@import "ie60fixes.css_97.css";</style><![endif]--> <!--[if IE 7]><style type="text/css">@import "ie70fixes.css_97.css";</style><![endif]--> <!--[if lt IE 7]><script type="text/javascript" src="iefixes.js_97"></script> <meta http-equiv="imagetoolbar" content="no" /><![endif]--> <script type= "text/javascript">/*<![CDATA[*/ var skin = "monobook"; var stylepath = "/mw/skins"; var wgArticlePath = "/wiki/$1"; var wgScriptPath = "/mw"; var wgScript = "/mw/index.php"; var wgServer = "http://www.cgsecurity.org"; var wgCanonicalNamespace = ""; var wgCanonicalSpecialPageName = false; var wgNamespaceNumber = 0; var wgPageName = "Linux_to_PPC_Darwin_Cross_Compiler"; var wgTitle = "Linux to PPC Darwin Cross Compiler"; var wgAction = "view"; var wgRestrictionEdit = []; var wgRestrictionMove = []; var wgArticleId = "1357"; var wgIsArticle = true; var wgUserName = null; var wgUserGroups = null; var wgUserLanguage = "en"; var wgContentLanguage = "en"; var wgBreakFrames = false; var wgCurRevisionId = "3198"; /*]]>*/</script> <script type="text/javascript" src="wikibits.js_97"><!-- wikibits js --></script> <script type="text/javascript" src="http://www.cgsecurity.org/mw/index.php?title=-&action=raw&gen=js&useskin=monobook"><!-- site js --></script> <style type="text/css">/*<![CDATA[*/ @import "Common.css"; @import "Monobook.css"; @import "dyn.css"; /*]]>*/</style> <!-- Head Scripts --> <script type="text/javascript" src="ajax.js_97"></script> </head> <body class="mediawiki ns-0 ltr page-Linux_to_PPC_Darwin_Cross_Compiler"> <div id="globalWrapper"> <div id="column-content"> <div id="content"> <a name="top" id="top"></a> <h1 class="firstHeading">Linux to PPC Darwin Cross Compiler</h1> <div id="bodyContent"> <h3 id="siteSub">From CGSecurity</h3> <div id="contentSub"></div> <div id="jump-to-nav">Jump to: <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div> <!-- start content --> <a name="Linux_to_powerpc_Darwin.2FOSX_cross-compiler"></a><h2> <span class="mw-headline"> Linux to powerpc Darwin/OSX cross-compiler </span></h2> <p>This script is designed to be run as root. The goal is to install a cross-compiler to be able to build <a href="testdisk.html" title="TestDisk">TestDisk</a> and <a href="photorec.html" title="PhotoRec">PhotoRec</a> for MacOS X. </p> <pre> #!/bin/sh # This script builds and installs a gcc cross compiler from Linux # to darwin # Copyright Christophe GRENIER <grenier@cgsecurity.org> # Licence: GPL v2 or any later version # Version 2006/02/24 root=`pwd` name=`basename $0` WGET=wget die () { echo >&2 "$1" exit 1 } exists () { if [ ! -r "$1" ]; then die "$1 does not exist" fi } usage () { die "usage: $name [clean]" } case "$#" in 1) case "$1" in clean) rm -rf build-binutils* build-gcc* exit 0 ;; *) usage ;; esac ;; esac # You may want to change the installation prefix, which is where the # script will install the cross-compiler tools. prefix='/usr' gccVers='4.0.2' odcctoolsVers='20060123' GCCSOURCE="ftp://ftp.uvsq.fr/pub/gcc/releases/gcc-$gccVers" DARWINROOTS="http://darwinsource.opendarwin.org/Roots" CCTOOLSSOURCE="http://www.opendarwin.org/downloads/" target='powerpc-apple-darwin' configureGCCFlags="--with-as=/usr/bin/$target-as --with-ld=/usr/bin/$target-ld --with-libtool=/usr/bin/$target-libtool" makeGCCFlags='' gccTarBz2="gcc-core-$gccVers.tar.bz2" gxxTarBz2="gcc-g++-$gccVers.tar.bz2" echo 'Checking that needed files exist.' for file in architecture-245.root.tar.gz Csu-57.root.tar.gz dyld-43.root.tar.gz gcc-4061.root.tar.gz gcc_os-1809.root.tar.gz gcc_select-46.root.tar.gz Libc-391.root.tar.gz Libc_headers-391.root.tar.gz Libc_static-391.root.tar.gz libdyld-43.root.tar.gz Libm-93.root.tar.gz Libmx-93.root.tar.gz Libsystem-88.root.tar.gz ncurses-8.1.root.tar.gz SystemStubs-5.root.tar.gz xnu-792.1.5.root.tar.gz zlib-15.root.tar.gz OpenSSL-26.root.tar.gz do if [ ! -e $file ]; then $WGET $DARWINROOTS/$file exists $file fi done #$gxxTarBz2 for file in $gccTarBz2 do if [ ! -e $file ]; then $WGET $GCCSOURCE/$file exists $file fi done for file in odcctools-$odcctoolsVers.tar.bz2 do if [ ! -e $file ]; then $WGET $CCTOOLSSOURCE/$file exists $file fi done echo 'Creating the env' mkdir -p $prefix/$target || die "Cannot create $prefix/$target." ln -sf $prefix/$target $prefix/$target/usr ln -sf $prefix/$target $prefix/$target/local ln -sf $prefix/$target/lib/system/ /usr/lib/system for file in architecture-245.root.tar.gz Csu-57.root.tar.gz dyld-43.root.tar.gz gcc-4061.root.tar.gz gcc_os-1809.root.tar.gz gcc_select-46.root.tar.gz Libc-391.root.tar.gz Libc_headers-391.root.tar.gz Libc_static-391.root.tar.gz libdyld-43.root.tar.gz Libm-93.root.tar.gz Libmx-93.root.tar.gz Libsystem-88.root.tar.gz ncurses-8.1.root.tar.gz SystemStubs-5.root.tar.gz xnu-792.1.5.root.tar.gz do tar xzf $file -C $prefix/$target done echo 'Building odcctools.' if [ ! -d odcctools-$odcctoolsVers ]; then tar xjf odcctools-$odcctoolsVers.tar.bz2 fi cd odcctools-$odcctoolsVers eval ./configure --target=$target --prefix=/usr 2>&1 | tee $root/configure-odcctools-$target.log || die "Configure of odcctools failed." # Remove ld64 as it doesn't compile perl -pi -e "s,COMPONENTS = ar as include libstuff libmacho ld ld64 man misc otool,COMPONENTS = ar as include libstuff libmacho ld man misc otool,;" Makefile eval make 2>&1 | tee $root/odcctools-$target.log || die "Build of odcctools failed." eval make install 2>&1 | tee $root/odcctools-$target-install.log #|| die "Install of odcctools failed." echo 'Building gcc.' cd $root if [ ! -d gcc-$gccVers ]; then tar xjf $gccTarBz2 # tar xjf $gxxTarBz2 fi perl -pi -e "s,/usr/bin/libtool,/usr/bin/$target-libtool,;" gcc-$gccVers/gcc/config/darwin.h mkdir -p build-gcc-$target cd build-gcc-$target # --enable-languages=c,c++ \ eval ../gcc-$gccVers/configure -v $configureGCCFlags \ --enable-languages=c \ --prefix=$prefix \ --target=$target \ --enable-static --enable-shared \ 2>&1 | tee $root/configure-gcc-$target.log || die "Configure of gcc failed." eval make $makeGCCFlags all install 2>&1 |tee $root/gcc-$target.log || die "Build of gcc failed." echo 'Success.' </pre> <p>Once the cross-compiler is installed, you should be able to build a program using </p> <pre> ./configure --host=powerpc-apple-darwin && make </pre> <!-- Saved in parser cache with key cg_mw-mw_:pcache:idhash:1357-0!1!0!!en!2!edit=0 and timestamp 20071124214849 --> <div id="catlinks"><p class='catlinks'><a href="http://www.cgsecurity.org/wiki/Special:Categories" title="Special:Categories">Category</a>: <span dir='ltr'><a href="http://www.cgsecurity.org/wiki/Category:Data_Recovery" title="Category:Data Recovery">Data Recovery</a></span></p></div> <!-- end content --> <div class="visualClear"></div> </div> </div> </div> <div id="column-one"> <div class="portlet" id="p-logo"> <a style="background-image: url(logo.png);" href="http://www.cgsecurity.org/" title="Visit the Main Page [z]" accesskey="z"></a> </div> <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> <div class='portlet' id='p-Data_Recovery'> <h5>Data Recovery</h5> <div class='pBody'> <ul> <li id="n-TestDisk"><a href="testdisk.html">TestDisk</a></li> <li id="n-PhotoRec"><a href="photorec.html">PhotoRec</a></li> <li id="n-Download"><a href="testdisk_download.html">download</a></li> </ul> </div> </div> </div><!-- end of the left (by default at least) column --> <div class="visualClear"></div> <div id="footer"> <div id="f-copyrightico"><a href="http://www.gnu.org/copyleft/fdl.html"><img src="gnu_fdl.png" alt='GNU Free Documentation License 1.2' /></a></div> <ul id="f-list"> <li id="lastmod"> This page was last modified 22:46, 7 December 2006.</li> <li id="copyright">Content is available under <a href="http://www.gnu.org/copyleft/fdl.html" class="external " title="http://www.gnu.org/copyleft/fdl.html" rel="nofollow">GNU Free Documentation License 1.2</a>.</li> </ul> </div> <script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script> </div> </body><!-- Cached 20071124214849 --> </html>