# SPDX-License-Identifier: GPL-3.0-or-later
#
# Copyright (C) 2005-2022 Free Software Foundation, Inc.
# Copyright (C) 2022 Kernkonzept GmbH.
# Author(s): Georg Kotheimer <georg.kotheimer@kernkonzept.com>

# --- From libgcc/Makefile.in ---
enable_execute_stack = enable-execute-stack-empty.c
unwind_header = unwind-generic.h
md_unwind_def_header = aarch64/aarch64-unwind-def.h
$(eval $(call libgcc_include_config,aarch64/md-unwind-header))
sfp_machine_header = aarch64/sfp-machine.h
thread_header-l4api-plain := gthr-single.h
thread_header-l4api-l4f   := gthr-posix.h
thread_header = $(thread_header-l4api-$(L4API))

# List of extra object files that should be compiled for this target machine.
# The rules for compiling them should be in the t-* file for the machine.
EXTRA_PARTS = crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o


# --- From libgcc/config/t-eh-dw2-dip ---
$(eval $(call libgcc_include_config,t-eh-dw2-dip))


# --- From libgcc/config/aarch64/t-aarch64 ---
LIB2ADD += config/aarch64/sync-cache.c

# GCC >= 14
ifneq ($(call libgcc_if_min_version,14),)
LIB2ADD += config/aarch64/cpuinfo.c

# Add sme runtime to shared libgcc
LIB2ADDEH += \
  config/aarch64/__aarch64_have_sme.c \
  config/aarch64/__arm_sme_state.S \
  config/aarch64/__arm_tpidr2_restore.S \
  config/aarch64/__arm_tpidr2_save.S \
  config/aarch64/__arm_za_disable.S
endif


# --- From libgcc/config/aarch64/t-lse ---
$(eval $(call libgcc_include_config,aarch64/t-lse))


ifeq ($(BID_VARIANT_FLAG_NOFPU),)
# --- From libgcc/config/aarch64/t-softfp ---
$(eval $(call libgcc_include_config,aarch64/t-softfp))


# --- From libgcc/config/t-softfp ---
$(eval $(call libgcc_include_config,t-softfp))


# -- From libgcc/config/t-crtfm ---
EXTRA_PARTS += crtfastmath.o
$(eval $(call libgcc_include_config,t-crtfm))
endif


# GCC >= 14
ifneq ($(call libgcc_if_min_version,14),)
# -- From libgcc/config/aarch64/t-heap-trampoline ---
LIB2ADDEH += config/aarch64/heap-trampoline.c
LIB2ADDEHSHARED += config/aarch64/heap-trampoline.c
endif
