1

我正在尝试将我们的构建服务器从 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)                           = ?
4

0 回答 0