Bagaimana kita bisa memulihkan ppc / ppc64 serta dukungan penuh 10.4 / 10.5 SDK ke Xcode 4?

93

Karena Apple hanya mengirimkan SDK 10.6 dengan Xcode4, mengembangkan aplikasi PPC dengan Xcode4 menjadi tidak mungkin. Meskipun dimungkinkan untuk mengembangkan aplikasi dengan Xcode4 yang juga dapat berjalan pada 10.5 dan bahkan mungkin pada sistem 10.4 (dengan memilih SDK 10.6, tetapi menyebarkan target 10.5 atau 10.4), mereka hanya akan berjalan pada Intel Mac karena Anda memerlukan setidaknya SDK 10.5 untuk membangun aplikasi PPC.

Lebih lanjut, ada beberapa kasus yang jarang terjadi, di mana Anda benar-benar perlu membangun dengan SDK sebelum 10.6 untuk dukungan platform penuh, misalnya jika fungsi tertentu yang dihentikan telah hilang sepenuhnya dari SDK 10.6, tetapi Anda harus menggunakannya dan penautan dinamis tidak selalu menjadi pilihan terbaik dalam kasus tersebut. Juga menautkan ke SDK sebelumnya terkadang akan memudahkan pengembangan karena fungsionalitas yang tidak seharusnya Anda gunakan, karena akan menyebabkan ketidakcocokan dengan versi OS sebelumnya, tidak akan tersedia dan setiap upaya untuk menggunakannya segera mengarah ke kesalahan compiler atau linker.

Terakhir namun tidak kalah pentingnya Apple juga telah menghapus dukungan GCC 4.0 dari Xcode4, yang mungkin diperlukan untuk perangkat lunak tertentu agar dapat dibangun dengan benar dan Apple tidak pernah mengizinkan untuk mengkompilasi perangkat lunak dengan GCC 4.2 saat menggunakan SDK 10.4, meskipun saya hampir tidak percaya bahwa ini benar-benar akan menyebabkan masalah apa pun, setelah semua perangkat lunak yang dibuat dengan GCC 4.2 dan SDK 10.6 juga dapat berjalan di Mac OS 10.4 tanpa masalah apa pun selama target penerapan telah ditetapkan dengan benar dan tidak ada fungsionalitas yang tidak tersedia di MacOS 10.4 yang telah digunakan.

Tentu saja Anda selalu dapat memiliki instalasi Xcode3 paralel di samping Xcode4, tetapi itu berarti Anda harus melupakan semua fitur baru (hebat?) Xcode4 dan tetap bekerja dengan IDE Xcode3 yang sudah ketinggalan zaman. Akan jauh lebih baik jika Anda juga dapat mengelola semua proyek lama Anda dalam IDE yang sama dengan yang baru dan memanfaatkan fitur baru yang tersedia. Tidak semua proyek dapat dibuat 10.6 atau Intel hanya di masa mendatang. Lebih lanjut, saya secara tegas melarang penghapusan dukungan untuk platform lama lebih awal dari yang sebenarnya diperlukan.

Bisakah kita mengembalikan fungsi ini ke Xcode4?

Mecki
sumber

Jawaban:

111

Jawaban cepatnya adalah: Ya, kami bisa!

Sebelum saya sampai ke bagian " bagaimana hal itu dilakukan ", berikut adalah beberapa catatan tentang patch / hack / fix saya. Sejak awal, tujuan utamanya adalah:

  1. Jaga semua modifikasi seminimal mungkin.
    Kami ingin menjaga pengaturan Xcode seasli mungkin.

  2. Dengan segala cara, cobalah untuk menghindari menambal atau memodifikasi file apa pun.
    Kami ingin semua file tetap tidak tersentuh dan menyimpan konten aslinya.

  3. Cobalah untuk menghindari memindahkan atau menyalin file, kecuali benar-benar diperlukan.

Saya bisa menjaga semua tujuan itu. Hampir semuanya dilakukan dengan membuat symlink. Hanya satu symlink yang ada yang harus diganti dan kami akan mencadangkannya sebelum diganti, untuk berjaga-jaga.

