diff -urN a/cpu/BUILD.bazel b/cpu/BUILD.bazel
--- a/cpu/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/cpu/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,67 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "cpu",
+    srcs = [
+        "asm_aix_ppc64.s",
+        "byteorder.go",
+        "cpu.go",
+        "cpu_aix.go",
+        "cpu_arm.go",
+        "cpu_arm64.go",
+        "cpu_arm64.s",
+        "cpu_gc_arm64.go",
+        "cpu_gc_s390x.go",
+        "cpu_gc_x86.go",
+        "cpu_linux.go",
+        "cpu_linux_arm.go",
+        "cpu_linux_arm64.go",
+        "cpu_linux_mips64x.go",
+        "cpu_linux_noinit.go",
+        "cpu_linux_ppc64x.go",
+        "cpu_linux_s390x.go",
+        "cpu_mips64x.go",
+        "cpu_mipsx.go",
+        "cpu_netbsd_arm64.go",
+        "cpu_openbsd_arm64.go",
+        "cpu_openbsd_arm64.s",
+        "cpu_other_arm.go",
+        "cpu_other_arm64.go",
+        "cpu_ppc64x.go",
+        "cpu_riscv64.go",
+        "cpu_s390x.go",
+        "cpu_s390x.s",
+        "cpu_wasm.go",
+        "cpu_x86.go",
+        "cpu_x86.s",
+        "cpu_zos.go",
+        "cpu_zos_s390x.go",
+        "endian_big.go",
+        "endian_little.go",
+        "hwcap_linux.go",
+        "parse.go",
+        "proc_cpuinfo_linux.go",
+        "runtime_auxv.go",
+        "runtime_auxv_go121.go",
+        "syscall_aix_ppc64_gc.go",
+    ],
+    importpath = "golang.org/x/sys/cpu",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":cpu",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "cpu_test",
+    srcs = [
+        "cpu_s390x_test.go",
+        "cpu_test.go",
+        "parse_test.go",
+        "runtime_auxv_go121_test.go",
+    ],
+    embed = [":cpu"],
+)
diff -urN a/execabs/BUILD.bazel b/execabs/BUILD.bazel
--- a/execabs/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/execabs/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,24 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "execabs",
+    srcs = [
+        "execabs.go",
+        "execabs_go118.go",
+        "execabs_go119.go",
+    ],
+    importpath = "golang.org/x/sys/execabs",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":execabs",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "execabs_test",
+    srcs = ["execabs_test.go"],
+    embed = [":execabs"],
+)
diff -urN a/internal/unsafeheader/BUILD.bazel b/internal/unsafeheader/BUILD.bazel
--- a/internal/unsafeheader/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/internal/unsafeheader/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "unsafeheader",
+    srcs = ["unsafeheader.go"],
+    importpath = "golang.org/x/sys/internal/unsafeheader",
+    visibility = ["//:__subpackages__"],
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":unsafeheader",
+    visibility = ["//:__subpackages__"],
+)
+
+go_test(
+    name = "unsafeheader_test",
+    srcs = ["unsafeheader_test.go"],
+    deps = [":unsafeheader"],
+)
diff -urN a/plan9/BUILD.bazel b/plan9/BUILD.bazel
--- a/plan9/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/plan9/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,45 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "plan9",
+    srcs = [
+        "asm.s",
+        "asm_plan9_386.s",
+        "asm_plan9_amd64.s",
+        "asm_plan9_arm.s",
+        "const_plan9.go",
+        "dir_plan9.go",
+        "env_plan9.go",
+        "errors_plan9.go",
+        "pwd_go15_plan9.go",
+        "pwd_plan9.go",
+        "race.go",
+        "race0.go",
+        "str.go",
+        "syscall.go",
+        "syscall_plan9.go",
+        "zsyscall_plan9_386.go",
+        "zsyscall_plan9_amd64.go",
+        "zsyscall_plan9_arm.go",
+        "zsysnum_plan9.go",
+    ],
+    importpath = "golang.org/x/sys/plan9",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":plan9",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "plan9_test",
+    srcs = ["syscall_test.go"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:plan9": [
+            ":plan9",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff -urN a/unix/BUILD.bazel b/unix/BUILD.bazel
--- a/unix/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/unix/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,296 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "unix",
+    srcs = [
+        "affinity_linux.go",
+        "aliases.go",
+        "asm_aix_ppc64.s",
+        "asm_bsd_386.s",
+        "asm_bsd_amd64.s",
+        "asm_bsd_arm.s",
+        "asm_bsd_arm64.s",
+        "asm_linux_386.s",
+        "asm_linux_amd64.s",
+        "asm_linux_arm.s",
+        "asm_linux_arm64.s",
+        "asm_linux_mips64x.s",
+        "asm_linux_mipsx.s",
+        "asm_linux_ppc64x.s",
+        "asm_linux_riscv64.s",
+        "asm_linux_s390x.s",
+        "asm_solaris_amd64.s",
+        "bluetooth_linux.go",
+        "cap_freebsd.go",
+        "constants.go",
+        "dev_aix_ppc64.go",
+        "dev_darwin.go",
+        "dev_dragonfly.go",
+        "dev_freebsd.go",
+        "dev_linux.go",
+        "dev_netbsd.go",
+        "dev_openbsd.go",
+        "dirent.go",
+        "endian_big.go",
+        "endian_little.go",
+        "env_unix.go",
+        "fcntl.go",
+        "fcntl_darwin.go",
+        "fcntl_linux_32bit.go",
+        "fdset.go",
+        "ifreq_linux.go",
+        "ioctl.go",
+        "ioctl_linux.go",
+        "pagesize_unix.go",
+        "pledge_openbsd.go",
+        "ptrace_darwin.go",
+        "ptrace_ios.go",
+        "race.go",
+        "race0.go",
+        "readdirent_getdents.go",
+        "readdirent_getdirentries.go",
+        "sockcmsg_dragonfly.go",
+        "sockcmsg_linux.go",
+        "sockcmsg_unix.go",
+        "sockcmsg_unix_other.go",
+        "syscall.go",
+        "syscall_aix.go",
+        "syscall_aix_ppc64.go",
+        "syscall_bsd.go",
+        "syscall_darwin.go",
+        "syscall_darwin_amd64.go",
+        "syscall_darwin_arm64.go",
+        "syscall_darwin_libSystem.go",
+        "syscall_dragonfly.go",
+        "syscall_dragonfly_amd64.go",
+        "syscall_freebsd.go",
+        "syscall_freebsd_386.go",
+        "syscall_freebsd_amd64.go",
+        "syscall_freebsd_arm.go",
+        "syscall_freebsd_arm64.go",
+        "syscall_illumos.go",
+        "syscall_linux.go",
+        "syscall_linux_386.go",
+        "syscall_linux_alarm.go",
+        "syscall_linux_amd64.go",
+        "syscall_linux_amd64_gc.go",
+        "syscall_linux_arm.go",
+        "syscall_linux_arm64.go",
+        "syscall_linux_gc.go",
+        "syscall_linux_gc_386.go",
+        "syscall_linux_gc_arm.go",
+        "syscall_linux_mips64x.go",
+        "syscall_linux_mipsx.go",
+        "syscall_linux_ppc64x.go",
+        "syscall_linux_riscv64.go",
+        "syscall_linux_s390x.go",
+        "syscall_netbsd.go",
+        "syscall_netbsd_386.go",
+        "syscall_netbsd_amd64.go",
+        "syscall_netbsd_arm.go",
+        "syscall_netbsd_arm64.go",
+        "syscall_openbsd.go",
+        "syscall_openbsd_386.go",
+        "syscall_openbsd_amd64.go",
+        "syscall_openbsd_arm.go",
+        "syscall_openbsd_arm64.go",
+        "syscall_openbsd_libc.go",
+        "syscall_solaris.go",
+        "syscall_solaris_amd64.go",
+        "syscall_unix.go",
+        "syscall_unix_gc.go",
+        "syscall_unix_gc_ppc64x.go",
+        "sysvshm_linux.go",
+        "sysvshm_unix.go",
+        "sysvshm_unix_other.go",
+        "timestruct.go",
+        "unveil_openbsd.go",
+        "xattr_bsd.go",
+        "zerrors_aix_ppc64.go",
+        "zerrors_darwin_amd64.go",
+        "zerrors_darwin_arm64.go",
+        "zerrors_dragonfly_amd64.go",
+        "zerrors_freebsd_386.go",
+        "zerrors_freebsd_amd64.go",
+        "zerrors_freebsd_arm.go",
+        "zerrors_freebsd_arm64.go",
+        "zerrors_linux.go",
+        "zerrors_linux_386.go",
+        "zerrors_linux_amd64.go",
+        "zerrors_linux_arm.go",
+        "zerrors_linux_arm64.go",
+        "zerrors_linux_mips.go",
+        "zerrors_linux_mips64.go",
+        "zerrors_linux_mips64le.go",
+        "zerrors_linux_mipsle.go",
+        "zerrors_linux_ppc64.go",
+        "zerrors_linux_ppc64le.go",
+        "zerrors_linux_riscv64.go",
+        "zerrors_linux_s390x.go",
+        "zerrors_netbsd_386.go",
+        "zerrors_netbsd_amd64.go",
+        "zerrors_netbsd_arm.go",
+        "zerrors_netbsd_arm64.go",
+        "zerrors_openbsd_386.go",
+        "zerrors_openbsd_amd64.go",
+        "zerrors_openbsd_arm.go",
+        "zerrors_openbsd_arm64.go",
+        "zerrors_solaris_amd64.go",
+        "zptrace_armnn_linux.go",
+        "zptrace_linux_arm64.go",
+        "zptrace_mipsnn_linux.go",
+        "zptrace_mipsnnle_linux.go",
+        "zptrace_x86_linux.go",
+        "zsyscall_aix_ppc64.go",
+        "zsyscall_aix_ppc64_gc.go",
+        "zsyscall_darwin_amd64.go",
+        "zsyscall_darwin_amd64.s",
+        "zsyscall_darwin_arm64.go",
+        "zsyscall_darwin_arm64.s",
+        "zsyscall_dragonfly_amd64.go",
+        "zsyscall_freebsd_386.go",
+        "zsyscall_freebsd_amd64.go",
+        "zsyscall_freebsd_arm.go",
+        "zsyscall_freebsd_arm64.go",
+        "zsyscall_illumos_amd64.go",
+        "zsyscall_linux.go",
+        "zsyscall_linux_386.go",
+        "zsyscall_linux_amd64.go",
+        "zsyscall_linux_arm.go",
+        "zsyscall_linux_arm64.go",
+        "zsyscall_linux_mips.go",
+        "zsyscall_linux_mips64.go",
+        "zsyscall_linux_mips64le.go",
+        "zsyscall_linux_mipsle.go",
+        "zsyscall_linux_ppc64.go",
+        "zsyscall_linux_ppc64le.go",
+        "zsyscall_linux_riscv64.go",
+        "zsyscall_linux_s390x.go",
+        "zsyscall_netbsd_386.go",
+        "zsyscall_netbsd_amd64.go",
+        "zsyscall_netbsd_arm.go",
+        "zsyscall_netbsd_arm64.go",
+        "zsyscall_openbsd_386.go",
+        "zsyscall_openbsd_386.s",
+        "zsyscall_openbsd_amd64.go",
+        "zsyscall_openbsd_amd64.s",
+        "zsyscall_openbsd_arm.go",
+        "zsyscall_openbsd_arm.s",
+        "zsyscall_openbsd_arm64.go",
+        "zsyscall_openbsd_arm64.s",
+        "zsyscall_solaris_amd64.go",
+        "zsysctl_openbsd_386.go",
+        "zsysctl_openbsd_amd64.go",
+        "zsysctl_openbsd_arm.go",
+        "zsysctl_openbsd_arm64.go",
+        "zsysnum_darwin_amd64.go",
+        "zsysnum_darwin_arm64.go",
+        "zsysnum_dragonfly_amd64.go",
+        "zsysnum_freebsd_386.go",
+        "zsysnum_freebsd_amd64.go",
+        "zsysnum_freebsd_arm.go",
+        "zsysnum_freebsd_arm64.go",
+        "zsysnum_linux_386.go",
+        "zsysnum_linux_amd64.go",
+        "zsysnum_linux_arm.go",
+        "zsysnum_linux_arm64.go",
+        "zsysnum_linux_mips.go",
+        "zsysnum_linux_mips64.go",
+        "zsysnum_linux_mips64le.go",
+        "zsysnum_linux_mipsle.go",
+        "zsysnum_linux_ppc64.go",
+        "zsysnum_linux_ppc64le.go",
+        "zsysnum_linux_riscv64.go",
+        "zsysnum_linux_s390x.go",
+        "zsysnum_netbsd_386.go",
+        "zsysnum_netbsd_amd64.go",
+        "zsysnum_netbsd_arm.go",
+        "zsysnum_netbsd_arm64.go",
+        "zsysnum_openbsd_386.go",
+        "zsysnum_openbsd_amd64.go",
+        "zsysnum_openbsd_arm.go",
+        "zsysnum_openbsd_arm64.go",
+        "ztypes_aix_ppc64.go",
+        "ztypes_darwin_amd64.go",
+        "ztypes_darwin_arm64.go",
+        "ztypes_dragonfly_amd64.go",
+        "ztypes_freebsd_386.go",
+        "ztypes_freebsd_amd64.go",
+        "ztypes_freebsd_arm.go",
+        "ztypes_freebsd_arm64.go",
+        "ztypes_linux.go",
+        "ztypes_linux_386.go",
+        "ztypes_linux_amd64.go",
+        "ztypes_linux_arm.go",
+        "ztypes_linux_arm64.go",
+        "ztypes_linux_mips.go",
+        "ztypes_linux_mips64.go",
+        "ztypes_linux_mips64le.go",
+        "ztypes_linux_mipsle.go",
+        "ztypes_linux_ppc64.go",
+        "ztypes_linux_ppc64le.go",
+        "ztypes_linux_riscv64.go",
+        "ztypes_linux_s390x.go",
+        "ztypes_netbsd_386.go",
+        "ztypes_netbsd_amd64.go",
+        "ztypes_netbsd_arm.go",
+        "ztypes_netbsd_arm64.go",
+        "ztypes_openbsd_386.go",
+        "ztypes_openbsd_amd64.go",
+        "ztypes_openbsd_arm.go",
+        "ztypes_openbsd_arm64.go",
+        "ztypes_solaris_amd64.go",
+    ],
+    cgo = True,
+    importpath = "golang.org/x/sys/unix",
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":unix",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "unix_test",
+    srcs = [
+        "creds_test.go",
+        "darwin_amd64_test.go",
+        "darwin_arm64_test.go",
+        "darwin_test.go",
+        "dev_linux_test.go",
+        "dirent_test.go",
+        "dup3_test.go",
+        "example_exec_test.go",
+        "example_flock_test.go",
+        "example_sysvshm_test.go",
+        "fdset_test.go",
+        "getdirentries_test.go",
+        "getfsstat_test.go",
+        "ifreq_linux_test.go",
+        "mmap_unix_test.go",
+        "openbsd_test.go",
+        "pipe2_test.go",
+        "sendfile_test.go",
+        "syscall_aix_test.go",
+        "syscall_bsd_test.go",
+        "syscall_darwin_test.go",
+        "syscall_freebsd_test.go",
+        "syscall_internal_bsd_test.go",
+        "syscall_internal_darwin_test.go",
+        "syscall_internal_linux_test.go",
+        "syscall_internal_solaris_test.go",
+        "syscall_linux_test.go",
+        "syscall_netbsd_test.go",
+        "syscall_openbsd_test.go",
+        "syscall_solaris_test.go",
+        "syscall_test.go",
+        "syscall_unix_test.go",
+        "sysctl_netbsd_test.go",
+        "sysvshm_unix_test.go",
+        "timestruct_test.go",
+        "xattr_test.go",
+    ],
+    embed = [":unix"],
+)
diff -urN a/unix/internal/mkmerge/BUILD.bazel b/unix/internal/mkmerge/BUILD.bazel
--- a/unix/internal/mkmerge/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/unix/internal/mkmerge/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
+    name = "mkmerge_lib",
+    srcs = ["mkmerge.go"],
+    importpath = "golang.org/x/sys/unix/internal/mkmerge",
+    visibility = ["//visibility:private"],
+)
+
+go_binary(
+    name = "mkmerge",
+    embed = [":mkmerge_lib"],
+    visibility = ["//unix:__subpackages__"],
+)
+
+go_test(
+    name = "mkmerge_test",
+    srcs = ["mkmerge_test.go"],
+    embed = [":mkmerge_lib"],
+)
diff -urN a/windows/BUILD.bazel b/windows/BUILD.bazel
--- a/windows/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,59 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "windows",
+    srcs = [
+        "aliases.go",
+        "dll_windows.go",
+        "empty.s",
+        "env_windows.go",
+        "eventlog.go",
+        "exec_windows.go",
+        "memory_windows.go",
+        "race.go",
+        "race0.go",
+        "security_windows.go",
+        "service.go",
+        "setupapi_windows.go",
+        "str.go",
+        "syscall.go",
+        "syscall_windows.go",
+        "types_windows.go",
+        "types_windows_386.go",
+        "types_windows_amd64.go",
+        "types_windows_arm.go",
+        "zerrors_windows.go",
+        "zknownfolderids_windows.go",
+        "zsyscall_windows.go",
+    ],
+    importpath = "golang.org/x/sys/windows",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//internal/unsafeheader",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":windows",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "windows_test",
+    srcs = [
+        "syscall_test.go",
+        "syscall_windows_test.go",
+    ],
+    data = glob(["testdata/**"]),
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            ":windows",
+            "//internal/unsafeheader",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff -urN a/windows/mkwinsyscall/BUILD.bazel b/windows/mkwinsyscall/BUILD.bazel
--- a/windows/mkwinsyscall/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/mkwinsyscall/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,20 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
+
+go_library(
+    name = "mkwinsyscall_lib",
+    srcs = ["mkwinsyscall.go"],
+    importpath = "golang.org/x/sys/windows/mkwinsyscall",
+    visibility = ["//visibility:private"],
+)
+
+go_binary(
+    name = "mkwinsyscall",
+    embed = [":mkwinsyscall_lib"],
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "mkwinsyscall_test",
+    srcs = ["mkwinsyscall_test.go"],
+    embed = [":mkwinsyscall_lib"],
+)
diff -urN a/windows/registry/BUILD.bazel b/windows/registry/BUILD.bazel
--- a/windows/registry/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/registry/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "registry",
+    srcs = [
+        "key.go",
+        "syscall.go",
+        "value.go",
+        "zsyscall_windows.go",
+    ],
+    importpath = "golang.org/x/sys/windows/registry",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//windows",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":registry",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "registry_test",
+    srcs = [
+        "export_test.go",
+        "registry_test.go",
+    ],
+    embed = [":registry"],
+)
diff -urN a/windows/svc/BUILD.bazel b/windows/svc/BUILD.bazel
--- a/windows/svc/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/svc/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,36 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "svc",
+    srcs = [
+        "security.go",
+        "service.go",
+    ],
+    importpath = "golang.org/x/sys/windows/svc",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//internal/unsafeheader",
+            "//windows",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":svc",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "svc_test",
+    srcs = ["svc_test.go"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            ":svc",
+            "//windows/svc/mgr",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff -urN a/windows/svc/debug/BUILD.bazel b/windows/svc/debug/BUILD.bazel
--- a/windows/svc/debug/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/svc/debug/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,23 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+    name = "debug",
+    srcs = [
+        "log.go",
+        "service.go",
+    ],
+    importpath = "golang.org/x/sys/windows/svc/debug",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//windows/svc",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":debug",
+    visibility = ["//visibility:public"],
+)
diff -urN a/windows/svc/eventlog/BUILD.bazel b/windows/svc/eventlog/BUILD.bazel
--- a/windows/svc/eventlog/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/svc/eventlog/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,35 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "eventlog",
+    srcs = [
+        "install.go",
+        "log.go",
+    ],
+    importpath = "golang.org/x/sys/windows/svc/eventlog",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//windows",
+            "//windows/registry",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":eventlog",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "eventlog_test",
+    srcs = ["log_test.go"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            ":eventlog",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff -urN a/windows/svc/example/BUILD.bazel b/windows/svc/example/BUILD.bazel
--- a/windows/svc/example/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/svc/example/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,29 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
+    name = "example_lib",
+    srcs = [
+        "beep.go",
+        "install.go",
+        "main.go",
+        "manage.go",
+        "service.go",
+    ],
+    importpath = "golang.org/x/sys/windows/svc/example",
+    visibility = ["//visibility:private"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//windows/svc",
+            "//windows/svc/debug",
+            "//windows/svc/eventlog",
+            "//windows/svc/mgr",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+go_binary(
+    name = "example",
+    embed = [":example_lib"],
+    visibility = ["//visibility:public"],
+)
diff -urN a/windows/svc/mgr/BUILD.bazel b/windows/svc/mgr/BUILD.bazel
--- a/windows/svc/mgr/BUILD.bazel	1970-01-01 00:00:00.000000000 +0000
+++ b/windows/svc/mgr/BUILD.bazel	2000-01-01 00:00:00.000000000 -0000
@@ -0,0 +1,38 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "mgr",
+    srcs = [
+        "config.go",
+        "mgr.go",
+        "recovery.go",
+        "service.go",
+    ],
+    importpath = "golang.org/x/sys/windows/svc/mgr",
+    visibility = ["//visibility:public"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            "//internal/unsafeheader",
+            "//windows",
+            "//windows/svc",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+alias(
+    name = "go_default_library",
+    actual = ":mgr",
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "mgr_test",
+    srcs = ["mgr_test.go"],
+    deps = select({
+        "@io_bazel_rules_go//go/platform:windows": [
+            ":mgr",
+        ],
+        "//conditions:default": [],
+    }),
+)
