# Copyright 2016 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

LOCAL_DIR := $(GET_LOCAL_DIR)

MODULE := $(LOCAL_DIR)

MODULE_TYPE := userlib

# This library should not depend on libc.
MODULE_COMPILEFLAGS := -ffreestanding $(NO_SAFESTACK) $(NO_SANITIZERS)

MODULE_HEADER_DEPS := kernel/lib/vdso

MODULE_SRCS := \
    $(LOCAL_DIR)/data.S \
    $(LOCAL_DIR)/zx_cache_flush.cpp \
    $(LOCAL_DIR)/zx_channel_call.cpp \
    $(LOCAL_DIR)/zx_deadline_after.cpp \
    $(LOCAL_DIR)/zx_status_get_string.cpp \
    $(LOCAL_DIR)/zx_system_get_num_cpus.cpp \
    $(LOCAL_DIR)/zx_system_get_physmem.cpp \
    $(LOCAL_DIR)/zx_system_get_version.cpp \
    $(LOCAL_DIR)/zx_ticks_get.cpp \
    $(LOCAL_DIR)/zx_ticks_per_second.cpp \
    $(LOCAL_DIR)/syscall-wrappers.cpp \

ifeq ($(ARCH),arm64)
MODULE_SRCS += \
    $(LOCAL_DIR)/zx_futex_wake_handle_close_thread_exit-arm64.S \
    $(LOCAL_DIR)/zx_vmar_unmap_handle_close_thread_exit-arm64.S \
    $(LOCAL_DIR)/syscalls-arm64.S
else ifeq ($(ARCH),x86)
MODULE_SRCS += \
    $(LOCAL_DIR)/zx_futex_wake_handle_close_thread_exit-x86-64.S \
    $(LOCAL_DIR)/zx_vmar_unmap_handle_close_thread_exit-x86-64.S \
    $(LOCAL_DIR)/syscalls-x86-64.S
endif

# This gets an ABI stub installed in sysroots, but the DSO never gets
# installed on disk because it's delivered magically by the kernel.
MODULE_EXPORT := so
MODULE_SO_NAME := zircon
MODULE_SO_INSTALL_NAME := -

# All the code this DSO is pure read-only/reentrant code that
# does not need any writable data (except its caller's stack).
# Make it use a simplified, hardened memory layout.
MODULE_LDFLAGS := $(RODSO_LDFLAGS)

# Explicit dependency to make sure the file gets generated first.
# MODULE_SRCDEPS is overkill for this since only one file uses it.
$(BUILDDIR)/$(LOCAL_DIR)/$(LOCAL_DIR)/zx_system_get_version.cpp.o: \
    $(BUILDDIR)/config-buildid.h
MODULE_COMPILEFLAGS += -I$(BUILDDIR)

include make/module.mk