Jika Anda bukan ahli dalam pengoperasian terminal, saya sangat menyarankan Anda untuk menyalin / menempel semua perintah terminal dari balasan saya ke terminal Anda, untuk menghindari kesalahan ketik. Ingatlah bahwa bahkan spasi, kutipan, dan terutama penggunaan huruf besar bisa menjadi penting. Salin / tempel baris demi baris, tidak pernah lebih dari satu baris sekaligus dan tekan kembali setelah setiap baris yang ditempelkan untuk menjalankan perintah. Jika ada operasi yang meminta Anda untuk memasukkan kata sandi, ini akan menjadi kata sandi dari pengguna administrator yang saat ini masuk (penekanan tombol Anda tidak ditampilkan saat mengetik, ini normal, jangan khawatir, terus ketik kata sandi dan tekan kembali; kembali -coba jika Anda salah ketik dan diminta lagi).

Prasyarat

Sebelum kita dapat mulai, pastikan kondisi berikut ini benar:

  • Anda masuk sebagai pengguna administrator.
  • Anda telah memulai Terminal.app (Aplikasi / Utilitas) dan jendela terminal terbuka.
  • Anda memiliki salinan Xcode3 (misalnya 3.2.5) dan image disk Xcode4 (DMG) atau penginstal yang tersedia.
  • Jika Anda sudah menginstal salah satu versi Xcode, pertimbangkan untuk mencopot pemasangannya terlebih dahulu , sehingga Anda dapat memulai dengan penyiapan baru / bersih. Menghapus instalan Xcode tidak akan menghapus preferensi, skema warna, atau kustomisasi pengikatan kunci Anda. Idealnya Anda akan mulai dengan sistem yang tidak memiliki versi Xcode (baik 3 maupun 4) yang saat ini diinstal.

Langkah 1: Menginstal Xcode3

Penting : Jangan instal paket " System Tools " atau " Unix Development " dari Xcode3.
Apakah Anda ingin menginstal " Mac OS X 10.4 SDK " dan / atau " Dokumentasi " terserah Anda. Jika itu adalah Xcode3 dengan iOS SDK, apakah Anda menginstalnya atau tidak juga terserah Anda.

Anda bebas memilih folder tujuan untuk instalasi Anda. Untuk panduan ini saya telah memilih " / Xcode3 ", tetapi jangan ragu untuk memilih yang lain. Pastikan untuk mengubah semua perintah terminal yang sesuai.

Urutan langkah-langkah yang diberikan di sini biasanya tidak terlalu penting, tetapi saya sangat menyarankan Anda untuk tidak menukar langkah 1 dan 2. Xcode selalu menginstal beberapa file di luar folder tujuan yang dipilih dan percayalah, pada akhirnya Anda menginginkan Versi Xcode4 dari file tersebut di disk Anda. Dengan menginstal Xcode3 sebelum Xcode4, Anda dapat yakin bahwa Xcode4 akan menimpa file-file tersebut jika perlu. Saya pernah menukar langkah 1 dan 2 dan pada akhirnya saya memiliki beberapa masalah yang agak aneh yang mungkin terkait dengan urutan yang salah (saya tidak dapat mengatakan dengan pasti, tetapi setelah menginstal ulang dalam urutan yang benar, masalah tersebut hilang).

Langkah 2: Menginstal Xcode4

Pilih paket apa pun yang Anda suka. Menginstal " Alat Sistem " disarankan, tetapi tidak sepenuhnya diperlukan (meskipun kebanyakan orang cepat atau lambat akan kehilangan fungsionalitas itu).

Sekali lagi, silakan pilih folder target yang Anda suka. Untuk panduan ini saya memilih folder target normal " / Pengembang ", jika Anda mengambil yang berbeda, ubah semua perintah terminal yang sesuai.

Langkah 3: Memulihkan Dukungan 10.4 / 10.5 SDK

Beralih ke jendela terminal Anda dan jalankan perintah berikut:

cd / Pengembang / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.

Tentu saja hanya jalankan perintah untuk 10.4u jika Anda juga menginstal SDK 10.4 pada langkah 1.

Ini cukup untuk mengembalikan SDK 10.5 (dan mungkin 10.4) ke daftar pilihan di Xcode4. Cobalah jika Anda suka. Jalankan Xcode4, buka proyek, coba ubah SDK yang dipilih. Itu mudah, ya? Pastikan untuk menutup Xcode4 lagi (aplikasi, bukan hanya jendela) sebelum melanjutkan ke langkah berikutnya.

