gcc-initial.mk 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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_LICENSE = $(HOST_GCC_LICENSE)
  10. HOST_GCC_INITIAL_LICENSE_FILES = $(HOST_GCC_LICENSE_FILES)
  11. # We do not have a 'gcc' package per-se; we only have two incarnations,
  12. # gcc-initial and gcc-final. gcc-initial is just an internal step that
  13. # users should not care about, while gcc-final is the one they shall see.
  14. HOST_GCC_INITIAL_DL_SUBDIR = gcc
  15. HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES)
  16. HOST_GCC_INITIAL_EXCLUDES = $(HOST_GCC_EXCLUDES)
  17. ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
  18. HOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
  19. HOST_GCC_INITIAL_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL)
  20. endif
  21. HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES
  22. # gcc doesn't support in-tree build, so we create a 'build'
  23. # subdirectory in the gcc sources, and build from there.
  24. HOST_GCC_INITIAL_SUBDIR = build
  25. HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
  26. HOST_GCC_INITIAL_CONF_OPTS = \
  27. $(HOST_GCC_COMMON_CONF_OPTS) \
  28. --enable-languages=c \
  29. --disable-shared \
  30. --without-headers \
  31. --disable-threads \
  32. --with-newlib \
  33. --disable-largefile \
  34. $(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
  35. # allow to build gcc 14.x
  36. ifeq ($(BR2_nios2),y)
  37. HOST_GCC_INITIAL_CONF_OPTS += --enable-obsolete
  38. endif
  39. HOST_GCC_INITIAL_CONF_ENV = \
  40. $(HOST_GCC_COMMON_CONF_ENV)
  41. # Enable GCC target libs optimizations to optimize out __register_frame
  42. # when needed for some architectures when building with glibc.
  43. ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_107728),y)
  44. HOST_GCC_INITIAL_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CFLAGS) -O1"
  45. HOST_GCC_INITIAL_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS) -O1"
  46. endif
  47. HOST_GCC_INITIAL_MAKE_OPTS = $(HOST_GCC_COMMON_MAKE_OPTS) all-gcc all-target-libgcc
  48. HOST_GCC_INITIAL_INSTALL_OPTS = install-gcc install-target-libgcc
  49. HOST_GCC_INITIAL_TOOLCHAIN_WRAPPER_ARGS += $(HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS)
  50. HOST_GCC_INITIAL_POST_BUILD_HOOKS += TOOLCHAIN_WRAPPER_BUILD
  51. HOST_GCC_INITIAL_POST_INSTALL_HOOKS += TOOLCHAIN_WRAPPER_INSTALL
  52. HOST_GCC_INITIAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS
  53. $(eval $(host-autotools-package))