diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl
index 3288565714..6bfcd653f5 100644
--- a/bazel/cc_grpc_library.bzl
+++ b/bazel/cc_grpc_library.bzl
@@ -1,6 +1,6 @@
 """Generates and compiles C++ grpc stubs from proto_library rules."""
 
-load("//:bazel/generate_cc.bzl", "generate_cc")
+load("//bazel:generate_cc.bzl", "generate_cc")
 
 def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mocks = False, use_external = False, **kwargs):
   """Generates C++ grpc classes from a .proto file.
diff --git a/bazel/generate_cc.bzl b/bazel/generate_cc.bzl
index ae747aa42c..2f14071f92 100644
--- a/bazel/generate_cc.bzl
+++ b/bazel/generate_cc.bzl
@@ -83,7 +83,7 @@ _generate_cc = rule(
     attrs = {
         "srcs": attr.label_list(
             mandatory = True,
-            non_empty = True,
+            allow_empty = False,
             providers = ["proto"],
         ),
         "plugin": attr.label(
diff --git a/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl
index 73147bf3ac..e8c392aa93 100644
--- a/bazel/grpc_build_system.bzl
+++ b/bazel/grpc_build_system.bzl
@@ -24,6 +24,9 @@
 #
 
 # The set of pollers to test against if a test exercises polling
+
+load("//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+
 POLLERS = ['epollex', 'epollsig', 'epoll1', 'poll', 'poll-cv']
 
 def if_not_windows(a):
@@ -95,8 +98,6 @@ def grpc_proto_plugin(name, srcs = [], deps = []):
     deps = deps,
   )
 
-load("//:bazel/cc_grpc_library.bzl", "cc_grpc_library")
-
 def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = False,
                        has_services = True, use_external = False, generate_mocks = False):
   cc_grpc_library(