Langkah 4: Memulihkan Dukungan GCC 4.0

Jika Anda belum menginstal MacOS 10.4 SDK atau jika Anda tidak berencana untuk menggunakannya, Anda dapat melewati langkah ini dengan aman dan melanjutkan ke langkah 5.

Untuk menggunakan SDK 10.4, Anda harus menggunakan GCC 4.0, GCC 4.2 tidak akan berfungsi. Apple mengklaim bahwa GCC 4.2 tidak kompatibel dengan SDK 10.4, yah, jika Anda bertanya kepada saya, ini adalah tipuan. Saya telah menimpa batasan ini lebih dari sekali dan tidak pernah ada masalah terkecil karenanya. Akan mudah untuk memodifikasi SDK 10.4 sehingga Xcode memungkinkan Anda menggunakan GCC 4.2 untuknya, tetapi tujuan saya adalah untuk menghindari semua modifikasi file, jadi kami hanya menambahkan dukungan GCC 4.0 kembali ke Xcode, yang juga merupakan hal yang baik, karena beberapa project sangat bergantung pada GCC 4.0 (misalnya, ada beberapa bug di GCC 4.2 yang mencegah kode assembly inline yang valid untuk dikompilasi tanpa kesalahan, sementara kode yang sama terkompilasi dengan sempurna di GCC 4.0 dan GCC 4.4).

Kembali ke terminal:

cd / Pengembang / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.

cd / Pengembang / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.

Saat ini kami telah memulihkan dukungan GCC 4.0 sepenuhnya kecuali fakta bahwa GCC 4.0 masih tidak dapat dipilih di Xcode4. Itu karena Xcode4 tidak lagi memiliki plugin compiler GCC 4.0. Untungnya plug-in Xcode3 juga berfungsi di Xcode4, hanya posisinya yang berubah secara radikal. Apple sekarang menyembunyikan plug-in itu jauh di dalam bundel dan hanya plug-in di sana yang tampaknya berfungsi, menempatkannya ke posisi lama tampaknya tidak berpengaruh.

cd / Pengembang / Perpustakaan / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Isi / SharedSupport / Pengembang / Perpustakaan / Xcode / Plug-in
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-in / GCC 4.0.xcplugin".

Sekarang jalankan Xcode4 lagi, buka proyek dan coba pilih kompiler. Anda harus memiliki GCC 4.0 kembali dalam daftar. Sekarang Anda sebenarnya sudah dapat memilih SDK 10.4 atau 10.5, GCC 4.0 dan Anda seharusnya tidak memiliki masalah untuk membangun biner PPC. Cukup pilih " Lainnya ... " untuk pengaturan build " Arsitektur " dan masukkan " ppc " secara manual , lalu ubah " Arsitektur yang Valid " agar juga menyertakan " ppc ". Kita hampir selesai, kecuali bahwa mencoba membangun biner PPC menggunakan GCC 4.2 dan SDK 10.5 akan tetap gagal.

Langkah 5: Memulihkan Dukungan PPC untuk GCC 4.2

Karena Apple hanya mendukung platform Intel di Xcode4, tidak semua alat GCC 4.2 telah dibuat dengan dukungan PPC. Ada satu alat penting yang tidak memiliki dukungan PPC, alat tersebut dinamai " as " dan itu adalah GNU Assembler. Untuk mengkompilasi binari ppc / ppc64 dengan GCC 4.2 kita perlu menggunakan versi " as " dengan dukungan ppc / ppc64. Ini adalah satu-satunya file (sebenarnya ini juga symlink) yang harus kita pindahkan terlebih dahulu (membuat salinan cadangan) sebelum kita dapat menggantinya dengan symlink:

cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv sebagai as.bak
sudo ln -s / Xcode3 / usr / bin / as.

Langkah 6: Tidak Ada Langkah 6

Itu semua orang. Mempertimbangkan betapa mudahnya hal itu, Anda dapat membayangkan bahwa Apple jelas tidak menjatuhkan dukungan SDK 10.4 / 10.5 atau ppc / ppc64 atau GCC 4.0 karena ini adalah suatu kebutuhan, mereka membatalkan semua itu karena mereka ingin membatalkannya.

