Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. . ../support/do.inc
  2.  
  3. set -x
  4.  
  5. prefix="$(pwd)/stage1"
  6. target=x86_64-linux-musl
  7. sysroot="$prefix/$target"
  8. sources=$(realpath ../sources)
  9. patches=$(realpath ../patches)
  10.  
  11. unpacksrc () {
  12. name="$1"
  13. tarball="$(echo $sources/$name-*)"
  14. mkdir "$name"
  15. tar -C "$name" --strip-components 1 -xf "$tarball"
  16. }
  17.  
  18. rm -rf "$prefix" ./build
  19. mkdir build
  20. cd build
  21. unpacksrc binutils
  22. unpacksrc musl
  23. unpacksrc linux
  24. unpacksrc gcc
  25. cd gcc
  26. unpacksrc gmp
  27. unpacksrc mpc
  28. unpacksrc mpfr
  29. applydirpatches "$patches/$(archivename2packagename $(echo $sources/gcc-*))"
  30. cd ..
  31. cd linux
  32. sed 's,/bin/pwd,pwd,g' -i Makefile
  33. make ARCH=x86_64 O="$sysroot" headers_install
  34. cd ..
  35. mkdir objdir
  36. cd objdir
  37. mkdir binutils
  38. cd binutils
  39. ../../binutils/configure \
  40. --prefix="$prefix" \
  41. --with-sysroot="$sysroot" \
  42. --target="$target" \
  43. --disable-multilib \
  44. --disable-separate-code \
  45. --disable-werror \
  46. --enable-deterministic-archives
  47. make -j $(nproc) all
  48. make install
  49. cd ..
  50. mkdir musl
  51. cd musl
  52. ../../musl/configure \
  53. --prefix="$prefix" \
  54. --target="$target" \
  55. --syslibdir="$prefix/lib" \
  56. --includedir="$prefix/$target/include" \
  57. --libdir="$prefix/$target/lib"
  58. make install-headers
  59. cd ..
  60. mkdir gcc
  61. cd gcc
  62. ../../gcc/configure \
  63. --prefix="$prefix" \
  64. --with-sysroot="$sysroot" \
  65. --target="$target" \
  66. --enable-languages=c \
  67. --disable-multilib \
  68. --disable-werror \
  69. --disable-libmudflap \
  70. --disable-libsanitizer \
  71. --disable-gnu-indirect-function \
  72. --disable-libmpx \
  73. --enable-libstdcxx-time \
  74. --enable-tls \
  75. AR_FOR_TARGET="$prefix/bin/$target-ar" \
  76. AS_FOR_TARGET="$prefix/bin/$target-as" \
  77. LD_FOR_TARGET="$prefix/bin/$target-ld" \
  78. NM_FOR_TARGET="$prefix/bin/$target-nm" \
  79. OBJCOPY_FOR_TARGET="$prefix/bin/$target-objcopy" \
  80. OBJDUMP_FOR_TARGET="$prefix/bin/$target-objdump" \
  81. RANLIB_FOR_TARGET="$prefix/bin/$target-ranlib" \
  82. READELF_FOR_TARGET="$prefix/bin/$target-readelf" \
  83. STRIP_FOR_TARGET="$prefix/bin/$target-strip"
  84. make -j $(nproc) all-gcc
  85. make -j $(nproc) enable_shared=no all-target-libgcc
  86. make install-gcc
  87. cd ..
  88. cd musl
  89. make -j $(nproc) CC="$prefix/bin/$target-gcc" LIBCC="../gcc/$target/libgcc/libgcc.a"
  90. make install
  91. cd ..
  92. cd gcc
  93. # Rebuild libgcc with shared...
  94. rm -rf libgcc/
  95. make -j $(nproc) all-target-libgcc
  96. make install-target-libgcc
  97. # XXX make
  98. # XXX make install
  99. cd ../..
  100.  
  101. touch $out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement