0003-CrossCompile-script.patch 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. diff --git a/CrossCompile.sh b/CrossCompile.sh
  2. new file mode 100755
  3. index 0000000..f18e4d5
  4. --- /dev/null
  5. +++ b/CrossCompile.sh
  6. @@ -0,0 +1,89 @@
  7. +#! /bin/bash
  8. +#
  9. +#
  10. +
  11. +WRKDIR=`pwd`
  12. +CMDDIR=`dirname \`readlink -f $0\``
  13. +cd $CMDDIR
  14. +
  15. +#=== Asssign GNU_TARGET_NAME from .config
  16. +_ARCH=`grep BR2_ARCH\= .config | awk -F\= -F\" '{print $2}'`
  17. +_TARGET_VENDOR=`grep BR2_TOOLCHAIN_BUILDROOT_VENDOR\= .config | awk -F\= -F\" '{print $2}'`
  18. +
  19. +# -- get target os
  20. +_BR2_BINFMT_FLAT=`grep BR2_BINFMT_FLAT\= .config | awk -F\= '{print $2}'`
  21. +if [ "$_BR2_BINFMT_FLAT" = "y" ]; then
  22. + _TARGET_OS="uclinux"
  23. + else
  24. + _TARGET_OS="linux"
  25. +fi
  26. +
  27. +# -- get libc
  28. +_BR2_TOOLCHAIN_USES_UCLIBC=`grep BR2_TOOLCHAIN_USES_UCLIBC\= .config | awk -F\= '{print $2}'`
  29. +_BR2_TOOLCHAIN_USES_MUSL=`grep BR2_TOOLCHAIN_USES_MUSL\= .config | awk -F\= '{print $2}'`
  30. +
  31. +if [ "$_BR2_TOOLCHAIN_USES_UCLIBC" = "y" ]; then
  32. + _LIBC="uclibc"
  33. + else
  34. + if [ "$_BR2_TOOLCHAIN_USES_MUSL" = "y" ]; then
  35. + _LIBC="musl"
  36. + else
  37. + _LIBC="gnu"
  38. + fi
  39. +fi
  40. +
  41. +# -- ABI
  42. +_BR2_arm=`grep BR2_arm\= .config | awk -F\= '{print $2}'`
  43. +_BR2_armeb=`grep BR2_armeb\= .config | awk -F\= '{print $2}'`
  44. +_BR2_ARM_EABIHF=`grep BR2_ARM_EABIHF\= .config | awk -F\= '{print $2}'`
  45. +if [ "$_BR2_arm" = "y" ] || [ "$_BR2_armeb" = "y" ]; then
  46. + if [ "$_LIBC" = "uclibc" ]; then
  47. + _ABI="gnueabi"
  48. + else
  49. + _ABI="eabi"
  50. + fi
  51. + if [ "$_BR2_ARM_EABIHF" = "y" ]; then
  52. + _ABI="${_ABI}hf"
  53. + fi
  54. +fi
  55. +
  56. +_GNU_TARGET_NAME="${_ARCH}-${_TARGET_VENDOR}-${_TARGET_OS}-${_LIBC}${_ABI}"
  57. +#===============================================================
  58. +
  59. +TOOLCHAIN=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`
  60. +echo $TOOLCHAIN
  61. +
  62. +if [[ $TOOLCHAIN = *\$\(BASE_DIR\)* ]]; then
  63. + export SYSROOT=`readlink -f $CMDDIR`/output/host/usr/bin/
  64. +else
  65. + export SYSROOT=$TOOLCHAIN/usr/bin
  66. +fi
  67. +
  68. +export PATH=$PATH:$SYSROOT
  69. +
  70. +export CROSS_COMPILE="${_GNU_TARGET_NAME}-"
  71. +export CROSS=${CROSS_COMPILE}
  72. +
  73. +export ARCH=arm64
  74. +_KERNELDIR=`grep BR2_LINUX_KERNEL_VERSION\= .config | awk -F\= -F\" '{print $2}'`
  75. +export KERNELDIR=${CMDDIR}/output/build/linux-${_KERNELDIR}
  76. +export BB_KERNEL_SOURCES=$KERNELDIR
  77. +export SYSROOTARM=`grep BR2_HOST_DIR .config | awk -F\= -F\" '{print $2}'`/usr/${_GNU_TARGET_NAME}/sysroot
  78. +export CC_FULLPATH="${SYSROOT}/${CROSS_COMPILE}"
  79. +export CC=${CROSS_COMPILE}gcc
  80. +export CXX=${CROSS_COMPILE}g++
  81. +
  82. +export AS=arm-buildroot-linux-gnueabihf-as
  83. +export NM=arm-buildroot-linux-gnueabihf-nm
  84. +export OBJCOPY=arm-buildroot-linux-gnueabihf-objcopy
  85. +export STRIP=arm-buildroot-linux-gnueabihf-strip
  86. +#for contiki-ng
  87. +export LD_OVERRIDE=$CC
  88. +
  89. +cd $WRKDIR
  90. +if [ $# -eq "0" ]
  91. +then
  92. +PROMPT_COMMAND='PS1="\[\033[0;31m\]CROSS CC:\[\033[0;32m\]$PS1";unset PROMPT_COMMAND' bash ; reset
  93. +else
  94. +$1
  95. +fi