gcc-initial.mk 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. ################################################################################
  2. #
  3. # gcc-initial
  4. #
  5. ################################################################################
  6. GCC_INITIAL_VERSION = $(GCC_VERSION)
  7. GCC_INITIAL_SITE = $(GCC_SITE)
  8. GCC_INITIAL_SOURCE = $(GCC_SOURCE)
  9. HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES)
  10. HOST_GCC_INITIAL_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
  11. ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
  12. HOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
  13. endif
  14. HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES
  15. # gcc doesn't support in-tree build, so we create a 'build'
  16. # subdirectory in the gcc sources, and build from there.
  17. HOST_GCC_INITIAL_SUBDIR = build
  18. HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
  19. # gcc on ARC has a bug: in its libgcc, even when no C library is
  20. # available (--with-newlib is passed, and therefore inhibit_libc is
  21. # defined), it tries to use the C library for the libgmon
  22. # library. Since it's not needed in gcc-initial, we disabled it here.
  23. ifeq ($(BR2_GCC_VERSION_4_8_ARC),y)
  24. define HOST_GCC_INITIAL_DISABLE_LIBGMON
  25. $(SED) 's/crtbeginS.o libgmon.a crtg.o/crtbeginS.o crtg.o/' \
  26. $(@D)/libgcc/config.host
  27. endef
  28. HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_INITIAL_DISABLE_LIBGMON
  29. HOST_GCC_INITIAL_POST_RSYNC_HOOKS += HOST_GCC_INITIAL_DISABLE_LIBGMON
  30. endif
  31. HOST_GCC_INITIAL_CONF_OPTS = \
  32. $(HOST_GCC_COMMON_CONF_OPTS) \
  33. --enable-languages=c \
  34. --disable-shared \
  35. --without-headers \
  36. --disable-threads \
  37. --with-newlib \
  38. --disable-largefile \
  39. --disable-nls \
  40. $(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
  41. HOST_GCC_INITIAL_CONF_ENV = \
  42. $(HOST_GCC_COMMON_CONF_ENV)
  43. # We need to tell gcc that the C library will be providing the ssp
  44. # support, as it can't guess it since the C library hasn't been built
  45. # yet (we're gcc-initial).
  46. HOST_GCC_INITIAL_MAKE_OPTS = $(if $(BR2_TOOLCHAIN_HAS_SSP),gcc_cv_libc_provides_ssp=yes) all-gcc
  47. HOST_GCC_INITIAL_INSTALL_OPTS = install-gcc
  48. ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
  49. HOST_GCC_INITIAL_MAKE_OPTS += all-target-libgcc
  50. HOST_GCC_INITIAL_INSTALL_OPTS += install-target-libgcc
  51. endif
  52. HOST_GCC_INITIAL_TOOLCHAIN_WRAPPER_ARGS += $(HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS)
  53. HOST_GCC_INITIAL_POST_BUILD_HOOKS += TOOLCHAIN_BUILD_WRAPPER
  54. HOST_GCC_INITIAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
  55. $(eval $(host-autotools-package))