blob: 200b15a7db2fc5acbc614bc6581decf41fa612d5 [file] [log] [blame] [edit]
package(default_visibility = ["//visibility:public"])
cc_library(
name = "pico_double",
srcs = [
"double_aeabi.S",
"double_init_rom.c",
"double_math.c",
"double_v1_rom_shim.S",
],
hdrs = ["include/pico/double.h"],
includes = ["include"],
linkopts = [
"-Wl,--wrap=__aeabi_dadd",
"-Wl,--wrap=__aeabi_ddiv",
"-Wl,--wrap=__aeabi_dmul",
"-Wl,--wrap=__aeabi_drsub",
"-Wl,--wrap=__aeabi_dsub",
"-Wl,--wrap=__aeabi_cdcmpeq",
"-Wl,--wrap=__aeabi_cdrcmple",
"-Wl,--wrap=__aeabi_cdcmple",
"-Wl,--wrap=__aeabi_dcmpeq",
"-Wl,--wrap=__aeabi_dcmplt",
"-Wl,--wrap=__aeabi_dcmple",
"-Wl,--wrap=__aeabi_dcmpge",
"-Wl,--wrap=__aeabi_dcmpgt",
"-Wl,--wrap=__aeabi_dcmpun",
"-Wl,--wrap=__aeabi_i2d",
"-Wl,--wrap=__aeabi_l2d",
"-Wl,--wrap=__aeabi_ui2d",
"-Wl,--wrap=__aeabi_ul2d",
"-Wl,--wrap=__aeabi_d2iz",
"-Wl,--wrap=__aeabi_d2lz",
"-Wl,--wrap=__aeabi_d2uiz",
"-Wl,--wrap=__aeabi_d2ulz",
"-Wl,--wrap=__aeabi_d2f",
"-Wl,--wrap=sqrt",
"-Wl,--wrap=cos",
"-Wl,--wrap=sin",
"-Wl,--wrap=tan",
"-Wl,--wrap=atan2",
"-Wl,--wrap=exp",
"-Wl,--wrap=log",
"-Wl,--wrap=ldexp",
"-Wl,--wrap=copysign",
"-Wl,--wrap=trunc",
"-Wl,--wrap=floor",
"-Wl,--wrap=ceil",
"-Wl,--wrap=round",
"-Wl,--wrap=sincos",
"-Wl,--wrap=asin",
"-Wl,--wrap=acos",
"-Wl,--wrap=atan",
"-Wl,--wrap=sinh",
"-Wl,--wrap=cosh",
"-Wl,--wrap=tanh",
"-Wl,--wrap=asinh",
"-Wl,--wrap=acosh",
"-Wl,--wrap=atanh",
"-Wl,--wrap=exp2",
"-Wl,--wrap=log2",
"-Wl,--wrap=exp10",
"-Wl,--wrap=log10",
"-Wl,--wrap=pow",
"-Wl,--wrap=powint",
"-Wl,--wrap=hypot",
"-Wl,--wrap=cbrt",
"-Wl,--wrap=fmod",
"-Wl,--wrap=drem",
"-Wl,--wrap=remainder",
"-Wl,--wrap=remquo",
"-Wl,--wrap=expm1",
"-Wl,--wrap=log1p",
"-Wl,--wrap=fma",
],
target_compatible_with = select({
"//bazel/constraint:rp2": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
deps = [
"//src/common/pico_base",
"//src/rp2_common/hardware_divider",
"//src/rp2_common/pico_bootrom",
"//src/rp2_common/pico_platform",
],
alwayslink = True, # Ensures the wrapped symbols are linked in.
)
# TODO: Support double_none.S when the configuration option exists.