2013-03-20 4 views
12

दुर्भाग्यवश, मुझे एआरएमवी 6 आर्किटेक्चर के लिए गिट को संकलित करने में कठिनाई हो रही है।एआरएम के लिए गिट को कैसे संकलित करें?

लेकिन इससे पहले कि मैं चरणों मैं लिया है और आदेश मैं अपने द्वारा दिए गए वर्णन करने के लिए शुरू, मैं संक्षेप में निर्माण पर्यावरण का वर्णन करना चाहिए:

  • मैं पार संकलन हूँ उबंटू 12.10 64-बिट पर।
  • क्रॉस कंपाइलर /home/my_name/cctoolchain पर स्थापित किया गया है (इस निर्देशिका में bin/, lib/, आदि शामिल हैं)।

मैंने here से गिट 1.8.2 को पकड़कर शुरू किया। निर्देशिका निकालने के बाद मैं भाग गया:

export PATH=$PATH:/home/my_name/cctoolchain/bin

मैं भी autoconf भाग गया लगता है कि ./configure तारीख तक था बनाने के लिए।

./configure --prefix=/home/my_name/git-arm --build=x86_64-linux-gnu 
    --host=arm-linux-androideabi

यह सेकंड के एक जोड़े के लिए भाग गया और फिर से निरस्त किया गया:

checking whether system succeeds to read fopen'ed directory... 
configure: error: in `/home/my_name/git-1.8.2': 
configure: error: cannot run test program while cross compiling

मैं फटा खुला configure.ac और 806-825 लाइनों को हटा दिया, परीक्षण अक्षम करने के रूप में निम्नानुसार तब मैं ./configure लागू। ऐसा करने के बाद, मुझे इसी कारण से 806-839 लाइनों को भी हटाना पड़ा।

इस बिंदु पर, ./configure स्क्रिप्ट पूर्ण करने में सक्षम था। मैं तो उत्साह से Git का निर्माण करने के make भाग गया और एक और अधिक कुछ ही क्षणों के बाद, इस त्रुटि का सामना किया:

fetch-pack.c: In function 'fetch_pack': 
fetch-pack.c:928:16: error: 'struct stat' has no member named 'st_mtim' 
make: *** [fetch-pack.o] Error 1

किसी तरह मैं महसूस कर रही मैं "गलत कर" कर रहा हूँ मिलता है। यह ऐसा कुछ लगता है जो configure.ac से मैन्युअल रूप से परीक्षणों को हटाने से बहुत आसान होना चाहिए। मैं क्या खो रहा हूँ?

+2

धन्यवाद, आपके प्रश्न ने मुझे बहुत मदद की! अंततः मेरे लिए काम करने वाला आदेश 'सीसी = armv7l-timesys-linux-gnueabi-gcc CFLAGS = "- sysroot =/home/mmes/projects/arm-cross-sdk/टैग/0.1.8" LDFLAGS = "- -sysroot =/home/evadeflow/परियोजनाओं/arm-cross-sdk/टैग/0.1.8 "./configure --prefix =/home/evadeflow/git-arm --build = i386-linux-gnu --host = armv7l-timesys-linux-gnueabi'। ('--sysroot = 'arg अधिकांश लोगों के लिए जरूरी नहीं होना चाहिए।) जैसा कि आपने वर्णन किया है (' ac_cv_fread_reads_directories' और 'ac_cv_snprintf_returns_bogus') में कुछ परीक्षणों को भी टिप्पणी करना था, और' मेक 'चलाएं बाद में 'कॉन्फ़िगर करें। – evadeflow

उत्तर

10

ST_MTIME_NSECgit-compat-util.h में विफल होने वाला मैक्रो ST_MTIME_NSEC है। इस मैक्रो को मैक्रोज़ USE_NSEC, NO_NSEC और USE_ST_TIMESPEC द्वारा नियंत्रित किया जाता है, जो बिल्ड कमांडलाइन पर प्रदान किए जाते हैं या config.mak.uname द्वारा कॉन्फ़िगर नहीं किया जाता है।

यह चाहिए लें कि अगर कोई विकल्प प्रदान की जाती हैं, Git nanosecond टाइमस्टैंप्स (या st_mtim) सब पर उपयोग करने के लिए प्रयास नहीं करता है, लेकिन एक बग की तरह के माध्यम से फिसल यह लग रहा है।

make NO_NSEC=1 आज़माएं और देखें कि क्या आपकी समस्या का समाधान होता है।

+0

** यह काम किया! ** 'मेक' के लिए अतिरिक्त पैरामीटर प्रदान करने के बाद, परेशानी फ़ाइल संकलित हो गई और बाकी का एप्लिकेशन भवन (अब तक, वैसे भी) लगता है। –

+0

@NathanOsman क्या आप किसी साइट पर कहीं भी एआरएम गिट की कुछ बाइनरी प्रदान कर सकते हैं ताकि मैं इसे बिना निर्माण किए डाउनलोड कर सकूं?बहुत सराहना की जाएगी! –

संबंधित मुद्दे