5 kx
5 kx
5 kx COMPONENT_TARGETS = $(TOOLCHAIN_POWER8_GLIBC)
5 kx COMPONENT_TARGETS += $(TOOLCHAIN_POWER9_GLIBC)
5 kx
5 kx FLAVOURS = headers full
5 kx
5 kx include ../../../build-system/config.mk
5 kx
5 kx SOURCE_REQUIRES = sources/GNU/glibc
5 kx
5 kx ifeq ($(FLAVOUR),headers)
28 kx REQUIRES = core/linux/6.1.53
5 kx endif
5 kx
5 kx ifeq ($(FLAVOUR),full)
5 kx REQUIRES = core/gcc/12.2.0^second
5 kx endif
5 kx
5 kx # ======= __END_OF_REQUIRES__ =======
5 kx
11 kx tar_xz_archive = $(SRC_PACKAGE_PATH)/GNU/glibc/glibc-2.37.tar.xz
5 kx SRC_ARCHIVE = $(tar_xz_archive)
11 kx SRC_DIR = $(TARGET_BUILD_DIR)/glibc-2.37
11 kx src_dir_name = glibc-2.37
5 kx src_done = $(TARGET_BUILD_DIR)/.source-done
5 kx
5 kx PATCHES = PATCHES
5 kx
5 kx full_dir = $(TARGET_BUILD_DIR)/build-full
5 kx headers_dir = $(TARGET_BUILD_DIR)/build-headers
5 kx
5 kx sysroot_dir = $(TOOLCHAIN_PATH)/$(TARGET)/sys-root
5 kx
5 kx headers_target = $(TARGET_BUILD_DIR)/.headers-installed
5 kx full_target = $(TARGET_BUILD_DIR)/.installed
5 kx
5 kx
5 kx
5 kx ifeq ($(FLAVOUR),headers)
5 kx BUILD_TARGETS = $(headers_target)
5 kx endif
5 kx
5 kx ifeq ($(FLAVOUR),full)
5 kx BUILD_TARGETS = $(full_target)
5 kx endif
5 kx
5 kx include ../../../build-system/core.mk
5 kx
5 kx
5 kx env_sysroot = install_root=$(sysroot_dir)
5 kx
5 kx
5 kx CC = $(CCACHE)$(TOOLCHAIN_PATH)/bin/$(TARGET)-gcc -m32
5 kx CXX = $(CCACHE)$(TOOLCHAIN_PATH)/bin/$(TARGET)-g++ -m32
5 kx
5 kx environment = AS=$(TOOLCHAIN_PATH)/bin/$(TARGET)-as
5 kx environment += LD=$(TOOLCHAIN_PATH)/bin/$(TARGET)-ld
5 kx environment += CC="$(CC)"
5 kx environment += CXX="$(CXX)"
5 kx environment += AR=$(TOOLCHAIN_PATH)/bin/$(TARGET)-ar
5 kx environment += RANLIB=$(TOOLCHAIN_PATH)/bin/$(TARGET)-ranlib
5 kx
5 kx environment += PATH=$(TOOLCHAIN_PATH)/bin:$(PATH)
5 kx
5 kx environment += BUILD_CC="$(CCACHE)/usr/bin/gcc"
5 kx
5 kx LIBSUFFIX =
5 kx
5 kx ifeq ($(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC))
5 kx environment += CFLAGS="-g -O3 -mcpu=power8 -mlong-double-128"
5 kx endif
5 kx
5 kx ifeq ($(TOOLCHAIN),$(TOOLCHAIN_POWER9_GLIBC))
5 kx environment += CFLAGS="-g -O3 -mcpu=power9 -mlong-double-128"
5 kx endif
5 kx
5 kx LIBSUFFIX = 32
5 kx
5 kx TARGET32 = $(shell echo $(TARGET) | sed 's/ppc64/ppc/')
5 kx
5 kx
5 kx ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
5 kx extra_configure_switches = --libdir=/usr/lib$(LIBSUFFIX)
5 kx extra_configure_switches += --with-headers=$(sysroot_dir)/usr/include
5 kx ifeq ($(FLAVOUR),headers)
5 kx extra_configure_switches += --with-binutils=$(TOOLCHAIN_PATH)/bin
5 kx extra_configure_switches += --enable-kernel=3.2.0
5 kx extra_configure_switches += --disable-profile
5 kx extra_configure_switches += --enable-bind-now
5 kx extra_configure_switches += --without-gd
5 kx extra_configure_switches += --without-cvs
5 kx endif
5 kx ifeq ($(FLAVOUR),full)
5 kx extra_configure_switches += --with-binutils=$(TOOLCHAIN_PATH)/bin
5 kx extra_configure_switches += --enable-kernel=3.2.0
5 kx extra_configure_switches += --disable-profile
5 kx extra_configure_switches += --enable-bind-now
5 kx extra_configure_switches += --without-gd
5 kx extra_configure_switches += --without-cvs
5 kx endif
5 kx endif
5 kx
5 kx
5 kx extra_configure_switches += libc_cv_slibdir=/lib$(LIBSUFFIX)
5 kx extra_configure_switches += libc_cv_rtlddir=/lib$(LIBSUFFIX)
5 kx
5 kx
5 kx
5 kx $(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
5 kx $(UNPACK_SRC_ARCHIVE)
5 kx $(APPLY_PATCHES)
5 kx @touch $@
5 kx
5 kx $(headers_target): $(src_done)
5 kx @mkdir -p $(headers_dir)
5 kx @cd $(headers_dir) && $(env_sysroot) $(environment) ../$(src_dir_name)/configure \
5 kx --prefix=/usr \
5 kx --build=$(BUILD) \
5 kx --host=$(TARGET32) \
5 kx $(extra_configure_switches)
5 kx @cd $(headers_dir) && $(MAKE) -j1 install-headers \
5 kx install-bootstrap-headers=yes $(env_sysroot)
5 kx @cd $(headers_dir) && $(environment) $(MAKE) -j1 csu/subdir_lib
5 kx # ======= install 'lib-names-32.h' =======
5 kx @mkdir -p $(sysroot_dir)/usr/include/gnu
5 kx @install --mode=0644 $(headers_dir)/gnu/lib-names-32.h $(sysroot_dir)/usr/include/gnu
5 kx # ========================================
5 kx @cd $(headers_dir) && $(environment) $(MAKE) -j1 csu/subdir_install $(env_sysroot)
5 kx @$(environment) $(CC) -nostdlib -nostartfiles -shared -x c /dev/null \
5 kx -o $(sysroot_dir)/usr/lib$(LIBSUFFIX)/libc.so
5 kx @echo " $(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README
5 kx @touch $@
5 kx
5 kx $(full_target): $(src_done)
5 kx @mkdir -p $(full_dir)
5 kx @echo "slibdir=/lib$(LIBSUFFIX)" >> $(full_dir)/configparms
5 kx @echo "rtlddir=/lib$(LIBSUFFIX)" >> $(full_dir)/configparms
5 kx @cd $(full_dir) && $(env_sysroot) $(environment) ../$(src_dir_name)/configure \
5 kx --prefix=/usr \
5 kx --build=$(BUILD) \
5 kx --host=$(TARGET32) \
5 kx $(extra_configure_switches)
5 kx @cd $(full_dir) && $(environment) $(MAKE) all
5 kx @cd $(full_dir) && $(environment) $(MAKE) -j1 install $(env_sysroot)
5 kx @echo " $(subst $(TOP_BUILD_DIR_ABS)/,,$(CURDIR))$(if $(FLAVOUR),:$(FLAVOUR),)" >> $(TOOLCHAIN_PATH)/README
5 kx @touch $@