# Copyright 2019 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.

source_set("ldso") {
  deps = [
    ":dlstart",
    "$zx/system/ulib/ldmsg",
    "$zx/third_party/ulib/musl:musl_internal",
  ]
  sources = [
    "$zx/third_party/ulib/musl/arch/${toolchain.cpu}/dl-entry.S",
    "dynlink-sancov.S",
    "dynlink.c",
  ]

  # This is needed by dynlink-sancov.S and dynlink.c for "sancov-stubs.h".
  include_dirs = [ "$zx/system/ulib/c/sanitizers" ]

  if (toolchain.libprefix != "") {
    # The libprefix always ends with a / but that's not part of the
    # "config" string in the loader-service protocol.
    ldsvc_config = get_path_info("${toolchain.libprefix}libfoo.so", "dir")
    assert(ldsvc_config != "" && ldsvc_config != ".")
    defines = [ "DYNLINK_LDSVC_CONFIG=\"$ldsvc_config\"" ]
  }
}

source_set("dlstart") {
  visibility = [ ":*" ]
  deps = [
    "$zx/third_party/ulib/musl:musl_internal",
  ]
  sources = [
    "dlstart.c",
  ]
  configs += [ "$zx/public/gn/config:no_sanitizers" ]
}
