1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# gcc-initial 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunGCC_INITIAL_VERSION = $(GCC_VERSION) 8*4882a593SmuzhiyunGCC_INITIAL_SITE = $(GCC_SITE) 9*4882a593SmuzhiyunGCC_INITIAL_SOURCE = $(GCC_SOURCE) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun# We do not have a 'gcc' package per-se; we only have two incarnations, 12*4882a593Smuzhiyun# gcc-initial and gcc-final. gcc-initial is just an internal step that 13*4882a593Smuzhiyun# users should not care about, while gcc-final is the one they shall see. 14*4882a593SmuzhiyunHOST_GCC_INITIAL_DL_SUBDIR = gcc 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunHOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES) 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunHOST_GCC_INITIAL_EXCLUDES = $(HOST_GCC_EXCLUDES) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunifneq ($(ARCH_XTENSA_OVERLAY_FILE),) 21*4882a593SmuzhiyunHOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT 22*4882a593SmuzhiyunHOST_GCC_INITIAL_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) 23*4882a593Smuzhiyunendif 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunHOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun# gcc doesn't support in-tree build, so we create a 'build' 28*4882a593Smuzhiyun# subdirectory in the gcc sources, and build from there. 29*4882a593SmuzhiyunHOST_GCC_INITIAL_SUBDIR = build 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunHOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunHOST_GCC_INITIAL_CONF_OPTS = \ 34*4882a593Smuzhiyun $(HOST_GCC_COMMON_CONF_OPTS) \ 35*4882a593Smuzhiyun --enable-languages=c \ 36*4882a593Smuzhiyun --disable-shared \ 37*4882a593Smuzhiyun --without-headers \ 38*4882a593Smuzhiyun --disable-threads \ 39*4882a593Smuzhiyun --with-newlib \ 40*4882a593Smuzhiyun --disable-largefile \ 41*4882a593Smuzhiyun $(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS)) 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunHOST_GCC_INITIAL_CONF_ENV = \ 44*4882a593Smuzhiyun $(HOST_GCC_COMMON_CONF_ENV) 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun# Enable GCC target libs optimizations to optimize out __register_frame 47*4882a593Smuzhiyun# when needed for some architectures when building with glibc. 48*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_107728),y) 49*4882a593SmuzhiyunHOST_GCC_INITIAL_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CFLAGS) -O1" 50*4882a593SmuzhiyunHOST_GCC_INITIAL_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS) -O1" 51*4882a593Smuzhiyunendif 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunHOST_GCC_INITIAL_MAKE_OPTS = $(HOST_GCC_COMMON_MAKE_OPTS) all-gcc all-target-libgcc 54*4882a593SmuzhiyunHOST_GCC_INITIAL_INSTALL_OPTS = install-gcc install-target-libgcc 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunHOST_GCC_INITIAL_TOOLCHAIN_WRAPPER_ARGS += $(HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS) 57*4882a593SmuzhiyunHOST_GCC_INITIAL_POST_BUILD_HOOKS += TOOLCHAIN_WRAPPER_BUILD 58*4882a593SmuzhiyunHOST_GCC_INITIAL_POST_INSTALL_HOOKS += TOOLCHAIN_WRAPPER_INSTALL 59*4882a593SmuzhiyunHOST_GCC_INITIAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun$(eval $(host-autotools-package)) 62