2014-11-19 3 views
1

debian-testing machine (대체로 미안하지만 실제 질문은 맨 아래에 있음)에 다른 컴파일 슈트를 만들려고합니다.binutils, gcc & glib에 대한 GNU configure 옵션

다른 컴퓨터에서이 툴체인을 사용해야하기 때문에 기술적으로 "교차 컴파일"이지만 하드웨어는 호환 가능합니다 (x86_64-unknown-linux-gnu). 따라서 빌드/호스트/목표 차이.

내가 (표준 위치에 설치할 수 없습니다 더 정확하게하기 때문에 내가 접두사/SYSROOT 걱정할 필요성을 한편

: 나는 어디서나 설치할 수 있습니다 내가 거기 루트 액세스 권한이 있지만 이후 하지 말아야); 이로 인해 내 $HOME이라는 일부 완전히 다른 표준이 아닌 장소 (예 : /usr/local/my/toolchain) 또는 일부 준 표준 (예 : /opt) 장소가됩니다. 어떤 경우 든 컴파일을 통해 includelib을 찾을 수 있어야하며, 이러한 위치와 런타임 링커에서 .so을 찾을 수 있어야합니다.

내 요구 사항은 다음과 같습니다

  1. 내가 엉망이 될 shouln't 실행중인 리눅스 있습니다.
  2. 에는 "C"컴파일러가 없습니다.
  3. 이 리눅스는 BusyBox 기반이기 때문에 컴파일러의 적절한 옆에 make, sed, awk 등의 심각한 컴파일 작업을 수행하려면 많은 양의 유틸리티가 필요합니다.
  4. 내 확장 툴체인을 /opt에 채우게되어 기쁩니다.하지만 이는 필수 사항은 아닙니다. 모든 사용자가 한 명 이상의 사용자가 액세스 할 수있는 한 어떤 장소에서도 괜찮습니다. $HOME에 설치하지 마십시오.
  5. 나는 입니다.은 "optware"를 인식하고 설치 했으므로 일을합니다 ... 요점까지. 불행히도 :
    • 정말 오래된 소프트웨어입니다.
    • 내 시스템은 Linux syno0 3.2.40 #5004 SMP Thu Nov 6 15:26:44 CST 2014 x86_64 GNU/Linux입니다.
    • 제공된 라이브러리의 32/64가 일치하지 않아 일부 프로그램이 컴파일되지 않습니다. 이 모든 운동을 할
  6. 의욕 내가 (물론, 및 기타 물건)가 실행하고 나는 네이티브 컴파일러를 필요 cpan에서 그들을 설치해야합니다 하나의 응용 프로그램에 필요한 일부 perl 모듈을 설치할 필요가있다 .
  7. 거기에 포팅해야하는 Ruby-on-rails 애플리케이션에 관한 비슷한 주장.
  8. /lib:/lib64:/usr/lib:/usr/lib64:/usr/lib32 ("정적".a 라이브러리는 사용할 수 없음)에서 "기본"라이브러리를 사용하려고 시도해야합니다. CPPFLAGS="-I/opt/include"LDFLAGS="-L/opt/lib -Wl,-rpath -Wl,/opt/lib" :

나는 그 sysroot에 필요한 애플리케이션을 채우고 컴파일, /opt에 재배치 내 프로세서 사용 가능한 툴 체인에서 사용자 정의 타르볼을 준비하는 제한적인 성공을 거두었 다.

이렇게하면 거의 모든 것을 "LFS 스타일"로 만들 수 있지만 오류가 발생하기 쉽고 64 비트 전용입니다.

나는 그것이 가능 --prefix, --with-sysroot, --with-native-system-header-dir, --enable-multilib 및 그들의 친구의주의 혼합에 의해이 모든 것을 자동화 해주는해야 이해하는 것 같다.

나는 그 (것)들이 어떻게 또는 다른 이유로 사용해야하고 실패해야하는지 정확하게 이해하는 것을 시도했다. GCC instalation docs에서 모든 문서와 정보를 찾지 못해 혼란 스럽습니다.

이 툴체인을 만드는 방법을 누군가에게 알려주십시오. 심층적 인 문서에 대한 모든 포인터를 환영합니다. 그러나 일부 개인지도가 필요할 것으로 생각됩니다.

Binutils의 재 컴파일을 가정하고 GCC는 필수 항목이며 Glib는 필요하지 않습니다. 그 밖의 다른 것은 "원시"대상으로 재 컴파일 될 수 있습니다.

티아 ZioByte

+0

해야 더 나은 안정성을 위해

힌트 * 당신이보고 있으 [크로스 도구 (http://kegel.com/crosstool/)? 이 사이트는 x86_64를 비롯한 다양한 플랫폼에서 크로스 컴파일 할 수있는 스크립트를 제공합니다. – SSC

+0

@SSC : 교차 도구 및 크로스 탭 NG를 사용하여 일주일 내내 길을 잃었습니다 (크로스 도구 용 빌더 : 비표준 위치에 NATIVE 컴파일러가 필요합니다.) 이론 상으로는 그렇게 할 수 있어야합니다. 그 외에도 "캐나다의 십자가"와 함께 실제로 비참하게 실패합니다. 그 외에는 GCC 구축이 어떻게 작동하는지 이해하고 싶습니다. – ZioByte

+1

[Linux from Scratch Project] (http : // www. linuxfromscratch.org/lfs/view/stable/) GCC를 처음 컴파일 할 때 (5 장 -5 절) 그들은 표준이 아닌 장소에 두는 것 같습니다. – SSC

답변