zoukankan      html  css  js  c++  java
  • 【CLFS】记录:

    CLFS在线文档:
    http://cross-lfs.org/view/clfs-embedded/arm/index.html

    1、环境变量准备:
    export CLFS_HOST=$(echo ${MACHTYPE} | sed "s/-[^-]*/-cross/")

    export CLFS=/home/wutiejun/host/clfs
    export CLFS_HOST=i686-cross-linux
    export CLFS_TARGET=arm-wap-linux-uclibceabi
    export CLFS_PREFIX=/home/wutiejun/host/clfs/cross-tools
    export CLFS_ARCH="arm"
    export CLFS_ENDIAN="little"
    export CLFS_FLOAT="soft"
    export CLFS_ABI="aapcs-linux"
    export CLFS_ARM_ARCH="armv6"
    export CLFS_ARM_MODE="arm"
    export CLFS_FPU=""

    /home/wutiejun/host/clfs/cross-tools/usr/include

    arm-wap-linux-uclibceabi-

    2、准备内核头文件:
    make mrproper
    make ARCH=${CLFS_ARCH} headers_check
    make ARCH=${CLFS_ARCH} INSTALL_HDR_PATH=${CLFS_PREFIX}/usr/include headers_install

    cp -rv dest/include/* ${CLFS}/usr/include


    3、GMP包编译:
    CPPFLAGS=-fexceptions ./configure \
        --prefix=${CLFS}/cross-tools

    make
    make check
    make install

    3、编译MPFR包:
    LDFLAGS="-Wl,-rpath,${CLFS}/cross-tools/lib" \
      ./configure --prefix=${CLFS}/cross-tools --enable-shared \
      --with-gmp=${CLFS}/cross-tools

    make
    make install

    3、编译MPC包:
    LDFLAGS="-Wl,-rpath,${CLFS}/cross-tools/lib" \
      ./configure --prefix=${CLFS}/cross-tools \
          --with-gmp=${CLFS}/cross-tools \
          --with-mpfr=${CLFS}/cross-tools

    make
    make install


    3、编译binutils;
    config参数:

    ../binutils-2.21/configure --prefix=${CLFS}/cross-tools \
       --target=${CLFS_TARGET} --with-sysroot=${CLFS} --disable-nls \
       --enable-shared --disable-multilib

    make configure-host
    make

    make install

    cp -v ../binutils-2.21/include/libiberty.h ${CLFS}/usr/include


    4、编译静态gcc:

    AR=ar LDFLAGS="-Wl,-rpath,${CLFS}/cross-tools/lib" \
      ../gcc-4.6.0/configure --prefix=${CLFS}/cross-tools \
      --build=${CLFS_HOST} --host=${CLFS_HOST} --target=${CLFS_TARGET} \
      --with-sysroot=${CLFS} --disable-nls  --disable-shared \
      --with-mpfr=${CLFS}/cross-tools --with-gmp=${CLFS}/cross-tools \
      --with-mpc=${CLFS}/cross-tools --without-headers --with-newlib \
      --disable-decimal-float --disable-libgomp --disable-libmudflap \
      --disable-libssp --disable-threads --enable-languages=c \
      --disable-multilib --with-abi=${CLFS_ABI} --with-arch=${CLFS_ARM_ARCH} \
      --with-mode=${CLFS_ARM_MODE} --with-float=${CLFS_FLOAT} \
      --with-fpu=${CLFS_FPU}

    make all-gcc all-target-libgcc

    make install-gcc install-target-libgcc


    5、编译uclibc:
    declare -x

    PATH="/home/wutiejun/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt

    /kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin"

    export PATH=$PATH:${CLFS_PREFIX}/bin

    patch -Np1 -i ../uClibc-0.9.31-configs-2.patch

    修改eabi或者oabi
    cp -v clfs/config.${CLFS_ARCH}.${CLFS_ENDIAN} .config
    if [ "${CLFS_ABI}" == "aapcs" ] || [ "${CLFS_ABI}" == "aapcs-linux" ]; \
      then sed -i s/CONFIG_ARM_OABI/CONFIG_ARM_EABI/g .config; fi

    make oldconfig

    make

    make PREFIX=${CLFS} install

    6、编译gcc第二次:

    AR=ar LDFLAGS="-Wl,-rpath,${CLFS}/cross-tools/lib" \
      ../gcc-4.6.0/configure --prefix=${CLFS}/cross-tools \
      --build=${CLFS_HOST} --target=${CLFS_TARGET} --host=${CLFS_HOST} \
      --with-sysroot=${CLFS} --disable-nls --enable-shared \
      --enable-languages=c --enable-c99 --enable-long-long \
      --with-mpfr=${CLFS}/cross-tools --with-gmp=${CLFS}/cross-tools \
      --with-mpc=${CLFS}/cross-tools --disable-multilib \
      --with-abi=${CLFS_ABI} --with-arch=${CLFS_ARM_ARCH} \
      --with-mode=${CLFS_ARM_MODE} --with-float=${CLFS_FLOAT} \
      --with-fpu=${CLFS_FPU}

    make

    make install

    cp -v ${CLFS}/cross-tools/${CLFS_TARGET}/lib/libgcc_s.so.1 ${CLFS}/lib


     

    ================================
      /\_/\                        
     (=^o^=)  Wu.Country@侠缘      
     (~)@(~)  一辈子,用心做一件事!
    --------------------------------
      学而不思则罔,思而不学则怠!  
    ================================
  • 相关阅读:
    ocilib(简介2)
    C++ Socket编程步骤 (转载)
    服务端和客户端的疑问
    var和public的区别
    vs2010如何设置能实现输入关键字的时候自动提示呢?
    ocilib(简介)
    iostream.h , iostream
    error C2110: cannot add two pointers
    Array 越界不报错的问题
    char* + int or char or ...
  • 原文地址:https://www.cnblogs.com/WuCountry/p/2147603.html
Copyright © 2011-2022 走看看