Saya harap pengaturan ini bekerja dengan baik untuk Anda seperti halnya untuk saya. Saya telah dapat mengkompilasi semua proyek lama saya di Xcode4 tanpa perubahan besar, kecuali harus mengubah jalur pencarian di sana-sini.

PS:
Mungkin terlihat aneh saya menjawab pertanyaan saya sendiri di sini, tetapi karena saya sudah menemukan sendiri bagaimana menyelesaikan masalah ini, saya ingin berbagi pengetahuan saya dengan komunitas, karena saya yakin ini adalah masukan yang sangat berharga untuk semua pengembang MacOS di luar sana. Pertanyaan ini telah berkali-kali ditanyakan di banyak tempat dan sejauh ini saya belum pernah melihat ada orang yang datang dengan solusi serupa. Bagikan kekayaan, sebarkan ilmu dan sebagainya, Anda tahu apa yang saya maksud.


Jika Anda Masih Memiliki Masalah / Pertanyaan:

Jika Anda memiliki pertanyaan tambahan tentang topik ini atau jika Anda masih memiliki masalah untuk membangun proyek lama Anda dengan benar, lakukan untuk apa Stack Overflow telah dirancang: Klik "Ajukan Pertanyaan" di sudut kanan atas halaman ini dan buat pertanyaan baru . Dengan begitu, seluruh komunitas dapat membantu Anda menyelesaikan masalah tersebut, karena masalah tersebut mungkin tidak secara langsung (mungkin bahkan tidak langsung) terkait dengan peretasan ini.

Saya akan merekomendasikan Anda menyebutkan fakta bahwa Anda menerapkan peretasan ini di awal pertanyaan Anda. Mungkin Anda bahkan ingin langsung menautkan ke pertanyaan ini, sehingga orang yang belum pernah mendengar peretasan ini dapat dengan mudah mencarinya. Jika tidak, kebanyakan orang akan bingung saat Anda menyebutkan SDK 10.4 / 10.5, PPC atau GCC 4.0 yang dikombinasikan dengan Xcode4, yang secara resmi mendukung keduanya. Anda mungkin mendapatkan komentar yang agak bodoh dan bukan balasan yang layak jika Anda lupa menyebutkan peretasan ini.

Harap menahan diri untuk tidak memposting pertanyaan atau masalah Anda di sini baik sebagai balasan atau sebagai komentar. Mempostingnya sebagai balasan tidak masuk akal karena tidak ada balasan dan tidak ada cara bagaimana orang dapat membalas Anda, selain menggunakan komentar, dan komentar mungkin tidak menawarkan cukup ruang untuk jawaban yang layak atas pertanyaan Anda atau solusi yang layak untuk Anda. masalah. Dan mempostingnya sebagai komentar berarti Anda dibatasi ke ruang yang sangat sedikit dan melacak komentar balasan akan sulit karena komentar tidak memiliki hierarki seperti pohon (selanjutnya mereka masih akan menawarkan sedikit ruang untuk jawaban / solusi yang layak). Terima kasih.

Tentu saja jenis komentar lain serta jawaban yang lebih baik untuk pertanyaan asli selalu diterima ;-)

