我正在尝试将我们的构建服务器从 opensuse 9 升级到 ubuntu 14.04。我们的目标操作系统是内核 2.6.24 和 glibc 2.5 和 gcc 4.2.1 的 uClinux。我们正在使用 crosstool-ng 来构建我们的交叉工具链。构建工具链工作正常,也可以构建内核。但是在 nptl 中构建 glibc 时,构建退出时出现 make Error 1。
我只看到一个重复的错误:
make[4]: execvp: /bin/sh: Argument list too long
在一些类似这篇或这篇的文章中,问题似乎是传递给 execve 系统调用的字符串的最大大小。然而,最重要的是,当我在旧的 opensuse 上运行时 getconf ARG_MAX
,答案是 131072,而在 ubuntu 14 上,答案是 getconf ARG_MAX,它要大得多。并以同样的方式cat /proc/$$/environ | wc -c
在opensuse上运行,给出482作为答案,而在ubuntu上的答案是1257。当我将glibc文件夹移动到路径较短的文件夹时,构建工作没有问题。我想知道这是否是真正的问题,是否有解决方案。我用于构建 glibc 的 make 文件是:
glibc-2.3.6-url := \
http://ftp.gnu.org/gnu/glibc/glibc-2.3.6.tar.bz2
glibc-linuxthreads-2.3.6-url := \
http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.6.tar.bz2
glibc-libidn-2.3.6-url := \
http://ftp.gnu.org/gnu/glibc/glibc-libidn-2.3.6.tar.bz2
glibc-2.5-url := \
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
glibc-linuxthreads-2.5-url := \
http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2
glibc-libidn-2.5-url := \
http://ftp.gnu.org/gnu/glibc/glibc-libidn-2.5.tar.bz2
CONFOPTS = --prefix= \
$(GLIBC_TARGET_OPTS) --host=$(CROSS_COMPILE:-=) \
--with-tls --enable-max-arg-list-hack --without-cvs --without-gd \
--with-headers=$(ROOTDIR)/$(LINUXDIR)/include \
--disable-profile --disable-force-install \
CONFOPTS += --enable-kernel=2.6.24
# do we want a non-debuggable lib or not, if so remove the C flag and
# enable it in glibc, it knows best where to add it.
ifneq ($(findstring -fomit-frame-pointer,$(CFLAGS)),)
CONFOPTS += --enable-omitfp
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
endif
CFLAGS := $(subst -fno-common,,$(CFLAGS))
CFLAGS := $(subst -fno-builtin,,$(CFLAGS)) -fgnu89-inline
repl = -Wl,--fatal-warnings
LDFLAGS := $(subst $(repl),,$(LDFLAGS))
LDFLAGS := $(subst -nostdlib,,$(LDFLAGS))
LDFLAGS := $(subst -nostartfiles,,$(LDFLAGS))
export CFLAGS LDFLAGS
BUILD_CC = $(HOSTCC)
export BUILD_CC
GLIBC_ALL = glibc-2.5-all
WGET ?= wget
all: $(GLIBC_ALL)
%.tar.bz2 %.tar.gz:
@echo "Downloading $* ..."
@[ -d "$$HOME/.downloads" ] || mkdir ~/.downloads
@if [ ! -f "$$HOME/.downloads/$@" ]; then \
(cd ~/.downloads; $(WGET) "$($*-url)"); \
fi
@if [ -f "$$HOME/.downloads/$@" ]; then \
ln -fs "$$HOME/.downloads/$@" $@; \
fi
if [ ! -f "$@" ]; then \
echo "Cannot find download for $@" >&2 ; \
exit 1; \
fi
glibc-2.5-all: glibc-2.5-configured
rm -rf install
mkdir install
env LANGUAGE=C LC_ALL=C $(MAKE) -C glibc-2.5 -f Makefile -r srcdir=`pwd` objdir=`pwd`/build install_root=`pwd`/install install
: fix groups in linker scripts
@find install/. -type f -name *.so* | while read t; do \
if file "$$t" | grep -i ascii > /dev/null; then \
echo "Fixing $$t ..."; \
sed 's?\([ (]\)\(/lib/[^ )]*\)?\1'"`pwd`/install"'\2?g' < "$$t" > "$$t.fixup"; \
cp "$$t.fixup" "$$t"; \
rm -f "$$t.fixup"; \
fi \
done
glibc-2.5-extracted: Makefile glibc-2.5.tar.bz2 glibc-linuxthreads-2.5.tar.bz2 glibc-libidn-2.5.tar.bz2
rm -rf glibc-2.5 glibc-libidn-2.5 install build
bunzip2 < glibc-2.5.tar.bz2 | tar xf -
# bunzip2 < glibc-linuxthreads-2.5.tar.bz2 | (cd glibc-2.5; tar xf -)
# bunzip2 < glibc-libidn-2.5.tar.bz2 | tar xf -
# mv glibc-libidn-2.5 glibc-2.5/libidn
# rm -rf glibc-2.5/nptl glibc-2.5/nptl_db
# @for i in glibc-2.5*.patch; do \
# [ -f $$i ] || continue; \
# echo "Applying $$i ..."; \
# (cd glibc-2.5; patch -p1) < $$i; \
# done
touch $@
glibc-2.5-configured: Makefile glibc-2.5-extracted
rm -rf build
mkdir build
(cd build; \
CC="$(subst ucfront-gcc,,$(CC))" \
CXX="$(subst ucfront-g++,,$(CXX))" \
libc_cv_ssp=no \
/bin/bash ../glibc-2.5/configure $(CONFIGURE_OPTS) $(CONFOPTS) \
--datadir=/usr/share --enable-add-ons; \
)
mkdir build/dlfcn
ln -s libdl.so build/dlfcn/libdl.so.2
touch $@
glibc-2.3.6-all: glibc-2.3.6-configured
rm -rf install
mkdir install
env no_deps=t LANGUAGE=C LC_ALL=C make -C build -f Makefile install_root=`pwd`/install
env no_deps=t LANGUAGE=C LC_ALL=C make -C build -f Makefile install_root=`pwd`/install install
: fix groups in linker scripts
@find install/. -type f -name *.so* | while read t; do \
if file "$$t" | grep -i ascii > /dev/null; then \
echo "Fixing $$t ..."; \
sed 's?\([ (]\)\(/lib/[^ )]*\)?\1'"`pwd`/install"'\2?g' < "$$t" > "$$t.fixup"; \
cp "$$t.fixup" "$$t"; \
rm -f "$$t.fixup"; \
fi \
done
glibc-2.3.6-extracted: Makefile glibc-2.3.6.tar.bz2 glibc-linuxthreads-2.3.6.tar.bz2 glibc-libidn-2.3.6.tar.bz2
rm -rf glibc-2.3.6 install build
bunzip2 < glibc-2.3.6.tar.bz2 | tar xf -
bunzip2 < glibc-linuxthreads-2.3.6.tar.bz2 | (cd glibc-2.3.6; tar xf -)
bunzip2 < glibc-libidn-2.3.6.tar.bz2 | (cd glibc-2.3.6; tar xf -)
rm -rf glibc-2.3.6/nptl
rm -rf glibc-2.3.6/nptl_db
@for i in glibc-2.3.6*.patch; do \
[ -f $$i ] || continue; \
echo "Applying $$i ..."; \
(cd glibc-2.3.6; patch -p1) < $$i; \
done
touch $@
glibc-2.3.6-configured: Makefile glibc-2.3.6-extracted
rm -rf build
mkdir build
(cd build; \
CC="$(subst ucfront-gcc,,$(CC))" \
CXX="$(subst ucfront-g++,,$(CXX))" \
/bin/bash ../glibc-2.3.6/configure $(CONFIGURE_OPTS) $(CONFOPTS) \
--with-tls --without-__thread --datadir=/usr/share --enable-add-ons; \
)
#mkdir build/dlfcn
#ln -s libdl.so build/dlfcn/libdl.so.2
touch $@
clean:
rm -rf build install
rm -rf glibc-2.5 glibc-2.5-extracted
rm -rf glibc-2.3.6 glibc-2.3.6-extracted
rm -f glibc-*.tar.bz2 glibc-*.tar.gz
romfs:
cp -r $(ROOTDIR)/$(LIBCDIR)/install/include $(ROMFSDIR)/usr/
cp -r $(ROOTDIR)/$(LIBCDIR)/install/lib $(ROMFSDIR)/
# @for i in install; do \
# echo "Installing `basename $$i -install` ..."; \
# $(ROMFSINST) -f $$i/bin /bin; \
# $(ROMFSINST) -f $$i/lib /lib; \
# $(ROMFSINST) -f $$i/etc /etc; \
# $(ROMFSINST) -f $$i/include $(ROMFSDIR)/usr; \
# mv $(ROMFSDIR)/etc/config/* $(ROMFSDIR)/etc/default > /dev/null 2>&1; \
# $(ROMFSINST) -f $$i/usr/share /share; \
# done
# rm -f $(ROMFSDIR)/lib/*.a
# rm -f $(ROMFSDIR)/lib/*.la
这是 make log 的最后一部分:
make[4]: Entering directory `/.../uClinux/glibc/glibc-2.5/nptl'
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym \
| i586-unknown-linux-gnu-gcc -S -o /.../uClinux/glibc/build/pthread-pi-defines.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/.../uClinux/glibc/build/nptl -I/.../uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 /.../crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem /.../uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF /.../uClinux/glibc/build/pthread-pi-defines.h.dT -MT '/.../uClinux/glibc/build/pthread-pi-defines.h.d /.../uClinux/glibc/build/pthread-pi-defines.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.sym \
| i586-unknown-linux-gnu-gcc -S -o /.../uClinux/glibc/build/lowlevelrobustlock.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/.../uClinux/glibc/build/nptl -I/.../uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 /.../crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem /.../uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF /.../uClinux/glibc/build/lowlevelrobustlock.h.dT -MT '/.../uClinux/glibc/build/lowlevelrobustlock.h.d /.../uClinux/glibc/build/lowlevelrobustlock.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/unwindbuf.sym \
| i586-unknown-linux-gnu-gcc -S -o ...uClinux/glibc/build/unwindbuf.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I...uClinux/glibc/build/nptl -I...uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 ...crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem ...uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF ...uClinux/glibc/build/unwindbuf.h.dT -MT '...uClinux/glibc/build/unwindbuf.h.d ...uClinux/glibc/build/unwindbuf.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/lowlevelbarrier.sym \
| i586-unknown-linux-gnu-gcc -S -o ...uClinux/glibc/build/lowlevelbarrier.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I...uClinux/glibc/build/nptl -I...uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 ...crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem ...uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF ...uClinux/glibc/build/lowlevelbarrier.h.dT -MT '...uClinux/glibc/build/lowlevelbarrier.h.d ...uClinux/glibc/build/lowlevelbarrier.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/lowlevelrwlock.sym \
| i586-unknown-linux-gnu-gcc -S -o ...uClinux/glibc/build/lowlevelrwlock.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I...uClinux/glibc/build/nptl -I...uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 ...crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem ...uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF ...uClinux/glibc/build/lowlevelrwlock.h.dT -MT '...uClinux/glibc/build/lowlevelrwlock.h.d ...uClinux/glibc/build/lowlevelrwlock.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/unix/sysv/linux/lowlevelcond.sym \
| i586-unknown-linux-gnu-gcc -S -o ...uClinux/glibc/build/lowlevelcond.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I...uClinux/glibc/build/nptl -I...uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 ...crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem ...uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF ...uClinux/glibc/build/lowlevelcond.h.dT -MT '...uClinux/glibc/build/lowlevelcond.h.d ...uClinux/glibc/build/lowlevelcond.h'
make[4]: execvp: /bin/sh: Argument list too long
gawk -f ../scripts/gen-as-const.awk pthread-errnos.sym \
| i586-unknown-linux-gnu-gcc -S -o ...uClinux/glibc/build/pthread-errnos.hT3 -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I...uClinux/glibc/build/nptl -I...uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 ...crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem ...uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -x c - \
-MD -MP -MF ...uClinux/glibc/build/pthread-errnos.h.dT -MT '...uClinux/glibc/build/pthread-errnos.h.d ...uClinux/glibc/build/pthread-errnos.h'
make[4]: execvp: /bin/sh: Argument list too long
make[4]: Leaving directory `...uClinux/glibc/glibc-2.5/nptl'
make[3]: *** [nptl/subdir_lib] Error 2
make[3]: Leaving directory `...uClinux/glibc/glibc-2.5'
make[2]: *** [glibc-2.5-all] Error 2
make[2]: Leaving directory `...uClinux/glibc'
make[1]: *** [all] Error 2
make[1]: Leaving directory `...uClinux/lib'
make: *** [subdirs] Error 1
通过在调试模式下运行 make 并使用 strace,我无法找到有关该错误的更多详细信息:
Found an implicit rule for `/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os'.
Considering target file `libc-cancellation.c'.
Looking for an implicit rule for `libc-cancellation.c'.
No implicit rule found for `libc-cancellation.c'.
Finished prerequisites of target file `libc-cancellation.c'.
No need to remake target `libc-cancellation.c'.
Considering target file `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Looking for an implicit rule for `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Trying pattern rule with stem `pthread-errnos'.
Trying rule prerequisite `../scripts/gen-as-const.awk'.
Trying implicit prerequisite `pthread-errnos.sym'.
Found an implicit rule for `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Pruning file `../scripts/gen-as-const.awk'.
Pruning file `pthread-errnos.sym'.
....
Pruning file `../sysdeps/unix/sysdep.h'.
Pruning file `../sysdeps/generic/sysdep.h'.
Pruning file `../sysdeps/unix/sysv/linux/sys/syscall.h'.
Pruning file `/home/build/path/uClinux/linux-2.6.x/include/asm/unistd.h'.
Pruning file `/home/build/path/uClinux/linux-2.6.x/include/asm/unistd_32.h'.
Pruning file `../sysdeps/i386/sysdep.h'.
Pruning file `../sysdeps/generic/bp-sym.h'.
Pruning file `../sysdeps/i386/bp-asm.h'.
...
Pruning file `../socket/sys/socket.h'.
Pruning file `../include/sys/uio.h'.
Pruning file `../misc/sys/uio.h'.
Pruning file `../sysdeps/unix/sysv/linux/bits/uio.h'.
Pruning file `../sysdeps/unix/sysv/linux/bits/socket.h'.
Pruning file `../bits/sockaddr.h'.
Pruning file `/home/build/path/uClinux/linux-2.6.x/include/asm/socket.h'.
Pruning file `/home/build/path/uClinux/linux-2.6.x/include/asm/sockios.h'.
Pruning file `../sysdeps/unix/sysv/linux/bits/in.h'.
Pruning file `../sysdeps/i386/bits/byteswap.h'.
Finished prerequisites of target file `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `../scripts/gen-as-const.awk' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `pthread-errnos.sym' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `../include/libc-symbols.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `/home/build/path/uClinux/glibc/build/config.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `../sysdeps/wordsize-32/symbol-hacks.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `../include/errno.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-errnos.h'.
Prerequisite `../stdlib/errno.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-err
....
.......
Prerequisite `../time/sys/time.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../sysdeps/unix/sysv/linux/i386/sys/user.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../sysdeps/generic/unwind.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../include/resolv.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../resolv/resolv.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../include/netinet/in.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../inet/netinet/in.h' is older than target `/home/
Prerequisite `../sysdeps/unix/sysv/linux/bits/in.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../sysdeps/i386/bits/byteswap.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Prerequisite `../nptl/sysdeps/unix/sysv/linux/internaltypes.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
...
Prerequisite `../sysdeps/unix/sysv/linux/kernel-features.h' is older than target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
No need to remake target `/home/build/path/uClinux/glibc/build/pthread-pi-defines.h'.
Finished prerequisites of target file `/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os'.
Must remake target `/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os'.
i586-unknown-linux-gnu-gcc libc-cancellation.c -c -std=gnu99 -DCONFIG_GEODE -DCONFIG_NETtel -DCONFIG_SECUREEDGE -DCONFIG_X86 -DEMBED -O1 -Wall -Winline -Wwrite-strings -fgnu89-inline -fmerge-all-constants -g -Wstrict-prototypes -mpreferred-stack-boundary=2 -fPIC -g0 -O99 -fomit-frame-pointer -D__USE_STRING_INLINES -fasynchronous-unwind-tables -I../include -I/home/build/path/uClinux/glibc/build/nptl -I/home/build/path/uClinux/glibc/build -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -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../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -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 /home/build/path/crosstool-ng/output/gcc-4.2.1-glibc-2.5/i586-unknown-linux-gnu/lib/gcc/i586-unknown-linux-gnu/4.2.1/include -isystem /home/build/path/uClinux/linux-2.6.x/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -DNOT_IN_libc=1 -DIS_IN_rtld=1 -o /home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os -MD -MP -MF /home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os.dt -MT /home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os
make[6]: execvp: i586-unknown-linux-gnu-gcc: Argument list too long
Putting child 0x08e3bdf0 (/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os) PID 30194 on the chain.
Live child 0x08e3bdf0 (/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os) PID 30194
Reaping losing child 0x08e3bdf0 PID 30194
make[6]: *** [/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os] Error 127
Removing child 0x08e3bdf0 PID 30194 from chain.
make[6]: Leaving directory `/home/build/path/uClinux/glibc/glibc-2.5/nptl'
Reaping losing child 0x09c22ab0 PID 27931
make[5]: *** [/home/build/path/uClinux/glibc/build/nptl/rtld-libc-cancellation.os] Error 2
Removing child 0x09c22ab0 PID 27931 from chain.
make[5]: Leaving directory `/home/build/path/uClinux/glibc/glibc-2.5/elf'
Reaping losing child 0x09bcc1d0 PID 25914
make[4]: *** [/home/build/path/uClinux/glibc/build/elf/rtld-libc.a] Error 2
Removing child 0x09bcc1d0 PID 25914 from chain.
make[4]: Leaving directory `/home/build/path/uClinux/glibc/glibc-2.5/elf'
Reaping losing child 0x09832258 PID 25497
make[3]: *** [elf/subdir_lib] Error 2
Removing child 0x09832258 PID 25497 from chain.
make[3]: Leaving directory `/home/build/path/uClinux/glibc/glibc-2.5'
make[2]: *** [glibc-2.5-all] Error 2
make[2]: Leaving directory `/home/build/path/uClinux/glibc'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/build/path/uClinux/lib'
make: *** [subdirs] Error 1
[{WIFEXITED(s) && WEXITSTATUS(s) == 2}], 0, NULL) = 28994
--- SIGCHLD (Child exited) @ 0 (0) ---
sigreturn() = ? (mask now [])
exit_group(2) = ?