Finish sandboxing m4
It was relying on a host library. Set LD_LIBRARY_PATH correctly to find
the packaged library.
Change-Id: I22a453811097b2aebce203409e3c2f96fb333a21
diff --git a/debian/m4.BUILD b/debian/m4.BUILD
index 0abafda..50f83cd 100644
--- a/debian/m4.BUILD
+++ b/debian/m4.BUILD
@@ -3,3 +3,9 @@
srcs = ["usr/bin/m4"],
visibility = ["//visibility:public"],
)
+
+filegroup(
+ name = "lib",
+ srcs = glob(["usr/lib/**"]),
+ visibility = ["//visibility:public"],
+)
diff --git a/third_party/gmp/BUILD b/third_party/gmp/BUILD
index 77e9f34..06cfa51 100644
--- a/third_party/gmp/BUILD
+++ b/third_party/gmp/BUILD
@@ -932,12 +932,15 @@
"**/*.asm",
]) + ["config.m4"],
outs = ["tests/call.s"],
- cmd = "cd third_party/gmp/tests; ../../../$(location @m4_v1.4.18//:bin) -I ../../../$(GENDIR)/third_party/gmp/tests -DHAVE_CONFIG_H -DPIC " + cpu_select({
+ cmd = "ROOT=$$(pwd); cd ./" + current_directory() + "/tests; LD_LIBRARY_PATH=$${ROOT}/external/m4_v1.4.18/usr/lib/x86_64-linux-gnu/ $${ROOT}/$(location @m4_v1.4.18//:bin) -I $${ROOT}/$(GENDIR)/" + current_directory() + "/tests -DHAVE_CONFIG_H -DPIC " + cpu_select({
"arm": "arm32call.asm",
"amd64": "amd64call.asm",
}) +
- " > ../../../$@",
- tools = ["@m4_v1.4.18//:bin"],
+ " > $${ROOT}/$@",
+ tools = [
+ "@m4_v1.4.18//:bin",
+ "@m4_v1.4.18//:lib",
+ ],
)
cc_library(
diff --git a/third_party/gmp/mpn.bzl b/third_party/gmp/mpn.bzl
index 4c16dfa..039725f 100644
--- a/third_party/gmp/mpn.bzl
+++ b/third_party/gmp/mpn.bzl
@@ -95,12 +95,12 @@
inputs = [ctx.files.files[0]] + ctx.files.deps,
outputs = [out],
progress_message = "Generating " + out.short_path,
- tools = [ctx.executable._m4],
+ tools = [ctx.executable._m4] + ctx.attr._m4_lib.files.to_list(),
command = " && ".join([
"ROOT=$(pwd)",
"cd ./" + ruledir + "/mpn",
"echo '#define OPERATION_" + ctx.attr.operation + " 1' > ${ROOT}/" + out.path,
- "${ROOT}/" + ctx.executable._m4.path + " -I ${ROOT}/" + ctx.var["GENDIR"] + "/" + ruledir + "/mpn" +
+ "LD_LIBRARY_PATH=${ROOT}/external/m4_v1.4.18/usr/lib/x86_64-linux-gnu/ ${ROOT}/" + ctx.executable._m4.path + " -I ${ROOT}/" + ctx.var["GENDIR"] + "/" + ruledir + "/mpn" +
" -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_" + ctx.attr.operation +
" -DPIC ${ROOT}/" + ctx.files.files[0].path + " >> ${ROOT}/" + out.path,
]),
@@ -125,6 +125,10 @@
cfg = "host",
executable = True,
),
+ "_m4_lib": attr.label(
+ default = "@m4_v1.4.18//:lib",
+ cfg = "host",
+ ),
},
implementation = _m4_mpn_function_impl,
)