2012-08-07 10 views
6

निम्न त्रुटि तब आई जब मैंने LFS 7.1 के लिए glibc-2.14.1 का 'बनाना' किया। मैं मेजबान ओएस के रूप में उबंटू का उपयोग कर रहा हूं।स्क्रैच से लिनक्स बनाने के दौरान glibc त्रुटि

gcc ../sysdeps/unix/sysv/linux/syslog.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline 
-Wwrite-strings -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack- 
boundary=2 -Wa,-mtune=i686 -fexceptions -I../include -I/mnt/lfs/sources/glibc- 
build/misc -I/mnt/lfs/sources/glibc-build -I../sysdeps/i386/elf - 
I../nptl/sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386/i686 - 
I../nptl/sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux/i386 - 
I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread - 
I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common - 
I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 - 
I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 - 
I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu - 
I../sysdeps/i386/i686/multiarch -I../nptl/sysdeps/i386/i686 -I../sysdeps/i386/i686 - 
I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu - 
I../nptl/sysdeps/i386 -I../sysdeps/i386 -I../sysdeps/wordsize-32 - 
I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 - 
I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../nptl -I.. - 
I../libio -I. -nostdinc -isystem /usr/lib/gcc/i686-linux-gnu/4.6/include -isystem 
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed -isystem /tools/include -D_LIBC_REENTRANT 
-include ../include/libc-symbols.h  -o /mnt/lfs/sources/glibc-build/misc/syslog.o 
-MD -MP -MF /mnt/lfs/sources/glibc-build/misc/syslog.o.dt -MT /mnt/lfs/sources/glibc- 
build/misc/syslog.o 
In file included from ../sysdeps/unix/sysv/linux/syslog.c:10:0: 
../misc/syslog.c: In function '__vsyslog_chk': 
../misc/syslog.c:144:9: warning: variable 'prioff' set but not used [-Wunused-but-set- 
variable] 
../misc/syslog.c:123:1: sorry, unimplemented: inlining failed in call to 'syslog': 
function body not available 
../misc/syslog.c:155:9: sorry, unimplemented: called from here 
make[2]: *** [/mnt/lfs/sources/glibc-build/misc/syslog.o] Error 1 
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1/misc' 
make[1]: *** [misc/subdir_lib] Error 2 
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.14.1' 
make: *** [all] Error 2 

क्या कोई मुझे बता सकता है कि क्या करना है?

उत्तर

1

glibc build issues, inlining failed

जीसीसी मंगलाचरण के लिए -U_FORTIFY_SOURCE जोड़ने की आवश्यकता है।

+0

धन्यवाद ... उत्तर के लिए +1 ... लेकिन क्या आप मुझे बता सकते हैं कि मेक का उपयोग करते समय यह विकल्प कैसे जोड़ना है? – avinash

+0

CFLAGS = -U_FORTIFY_SOURCE – InternetSeriousBusiness

+1

जो मदद नहीं करता ... अभी भी वही त्रुटि प्राप्त कर रहा है ... – avinash

1

@avinash - निम्नलिखित ...

1) फिर से चलाने के लिए कॉन्फ़िगर की कोशिश ... CFLAGS = "- O2 -U_FORTIFY_SOURCE" कॉन्फ़िगर
2) फिर से चलाने के मेकअप ... CFLAGS = "- O2 -U_FORTIFY_SOURCE" बनाने

2

करने के बाद में विफल रहा है, मेरे लिए काम किया है:

make clean 
make -j2 CFLAGS="-U_FORTIFY_SOURCE -O2 -fno-stack-protector" 

इस ब्लॉग http://www.yonch.com/tech/78-compiling-glibc में विवरण देखें।

4

glibc 2.15 के लिए, मैं ks1322 की तरह करना था:

$ ../glibc2.15/configure CFLAGS="-O2 -U_FORTIFY_SOURCE -fno-stack-protector" $ make

-O2 डिफ़ॉल्ट अनुकूलन, विफलताओं के एक नंबर से बचने के लिए आवश्यक ठीक करने के लिए आवश्यक है।

-U_FORTIFY_SOURCEgcc ../sysdeps/unix/sysv/linux/syslog.c की विफलता से बचने के लिए आवश्यक है (In function ‘__vsyslog_chk’: [...] inlining failed in call to ‘syslog’)

-fno-stack-protectorgcc की विफलता से बचने के लिए आवश्यक है [...] elf/dl-allobjs.os libc_pic.a ((init-first.os):(.data+0x0): multiple definition of '__libc_multiple_libcs')।

इन CFLAGS के साथ, मुझे केवल एक चेतावनी मिलती है (errlist.c count 133 inflated to GLIBC_2.12 count 134 (old errno.h?))।

पीएस यह gold लिंकर (ld.gold, binutils-gold पैकेज से) का उपयोग करना भी बहुत महत्वपूर्ण है, क्योंकि libc का config इसे अस्वीकार कर देगा। ld.gold से ld.bfd पर /usr/bin/ld प्रतीकात्मक लिंक को बदलकर यह आसानी से किया जाता है।

+0

इस स्पष्ट स्पष्टीकरण के लिए धन्यवाद। –