04-musl 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Build script for musl.
  2. #
  3. # Copyright (c) 2014-2023 Matias Fonzo, <selk@dragora.org>.
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. version=1.2.3
  17. cd -- "$TMPDIR"
  18. rm -rf musl-${version}
  19. unpack "${worktree}/sources/musl-${version}.tar.gz"
  20. # Build instructions
  21. cd musl-${version}
  22. #patch -Np1 -i "${worktree}/patches/musl/branch-updates.diff"
  23. # Fix debugger tracking of shared libraries on mips with PIE main program
  24. patch -Np1 -i "${worktree}/patches/musl/f897461d4fe72bb71854a6d0662de83008caccb7"
  25. # Fix wrong sigaction syscall ABI on mips*, or1k, microblaze, riscv64
  26. patch -Np1 -i "${worktree}/patches/musl/269d193820342dc109f39909d78fb30f4c978f76"
  27. # Support DT_RELR relative relocation format
  28. patch -Np1 -i "${worktree}/patches/musl/d32dadd60efb9d3b255351a3b532f8e4c3dd0db1"
  29. # Process DT_RELR relocations in ldso-startup/static-pie
  30. patch -Np1 -i "${worktree}/patches/musl/6f3ead0ae16deb9f0004b275e29a276c9712ee3c"
  31. # Fix double-processing of DT_RELR relocations in ldso relocating itself
  32. patch -Np1 -i "${worktree}/patches/musl/29e4319178cbc2a4e9f058a99ae8098d4b6ac055"
  33. ./configure CC="${target}-gcc" CROSS_COMPILE="${target}-" \
  34. CFLAGS="$BTCFLAGS" \
  35. --prefix= \
  36. --syslibdir=/lib \
  37. --enable-optimize \
  38. --enable-debug
  39. make -j${jobs}
  40. make -j${jobs} DESTDIR="${crossdir}/$target" install
  41. # Provide minimal libssp_nonshared.a for the bootstrap process
  42. ${target}-gcc \
  43. -c "${worktree}/archive/gcc/__stack_chk_fail_local.c" \
  44. -o __stack_chk_fail_local.o
  45. ${target}-ar rc libssp_nonshared.a __stack_chk_fail_local.o
  46. ${target}-ranlib libssp_nonshared.a
  47. cp -p libssp_nonshared.a "${crossdir}/${target}/lib/"
  48. cleanup()
  49. {
  50. cd -- "$TMPDIR" && rm -rf musl-${version}
  51. }