Mecki
sumber
6
Ini suara positifnya. Saya mungkin akan menyalin file SDK dan compiler lama daripada hanya menghubungkannya untuk dapat menghapus instalasi Xcode3 lainnya. Bukan karena saya suka Xcode4; semata-mata karena saya membutuhkan ruang disk. Terima kasih!
Ivan Vučica
Saya tidak bisa mendapatkan ini untuk bekerja. Silakan lihat pertanyaan SO saya: stackoverflow.com/questions/5409860/…
paleozogt
Selain itu, untuk mendapatkan gcc 4.0 building untuk target i686, saya harus melakukan hal berikut: sudo ln -s /Xcode3/usr/libexec/gcc/i686-apple-darwin10/4.0.1 / Developer / usr / libexec / gcc / i686-apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / Pengembang / usr / lib / gcc / i686- apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / usr / lib / gcc / i686-apple-darwin10 /
Tandai Carey
2
Baris ini for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; donedapat disederhanakan menjadisudo ln -s /Xcode3/usr/bin/*4.0* .
Adam Rosenfield
1
@cullub Buka developer.apple.com , masuk dengan ID dev Anda, pilih "SDK", gulir ke bawah dan pilih "Xcode", pilih "Unduh", gulir ke bawah dan pilih "Alat Tambahan", cari "Xcode 3" di bidang pencarian.
Mecki
15

Cara mudah lain hanya dengan Xcode4, Xcode3 tidak lagi dibutuhkan.

$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin

EDIT:

Untuk Xcode 4.1,

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/powerpc-apple-darwin10 /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc

Anda hanya dapat menggunakan gcc-4.2 untuk PowerPC. Dan opsi “-isysroot /Developer/SDKs/MacOSX10.6.sdk” diperlukan, karena 10.7 SDK tidak lagi mendukung PowerPC.

Kazuki Sakamoto
sumber
3
LOL, jadi apel mendukung PPC di kompiler iOS :-P Namun, Anda mungkin harus mencatat, bahwa ini hanya akan memulihkan kompatibilitas PPC, tetapi tidak akan memulihkan SDK atau dukungan GCC4.0. Masih layak mendapat suara positif.
Mecki
Sangat meretas dan lebih sederhana dari yang di atas, persyaratan minimum mutlak.
Diziet
Aktifkan toolchain PowerPC di Xcode 4.1 . gcc-4.2 saja. Ini memerlukan opsi "-isysroot /Developer/SDKs/MacOSX10.6.sdk", karena 10.7 SDK tidak lagi memiliki header untuk PowerPC.
Kazuki Sakamoto
stackoverflow.com/questions/11989007 relevan untuk mendapatkan 10.6 SDK. yaitu di Xcode 4.1
fommil
8

Saya telah mengumpulkan semua informasi dari halaman ini, Petunjuk Mac OS X, splhack.org, dan sumber lain yang dikutip di sini, dan mengumpulkan satu set skrip BASH yang mengotomatiskan proses pemulihan dukungan PPC dan GCC 4.0 baik menggunakan Instalasi XCode 3 atau hanya file platform iPhone XCode 4 itu sendiri.

Seperti biasa, gunakan dengan hati-hati! dan tolong sumbangkan perbaikan atau peningkatan apa pun. Skrip ini baru diuji di sistem saya sendiri pada posting ini.

Anda dapat mengunduhnya dari GitHub:

Scott Lahteine
sumber
Wow, keren sekali :-) Saya ingin membuat skrip seperti itu sendiri, tapi tidak pernah punya waktu untuk itu. Terima kasih telah membagikannya dengan kami.
Mecki
4

Jika Anda ingin gcc berfungsi dari baris perintah juga, (serta yang di atas) Anda juga perlu:

cd /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s /Xcode3/usr/bin/as .
jas
sumber
3

Ini masih berfungsi dengan Xcode 4.3.2 dari AppStore - versi di mana semuanya berdiri sendiri dalam App bundle. Seperti petunjuk aslinya, instal Xcode 3.2.6 terlebih dahulu * lalu unduh Xcode 4 dari AppStore. Kemudian lakukan keajaiban symlink berikut:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /Developer/Xcode3.2.6/SDKs/MacOSX10.5.sdk .
cd /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/
ln -s /Developer/Xcode3.2.5/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g* .
mv powerpc-apple-darwin10-llvm-gcc-4.2 powerpc-apple-darwin11-llvm-gcc-4.2
mv powerpc-apple-darwin10-llvm-g++-4.2 powerpc-apple-darwin11-llvm-g++-4.2

Dua baris terakhir mengganti nama darwin10 menjadi darwin11 di symlink - Saya menduga versi OS X yang akan datang akan membutuhkan ini untuk diperbarui sebagaimana mestinya.

  • Untuk menginstal Xcode 3.2.x di Lion, pasang image disk Xcode, buka Terminal, masukkan perintah (menggunakan bash, atau perintah yang setara jika Anda telah mengubah shell default Anda):

    ekspor COMMAND_LINE_INSTALL = 1 open "/ Volumes / Xcode dan iOS SDK / Xcode dan iOS SDK.mpkg"

Anda juga harus menyetel jam kembali ke tanggal sebelum 31 Maret 2012 jika tidak, validasi sertifikat keamanan akan gagal selama penginstalan. Anda dapat dengan aman mengubah tanggal kembali setelah instalasi jelas!

Avram
sumber
2

Jika seseorang perlu memulihkan SDK lama dan kompiler PPC di Xcode 4.3 dan 4.5, ini adalah skrip yang saya buat. Perhatikan bahwa Anda perlu menyetel jalur ke paket aplikasi Xcode dan jalur ke pemasangan Xcode 3.2.6 di awal skrip.

#!/bin/bash

XCODE="/Applications/Xcode45-DP1.app"
XCODE3="/Xcode3"

# restore SDKs
cd "$XCODE/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
sudo ln -s "$XCODE3/SDKs/MacOSX10.4u.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.5.sdk" . 
sudo ln -s "$XCODE3/SDKs/MacOSX10.6.sdk" . 

# restore gcc 4.0
cd "$XCODE/Contents/Developer/usr/bin"
sudo ln -s "$XCODE3/usr/bin/"*4.0* .
sudo ln -s "powerpc-apple-darwin10-g++-4.0.1" "powerpc-apple-darwin11-g++-4.0.1"
sudo ln -s "powerpc-apple-darwin10-gcc-4.0.1" "powerpc-apple-darwin11-gcc-4.0.1"

# restore Xcode option
cd "$XCODE/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins"
sudo ln -s "$XCODE3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" . 

Anda tidak perlu symlink 10.6 SDK jika Anda menggunakan Xcode 4.3 karena sudah disertakan.

Juga skrip tidak memulihkan gcc 4.2 karena ada banyak konflik nama file yang melakukan itu. Tujuan saya adalah mengembalikan compiler PPC dan 4.0 sudah cukup baik untuk saya.

Stephen Chu
sumber
2

Frédéric Devernay memiliki proyek GitHub bernama xcodelegacy yang bekerja sangat baik untuk saya di Xcode 5.1.1, dan membutuhkan sedikit pekerjaan untuk menjalankannya, hanya beberapa pengunduhan.

Dengan menggunakan proyeknya, saya berhasil membuat binari universal yang berisi arsitektur ppc dan i386 yang dikompilasi dengan 10.4 SDK menggunakan GCC 4.0, semuanya dari dalam Xcode 5.1.1 yang berjalan di Yosemite.

Saya telah memverifikasi sendiri bahwa binari universal yang dibuat berfungsi dengan baik di 10.5 Leopard dan di Yosemite itu sendiri.

Halaman muka di sini: http://devernay.free.fr/hacks/xcodelegacy

Proyek Git hub di sini: https://github.com/devernay/xcodelegacy

Aidan
sumber
1

Akan berguna jika memiliki paket untuk menginstal file-file ini ke dalam implementasi XCode 4. (atau tarball).

FYI: 3.2.6 dari Xcode3 tidak menyertakan seperti arsitektur ppc. Tetapi saya memiliki cadangan Leopard di komputer saya. Jadi saya menyalin yang itu, sepertinya berhasil. (Gunakan / usr / libexec / gcc / darwin / ppc / as).

Mempertimbangkan bahwa baik gcc dan sebagai open source, satu-satunya hal yang mungkin tidak dapat didistribusikan ulang adalah plugin xcode dan 10.4 SDK kan?

Jason Kenney
sumber
Saya bukan ahli dalam pertanyaan perizinan; "as -v" mengatakan "Apple Inc version cctools-795 ~ 45, GNU assembler versi 1.38", namun, meskipun Apple telah memodifikasi kode sumber "as", ia masih dilisensikan di bawah GPL (kode GPL yang dimodifikasi secara otomatis Kode GPL lagi), jadi jika GPL memungkinkan Anda melakukan itu, Anda akan baik-baik saja.
Mecki
Oke, saya rasa alasan saya mengapa kita harus mengganti "sebagai" salah. The "as" dari Xcode 3.2.6 tampaknya berfungsi dengan baik, meskipun hanya Intel, tetapi tampaknya masih dapat membuat output rakitan ppc. Saya akan memperbaiki balasan awal saya. Terima kasih telah menunjukkan hal ini!
Mecki
Sebenarnya setidaknya dari baris perintah tidak. Itu terus mengeluh sampai saya mengambil dari cadangan Leopard saya.
Jason Kenney