| genrule( |
| name = "musl", |
| srcs = [ |
| "@musl//:all", |
| ], |
| outs = [ |
| # C Runtimes |
| "crt1.o", |
| "crti.o", |
| "crtn.o", |
| "rcrt1.o", |
| "Scrt1.o", |
| |
| # Static musl libc |
| "libc.a", |
| |
| # Placeholder archives |
| "libcrypt.a", |
| "libdl.a", |
| "libm.a", |
| "libpthread.a", |
| "libresolv.a", |
| "librt.a", |
| "libutil.a", |
| "libxnet.a", |
| ], |
| cmd = """ |
| OUT=$$PWD/$(RULEDIR) |
| ( |
| export CFLAGS="-static-pie -fPIC" |
| cd {path} |
| ./configure --prefix=$$OUT --syslibdir=$$OUT --libdir=$$OUT |
| make -j $$(nproc) install-libs |
| ) > /dev/null |
| """.format(path = package_relative_label("@musl//:all").workspace_root), |
| visibility = ["//visibility:public"], |
| ) |