xref: /OK3568_Linux_fs/buildroot/package/gcc/gcc-initial/gcc-initial.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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