diff --git a/libbpf-tools/Android.bp b/libbpf-tools/Android.bp
index 8bf6064..e24b2c0 100644
--- a/libbpf-tools/Android.bp
+++ b/libbpf-tools/Android.bp
@@ -28,7 +28,6 @@
     name: "bcc_bpf_defaults",
     compile_multilib: "first",
     cflags: [
-        "--target=bpf",
         "-fno-data-sections",
         "-fno-function-sections",
         "-fno-stack-protector",
@@ -37,6 +36,8 @@
         "-Wno-pointer-arith",
         "-Wno-unused-command-line-argument",
         "-Wno-unused-parameter",
+        "-mllvm -bpf-stack-size=1024",
+        "-g",
     ],
     header_libs: [
         "bpf_prog_headers",
@@ -68,6 +69,7 @@
             ],
         },
     },
+    bpf_target: true,
     visibility: ["//visibility:private"],
 }
 
diff --git a/libbpf-tools/biolatency.bpf.c b/libbpf-tools/biolatency.bpf.c
index 429412d..d0409fd 100644
--- a/libbpf-tools/biolatency.bpf.c
+++ b/libbpf-tools/biolatency.bpf.c
@@ -101,6 +101,7 @@
 	struct hist_key hkey = {};
 	struct hist *histp;
 	s64 delta;
+	u64 udelta;
 
 	if (filter_cg && !bpf_current_task_under_cgroup(&cgroup_map, 0))
 		return 0;
@@ -113,6 +114,8 @@
 	if (delta < 0)
 		goto cleanup;
 
+	udelta = (u64)delta;
+
 	if (targ_per_disk) {
 		struct gendisk *disk = get_disk(rq);
 
@@ -131,10 +134,10 @@
 	}
 
 	if (targ_ms)
-		delta /= 1000000U;
+		udelta /= 1000000U;
 	else
-		delta /= 1000U;
-	slot = log2l(delta);
+		udelta /= 1000U;
+	slot = log2l(udelta);
 	if (slot >= MAX_SLOTS)
 		slot = MAX_SLOTS - 1;
 	__sync_fetch_and_add(&histp->slots[slot], 1);
diff --git a/libbpf-tools/biostacks.bpf.c b/libbpf-tools/biostacks.bpf.c
index 0ca6988..c1dce67 100644
--- a/libbpf-tools/biostacks.bpf.c
+++ b/libbpf-tools/biostacks.bpf.c
@@ -74,6 +74,7 @@
 	struct internal_rqinfo *i_rqinfop;
 	struct hist *histp;
 	s64 delta;
+	u64 udelta;
 
 	i_rqinfop = bpf_map_lookup_elem(&rqinfos, &rq);
 	if (!i_rqinfop)
@@ -81,14 +82,15 @@
 	delta = (s64)(ts - i_rqinfop->start_ts);
 	if (delta < 0)
 		goto cleanup;
+	udelta = (u64)delta;
 	histp = bpf_map_lookup_or_try_init(&hists, &i_rqinfop->rqinfo, &zero);
 	if (!histp)
 		goto cleanup;
 	if (targ_ms)
-		delta /= 1000000U;
+		udelta /= 1000000U;
 	else
-		delta /= 1000U;
-	slot = log2l(delta);
+		udelta /= 1000U;
+	slot = log2l(udelta);
 	if (slot >= MAX_SLOTS)
 		slot = MAX_SLOTS - 1;
 	__sync_fetch_and_add(&histp->slots[slot], 1);
diff --git a/libbpf-tools/fsdist.bpf.c b/libbpf-tools/fsdist.bpf.c
index 1bf98e9..19bc51a 100644
--- a/libbpf-tools/fsdist.bpf.c
+++ b/libbpf-tools/fsdist.bpf.c
@@ -41,6 +41,7 @@
 	__u64 ts = bpf_ktime_get_ns();
 	__u64 *tsp, slot;
 	__s64 delta;
+	__u64 udelta;
 
 	tsp = bpf_map_lookup_elem(&starts, &tid);
 	if (!tsp)
@@ -53,12 +54,13 @@
 	if (delta < 0)
 		goto cleanup;
 
+	udelta = (__u64)delta;
 	if (in_ms)
-		delta /= 1000000;
+		udelta /= 1000000;
 	else
-		delta /= 1000;
+		udelta /= 1000;
 
-	slot = log2l(delta);
+	slot = log2l(udelta);
 	if (slot >= MAX_SLOTS)
 		slot = MAX_SLOTS - 1;
 	__sync_fetch_and_add(&hists[op].slots[slot], 1);
diff --git a/libbpf-tools/offcputime.bpf.c b/libbpf-tools/offcputime.bpf.c
index cb20d50..3a36fa3 100644
--- a/libbpf-tools/offcputime.bpf.c
+++ b/libbpf-tools/offcputime.bpf.c
@@ -63,6 +63,7 @@
 	struct internal_key *i_keyp, i_key;
 	struct val_t *valp, val;
 	s64 delta;
+	u64 udelta;
 	u32 pid;
 
 	if (allow_record(prev)) {
@@ -94,13 +95,14 @@
 	delta = (s64)(bpf_ktime_get_ns() - i_keyp->start_ts);
 	if (delta < 0)
 		goto cleanup;
-	delta /= 1000U;
-	if (delta < min_block_ns || delta > max_block_ns)
+	udelta = (u64)delta;
+	udelta /= 1000U;
+	if (udelta < min_block_ns || udelta > max_block_ns)
 		goto cleanup;
 	valp = bpf_map_lookup_elem(&info, &i_keyp->key);
 	if (!valp)
 		goto cleanup;
-	__sync_fetch_and_add(&valp->delta, delta);
+	__sync_fetch_and_add(&valp->delta, udelta);
 
 cleanup:
 	bpf_map_delete_elem(&start, &pid);
diff --git a/libbpf-tools/runqlat.bpf.c b/libbpf-tools/runqlat.bpf.c
index 76e0553..1ddf976 100644
--- a/libbpf-tools/runqlat.bpf.c
+++ b/libbpf-tools/runqlat.bpf.c
@@ -80,6 +80,7 @@
 	u64 *tsp, slot;
 	u32 pid, hkey;
 	s64 delta;
+	u64 udelta;
 
 	if (filter_cg && !bpf_current_task_under_cgroup(&cgroup_map, 0))
 		return 0;
@@ -95,6 +96,7 @@
 	delta = bpf_ktime_get_ns() - *tsp;
 	if (delta < 0)
 		goto cleanup;
+	udelta = (u64)delta;
 
 	if (targ_per_process)
 		hkey = BPF_CORE_READ(next, tgid);
@@ -111,10 +113,10 @@
 		bpf_probe_read_kernel_str(&histp->comm, sizeof(histp->comm),
 					next->comm);
 	if (targ_ms)
-		delta /= 1000000U;
+		udelta /= 1000000U;
 	else
-		delta /= 1000U;
-	slot = log2l(delta);
+		udelta /= 1000U;
+	slot = log2l(udelta);
 	if (slot >= MAX_SLOTS)
 		slot = MAX_SLOTS - 1;
 	__sync_fetch_and_add(&histp->slots[slot], 1);
