1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# gcc-target 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunGCC_TARGET_VERSION = $(GCC_VERSION) 8*4882a593SmuzhiyunGCC_TARGET_SITE = $(GCC_SITE) 9*4882a593SmuzhiyunGCC_TARGET_SOURCE = $(GCC_SOURCE) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun# Use the same archive as gcc-initial and gcc-final 12*4882a593SmuzhiyunGCC_TARGET_DL_SUBDIR = gcc 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunGCC_TARGET_DEPENDENCIES = binutils gmp mpfr mpc 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun# First, we use HOST_GCC_COMMON_MAKE_OPTS to get a lot of correct flags (such as 17*4882a593Smuzhiyun# the arch, abi, float support, etc.) which are based on the config used to 18*4882a593Smuzhiyun# build the internal toolchain 19*4882a593SmuzhiyunGCC_TARGET_CONF_OPTS = $(HOST_GCC_COMMON_CONF_OPTS) 20*4882a593Smuzhiyun# Then, we modify incorrect flags from HOST_GCC_COMMON_CONF_OPTS 21*4882a593SmuzhiyunGCC_TARGET_CONF_OPTS += \ 22*4882a593Smuzhiyun --with-sysroot=/ \ 23*4882a593Smuzhiyun --with-build-sysroot=$(STAGING_DIR) \ 24*4882a593Smuzhiyun --disable-__cxa_atexit \ 25*4882a593Smuzhiyun --with-gmp=$(STAGING_DIR) \ 26*4882a593Smuzhiyun --with-mpc=$(STAGING_DIR) \ 27*4882a593Smuzhiyun --with-mpfr=$(STAGING_DIR) 28*4882a593Smuzhiyun# Then, we force certain flags that may appear in HOST_GCC_COMMON_CONF_OPTS 29*4882a593SmuzhiyunGCC_TARGET_CONF_OPTS += \ 30*4882a593Smuzhiyun --disable-libquadmath \ 31*4882a593Smuzhiyun --disable-libsanitizer \ 32*4882a593Smuzhiyun --disable-plugin \ 33*4882a593Smuzhiyun --disable-lto 34*4882a593Smuzhiyun# Finally, we add some of our own flags 35*4882a593SmuzhiyunGCC_TARGET_CONF_OPTS += \ 36*4882a593Smuzhiyun --enable-languages=c \ 37*4882a593Smuzhiyun --disable-boostrap \ 38*4882a593Smuzhiyun --disable-libgomp \ 39*4882a593Smuzhiyun --disable-nls \ 40*4882a593Smuzhiyun --disable-libmpx \ 41*4882a593Smuzhiyun --disable-gcov \ 42*4882a593Smuzhiyun $(EXTRA_TARGET_GCC_CONFIG_OPTIONS) 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunGCC_TARGET_CONF_ENV = $(HOST_GCC_COMMON_CONF_ENV) 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunGCC_TARGET_MAKE_OPTS += $(HOST_GCC_COMMON_MAKE_OPTS) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun# Install standard C headers (from glibc) 49*4882a593Smuzhiyundefine GCC_TARGET_INSTALL_HEADERS 50*4882a593Smuzhiyun cp -r $(STAGING_DIR)/usr/include $(TARGET_DIR)/usr 51*4882a593Smuzhiyunendef 52*4882a593SmuzhiyunGCC_TARGET_POST_INSTALL_TARGET_HOOKS += GCC_TARGET_INSTALL_HEADERS 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun# Install standard C libraries (from glibc) 55*4882a593SmuzhiyunGCC_TARGET_GLIBC_LIBS = \ 56*4882a593Smuzhiyun *crt*.o *_nonshared.a \ 57*4882a593Smuzhiyun libBrokenLocale.so libanl.so libbfd.so libc.so libcrypt.so libdl.so \ 58*4882a593Smuzhiyun libm.so libnss_compat.so libnss_db.so libnss_files.so libnss_hesiod.so \ 59*4882a593Smuzhiyun libpthread.so libresolv.so librt.so libthread_db.so libutil.so 60*4882a593Smuzhiyun 61*4882a593Smuzhiyundefine GCC_TARGET_INSTALL_LIBS 62*4882a593Smuzhiyun for libpattern in $(GCC_TARGET_GLIBC_LIBS); do \ 63*4882a593Smuzhiyun $(call copy_toolchain_lib_root,$$libpattern) ; \ 64*4882a593Smuzhiyun done 65*4882a593Smuzhiyunendef 66*4882a593SmuzhiyunGCC_TARGET_POST_INSTALL_TARGET_HOOKS += GCC_TARGET_INSTALL_LIBS 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun# Remove unnecessary files (extra links to gcc binaries, and libgcc which is 69*4882a593Smuzhiyun# already in `/lib`) 70*4882a593Smuzhiyundefine GCC_TARGET_RM_FILES 71*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/bin/$(ARCH)-buildroot-linux-gnu-gcc* 72*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/lib/libgcc_s*.so* 73*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/$(ARCH)-buildroot-linux-gnu/lib/ldscripts/elf32* 74*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/$(ARCH)-buildroot-linux-gnu/lib/ldscripts/elf64b* 75*4882a593Smuzhiyunendef 76*4882a593SmuzhiyunGCC_TARGET_POST_INSTALL_TARGET_HOOKS += GCC_TARGET_RM_FILES 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun$(eval $(autotools-package)) 79