Make a rawrtc example actually build

We were missing a lot of things that the linker caught when building an
example.

Change-Id: Ic3ea2a1dd0bfa88569023b47b603ec25f337f54c
diff --git a/third_party/rawrtc/usrsctp/BUILD b/third_party/rawrtc/usrsctp/BUILD
index 7704bb9..654d29b 100644
--- a/third_party/rawrtc/usrsctp/BUILD
+++ b/third_party/rawrtc/usrsctp/BUILD
@@ -1,21 +1,63 @@
-# usrsctp is only actually being used for the CRC function, and getting
-# the entire library building was being obnoxious.
+load("@//tools/build_rules:select.bzl", "compiler_select")
+
 cc_library(
-    name = "usrsctp_crc32",
-    srcs = ["usrsctplib/netinet/sctp_crc32.c"],
+    name = "usrsctp",
+    srcs = [
+        "usrsctplib/netinet/sctp_asconf.c",
+        "usrsctplib/netinet/sctp_auth.c",
+        "usrsctplib/netinet/sctp_bsd_addr.c",
+        "usrsctplib/netinet/sctp_callout.c",
+        "usrsctplib/netinet/sctp_cc_functions.c",
+        "usrsctplib/netinet/sctp_crc32.c",
+        "usrsctplib/netinet/sctp_indata.c",
+        "usrsctplib/netinet/sctp_input.c",
+        "usrsctplib/netinet/sctp_output.c",
+        "usrsctplib/netinet/sctp_pcb.c",
+        "usrsctplib/netinet/sctp_peeloff.c",
+        "usrsctplib/netinet/sctp_sha1.c",
+        "usrsctplib/netinet/sctp_ss_functions.c",
+        "usrsctplib/netinet/sctp_sysctl.c",
+        "usrsctplib/netinet/sctp_timer.c",
+        "usrsctplib/netinet/sctp_userspace.c",
+        "usrsctplib/netinet/sctp_usrreq.c",
+        "usrsctplib/netinet/sctputil.c",
+        "usrsctplib/netinet6/sctp6_usrreq.c",
+        "usrsctplib/user_environment.c",
+        "usrsctplib/user_mbuf.c",
+        "usrsctplib/user_recv_thread.c",
+        "usrsctplib/user_socket.c",
+    ],
     hdrs = glob(["usrsctplib/**/*.h"]),
     copts = [
         "-Wno-cast-qual",
         "-Wno-cast-align",
         "-Wno-unused-parameter",
         "-Wno-incompatible-pointer-types-discards-qualifiers",
+        "-D__Userspace_os_Linux",
+        "-D__Userspace__",
+        "-D_GNU_SOURCE",
+        "-DSCTP_DEBUG",
+        "-DSCTP_SIMPLE_ALLOCATOR",
+        "-DINET",
+        "-DINET6",
+        "-DSCTP_PROCESS_LEVEL_LOCKS",
+        "-DHAVE_SYS_QUEUE_H",
+        "-DHAVE_STDATOMIC_H",
+        "-DHAVE_NETINET_IP_ICMP_H",
+        "-DHAVE_LINUX_RTNETLINK_H",
+        "-DHAVE_LINUX_IF_ADDR_H",
+        "-Wno-address-of-packed-member",
+    ] + compiler_select({
+        "clang": [],
+        "gcc": [
+            "-Wno-discarded-qualifiers",
+        ],
+    }),
+    includes = [
+        "usrsctplib/",
+        "usrsctplib/netinet",
+        "usrsctplib/netinet6",
     ],
-    defines = [
-        "__Userspace_os_Linux",
-        "__Userspace__",
-        "SCTP_SIMPLE_ALLOCATOR",
-    ],
-    includes = ["usrsctplib/"],
     target_compatible_with = ["@platforms//os:linux"],
     visibility = ["//visibility:public"],
 )