blob: baa083a31137d269d697a83e8595494ae021da3a [file] [log] [blame]
# 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.
import("//src/devices/bus/drivers/pci/pci.gni")
declare_args() {
# Enable debug output in the ACPI library (used by the ACPI bus driver).
acpica_debug_output = false
}
group("headers") {
public_configs = [
":headers.config",
":disable_warnings",
]
}
config("headers.config") {
visibility = [ ":headers" ]
include_dirs = [ "include" ]
# UBSan warns on a few instances of misaligned loads. Define this macro to
# perform byte-by-byte accesses.
defines = [ "ACPI_MISALIGNMENT_NOT_SUPPORTED" ]
}
# Disable warnings we won't fix in third-party code. Putting this in a
# separate config rather than directly in the target gets these flags
# correctly ordered after the $zx/public/gn/config:default_warnings flags.
config("disable_warnings") {
visibility = [ ":*" ]
cflags = [
"-Wno-implicit-fallthrough",
"-Wno-incompatible-pointer-types-discards-qualifiers",
"-Wno-null-pointer-arithmetic",
]
}
static_library("acpica") {
public_deps = [ ":headers" ]
# Local sources use #include "acpi.h", not #include <acpica/acpi.h>.
include_dirs = [ "source/include" ]
configs += [
":disable_warnings",
# TODO(41663): UBSan has found an instance of undefined behavior in this target.
# Disable UBSan for this target temporarily until it is migrated into CI/CQ.
"//build/config:temporarily_disable_ubsan_do_not_use",
# TODO(fxb/58162): delete the below and fix compiler warnings
"//build/config:Wno-conversion",
]
# We need to specify -fno-strict-aliasing, since ACPICA has a habit of
# violating strict aliasing rules in some of its macros. Rewriting this
# code would increase the maintenance cost of bringing in the latest
# upstream ACPICA, so instead we mitigate the problem with a compile-time
# flag. We take the more conservative approach of disabling
# strict-aliasing-based optimizations, rather than disabling warnings.
cflags = [ "-fno-strict-aliasing" ]
sources = [
"$zx/system/ulib/acpica/osfuchsia.cc",
"source/common/ahids.c",
"source/common/ahpredef.c",
"source/common/ahtable.c",
"source/common/dmtbdump.c",
"source/common/dmtbdump1.c",
"source/common/dmtbdump2.c",
"source/common/dmtbdump3.c",
"source/common/dmtbinfo.c",
"source/common/dmtbinfo1.c",
"source/common/dmtbinfo2.c",
"source/common/dmtbinfo3.c",
"source/components/dispatcher/dsargs.c",
"source/components/dispatcher/dscontrol.c",
"source/components/dispatcher/dsdebug.c",
"source/components/dispatcher/dsfield.c",
"source/components/dispatcher/dsinit.c",
"source/components/dispatcher/dsmethod.c",
"source/components/dispatcher/dsmthdat.c",
"source/components/dispatcher/dsobject.c",
"source/components/dispatcher/dsopcode.c",
"source/components/dispatcher/dspkginit.c",
"source/components/dispatcher/dsutils.c",
"source/components/dispatcher/dswexec.c",
"source/components/dispatcher/dswload.c",
"source/components/dispatcher/dswload2.c",
"source/components/dispatcher/dswscope.c",
"source/components/dispatcher/dswstate.c",
"source/components/events/evevent.c",
"source/components/events/evglock.c",
"source/components/events/evgpe.c",
"source/components/events/evgpeblk.c",
"source/components/events/evgpeinit.c",
"source/components/events/evgpeutil.c",
"source/components/events/evhandler.c",
"source/components/events/evmisc.c",
"source/components/events/evregion.c",
"source/components/events/evrgnini.c",
"source/components/events/evsci.c",
"source/components/events/evxface.c",
"source/components/events/evxfevnt.c",
"source/components/events/evxfgpe.c",
"source/components/events/evxfregn.c",
"source/components/executer/exconcat.c",
"source/components/executer/exconfig.c",
"source/components/executer/exconvrt.c",
"source/components/executer/excreate.c",
"source/components/executer/exdebug.c",
"source/components/executer/exdump.c",
"source/components/executer/exfield.c",
"source/components/executer/exfldio.c",
"source/components/executer/exmisc.c",
"source/components/executer/exmutex.c",
"source/components/executer/exnames.c",
"source/components/executer/exoparg1.c",
"source/components/executer/exoparg2.c",
"source/components/executer/exoparg3.c",
"source/components/executer/exoparg6.c",
"source/components/executer/exprep.c",
"source/components/executer/exregion.c",
"source/components/executer/exresnte.c",
"source/components/executer/exresolv.c",
"source/components/executer/exresop.c",
"source/components/executer/exserial.c",
"source/components/executer/exstore.c",
"source/components/executer/exstoren.c",
"source/components/executer/exstorob.c",
"source/components/executer/exsystem.c",
"source/components/executer/extrace.c",
"source/components/executer/exutils.c",
"source/components/hardware/hwacpi.c",
"source/components/hardware/hwesleep.c",
"source/components/hardware/hwgpe.c",
"source/components/hardware/hwpci.c",
"source/components/hardware/hwregs.c",
"source/components/hardware/hwsleep.c",
"source/components/hardware/hwtimer.c",
"source/components/hardware/hwvalid.c",
"source/components/hardware/hwxface.c",
"source/components/hardware/hwxfsleep.c",
"source/components/namespace/nsaccess.c",
"source/components/namespace/nsalloc.c",
"source/components/namespace/nsarguments.c",
"source/components/namespace/nsconvert.c",
"source/components/namespace/nsdump.c",
"source/components/namespace/nsdumpdv.c",
"source/components/namespace/nseval.c",
"source/components/namespace/nsinit.c",
"source/components/namespace/nsload.c",
"source/components/namespace/nsnames.c",
"source/components/namespace/nsobject.c",
"source/components/namespace/nsparse.c",
"source/components/namespace/nspredef.c",
"source/components/namespace/nsprepkg.c",
"source/components/namespace/nsrepair.c",
"source/components/namespace/nsrepair2.c",
"source/components/namespace/nssearch.c",
"source/components/namespace/nsutils.c",
"source/components/namespace/nswalk.c",
"source/components/namespace/nsxfeval.c",
"source/components/namespace/nsxfname.c",
"source/components/namespace/nsxfobj.c",
"source/components/parser/psargs.c",
"source/components/parser/psloop.c",
"source/components/parser/psobject.c",
"source/components/parser/psopcode.c",
"source/components/parser/psopinfo.c",
"source/components/parser/psparse.c",
"source/components/parser/psscope.c",
"source/components/parser/pstree.c",
"source/components/parser/psutils.c",
"source/components/parser/pswalk.c",
"source/components/parser/psxface.c",
"source/components/resources/rsaddr.c",
"source/components/resources/rscalc.c",
"source/components/resources/rscreate.c",
"source/components/resources/rsdumpinfo.c",
"source/components/resources/rsinfo.c",
"source/components/resources/rsio.c",
"source/components/resources/rsirq.c",
"source/components/resources/rslist.c",
"source/components/resources/rsmemory.c",
"source/components/resources/rsmisc.c",
"source/components/resources/rsserial.c",
"source/components/resources/rsutils.c",
"source/components/resources/rsxface.c",
"source/components/tables/tbdata.c",
"source/components/tables/tbfadt.c",
"source/components/tables/tbfind.c",
"source/components/tables/tbinstal.c",
"source/components/tables/tbprint.c",
"source/components/tables/tbutils.c",
"source/components/tables/tbxface.c",
"source/components/tables/tbxfload.c",
"source/components/tables/tbxfroot.c",
"source/components/utilities/utaddress.c",
"source/components/utilities/utalloc.c",
"source/components/utilities/utascii.c",
"source/components/utilities/utbuffer.c",
"source/components/utilities/utcache.c",
"source/components/utilities/utclib.c",
"source/components/utilities/utcopy.c",
"source/components/utilities/utdebug.c",
"source/components/utilities/utdecode.c",
"source/components/utilities/utdelete.c",
"source/components/utilities/uterror.c",
"source/components/utilities/uteval.c",
"source/components/utilities/utexcep.c",
"source/components/utilities/utglobal.c",
"source/components/utilities/uthex.c",
"source/components/utilities/utids.c",
"source/components/utilities/utinit.c",
"source/components/utilities/utlock.c",
"source/components/utilities/utmath.c",
"source/components/utilities/utmisc.c",
"source/components/utilities/utmutex.c",
"source/components/utilities/utnonansi.c",
"source/components/utilities/utobject.c",
"source/components/utilities/utosi.c",
"source/components/utilities/utownerid.c",
"source/components/utilities/utpredef.c",
"source/components/utilities/utresdecode.c",
"source/components/utilities/utresrc.c",
"source/components/utilities/utstate.c",
"source/components/utilities/utstring.c",
"source/components/utilities/utstrsuppt.c",
"source/components/utilities/utstrtoul64.c",
"source/components/utilities/uttrack.c",
"source/components/utilities/utuuid.c",
"source/components/utilities/utxface.c",
"source/components/utilities/utxferror.c",
"source/components/utilities/utxfinit.c",
"source/components/utilities/utxfmutex.c",
]
deps = [
"//src/devices/pci/lib/pci",
"//src/lib/ddk",
"//zircon/public/lib/fbl",
"//zircon/public/lib/zircon-internal",
]
defines = [ "_ALL_SOURCE" ]
if (acpica_debug_output) {
defines += [ "ACPI_DEBUG_OUTPUT" ]
}
if (platform_enable_user_pci) {
defines += [ "ENABLE_USER_PCI" ]
}
}