mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-01-22 00:04:31 +03:00
move Rust sources to top level, C sources into c_src
This moves the Rust sources out of rust_src/ and into the top level. Running the bcachefs executable out of the development tree is now: $ ./target/release/bcachefs command or $ cargo run --profile release -- command instead of "./bcachefs command". Building and installing is still: $ make && make install Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
fb35dbfdc5
commit
f5baaf48e3
2
.github/workflows/build-packages.yml
vendored
2
.github/workflows/build-packages.yml
vendored
@ -78,7 +78,7 @@ jobs:
|
||||
uuid-dev zlib1g-dev valgrind libudev-dev python3-docutils libclang-dev
|
||||
- name: Extract MSRV
|
||||
run: |
|
||||
MSRV=$(cargo metadata --format-version 1 --no-deps --manifest-path rust-src/Cargo.toml |
|
||||
MSRV=$(cargo metadata --format-version 1 --no-deps |
|
||||
jq -r '.packages[] | select(.name == "bcachefs-tools") | .rust_version')
|
||||
echo "MSRV=$MSRV" >> $GITHUB_ENV
|
||||
- name: Install Rust ${{ env.MSRV }} toolchain
|
||||
|
10
.gitignore
vendored
10
.gitignore
vendored
@ -20,3 +20,13 @@ tests/__pycache__/
|
||||
!.editorconfig
|
||||
|
||||
bcachefs-principles-of-operation.*
|
||||
|
||||
# will have compiled files and executables
|
||||
debug/
|
||||
target/
|
||||
|
||||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
|
||||
# MSVC Windows builds of rustc generate these, which store debugging information
|
||||
*.pdb
|
||||
|
0
rust-src/Cargo.lock → Cargo.lock
generated
0
rust-src/Cargo.lock → Cargo.lock
generated
23
Makefile
23
Makefile
@ -30,7 +30,7 @@ CFLAGS+=-std=gnu11 -O2 -g -MMD -Wall -fPIC \
|
||||
-Wno-deprecated-declarations \
|
||||
-fno-strict-aliasing \
|
||||
-fno-delete-null-pointer-checks \
|
||||
-I. -Iinclude -Iraid \
|
||||
-Ic_src -Ic_src/include \
|
||||
-D_FILE_OFFSET_BITS=64 \
|
||||
-D_GNU_SOURCE \
|
||||
-D_LGPL_SOURCE \
|
||||
@ -55,12 +55,11 @@ CARGO_ARGS=${CARGO_TOOLCHAIN}
|
||||
CARGO=cargo $(CARGO_ARGS)
|
||||
CARGO_PROFILE=release
|
||||
# CARGO_PROFILE=debug
|
||||
CARGO_MANIFEST=--manifest-path rust-src/Cargo.toml
|
||||
|
||||
CARGO_BUILD_ARGS=--$(CARGO_PROFILE)
|
||||
CARGO_BUILD=$(CARGO) build $(CARGO_BUILD_ARGS) $(CARGO_MANIFEST)
|
||||
CARGO_BUILD=$(CARGO) build $(CARGO_BUILD_ARGS)
|
||||
|
||||
CARGO_CLEAN=$(CARGO) clean $(CARGO_CLEAN_ARGS) $(CARGO_MANIFEST)
|
||||
CARGO_CLEAN=$(CARGO) clean $(CARGO_CLEAN_ARGS)
|
||||
|
||||
include Makefile.compiler
|
||||
|
||||
@ -172,13 +171,13 @@ OBJS:=$(SRCS:.c=.o)
|
||||
@echo " [CC] $@"
|
||||
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
BCACHEFS_DEPS=libbcachefs.a
|
||||
RUST_SRCS:=$(shell find rust-src/src rust-src/bch_bindgen/src -type f -iname '*.rs')
|
||||
BCACHEFS_DEPS=c_src/libbcachefs.a
|
||||
RUST_SRCS:=$(shell find src bch_bindgen/src -type f -iname '*.rs')
|
||||
|
||||
bcachefs: $(BCACHEFS_DEPS) $(RUST_SRCS)
|
||||
$(CARGO_BUILD)
|
||||
$(Q)$(CARGO_BUILD)
|
||||
|
||||
libbcachefs.a: $(filter-out ./tests/%.o, $(OBJS))
|
||||
c_src/libbcachefs.a: $(filter-out ./tests/%.o, $(OBJS))
|
||||
@echo " [AR] $@"
|
||||
$(Q)ar -rc $@ $+
|
||||
|
||||
@ -201,7 +200,7 @@ cmd_version.o : .version
|
||||
install: INITRAMFS_HOOK=$(INITRAMFS_DIR)/hooks/bcachefs
|
||||
install: INITRAMFS_SCRIPT=$(INITRAMFS_DIR)/scripts/local-premount/bcachefs
|
||||
install: bcachefs $(optional_install)
|
||||
$(INSTALL) -m0755 -D rust-src/target/release/bcachefs -t $(DESTDIR)$(ROOT_SBINDIR)
|
||||
$(INSTALL) -m0755 -D target/release/bcachefs -t $(DESTDIR)$(ROOT_SBINDIR)
|
||||
$(INSTALL) -m0644 -D bcachefs.8 -t $(DESTDIR)$(PREFIX)/share/man/man8/
|
||||
$(INSTALL) -m0755 -D initramfs/script $(DESTDIR)$(INITRAMFS_SCRIPT)
|
||||
$(INSTALL) -m0755 -D initramfs/hook $(DESTDIR)$(INITRAMFS_HOOK)
|
||||
@ -224,7 +223,7 @@ install_systemd: $(systemd_services) $(systemd_libexecfiles)
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Cleaning all"
|
||||
$(Q)$(RM) libbcachefs.a tests/test_helper .version *.tar.xz $(OBJS) $(DEPS) $(DOCGENERATED)
|
||||
$(Q)$(RM) c_src/libbcachefs.a tests/test_helper .version *.tar.xz $(OBJS) $(DEPS) $(DOCGENERATED)
|
||||
$(Q)$(CARGO_CLEAN)
|
||||
$(Q)$(RM) -f $(built_scripts)
|
||||
|
||||
@ -244,8 +243,8 @@ doc: bcachefs-principles-of-operation.pdf
|
||||
|
||||
.PHONY: cargo-update-msrv
|
||||
cargo-update-msrv:
|
||||
cargo +nightly generate-lockfile --manifest-path rust-src/Cargo.toml -Zmsrv-policy
|
||||
cargo +nightly generate-lockfile --manifest-path rust-src/bch_bindgen/Cargo.toml -Zmsrv-policy
|
||||
cargo +nightly generate-lockfile -Zmsrv-policy
|
||||
cargo +nightly generate-lockfile --manifest-path bch_bindgen/Cargo.toml -Zmsrv-policy
|
||||
|
||||
.PHONY: update-bcachefs-sources
|
||||
update-bcachefs-sources:
|
||||
|
@ -19,9 +19,8 @@ fn main() {
|
||||
.expect("ENV Var 'CARGO_MANIFEST_DIR' Expected")
|
||||
.into();
|
||||
|
||||
let libbcachefs_inc_dir = std::path::Path::new("../..");
|
||||
let libbcachefs_inc_dir = std::path::Path::new("../c_src");
|
||||
|
||||
let _libbcachefs_dir = top_dir.join("libbcachefs").join("libbcachefs");
|
||||
let bindings = bindgen::builder()
|
||||
.header(
|
||||
top_dir
|
22
bch_bindgen/src/libbcachefs_wrapper.h
Normal file
22
bch_bindgen/src/libbcachefs_wrapper.h
Normal file
@ -0,0 +1,22 @@
|
||||
#include "libbcachefs/super-io.h"
|
||||
#include "libbcachefs/checksum.h"
|
||||
#include "libbcachefs/bcachefs_format.h"
|
||||
#include "libbcachefs/btree_cache.h"
|
||||
#include "libbcachefs/btree_iter.h"
|
||||
#include "libbcachefs/debug.h"
|
||||
#include "libbcachefs/errcode.h"
|
||||
#include "libbcachefs/error.h"
|
||||
#include "libbcachefs/opts.h"
|
||||
#include "libbcachefs.h"
|
||||
#include "crypto.h"
|
||||
#include "include/linux/bio.h"
|
||||
#include "include/linux/blkdev.h"
|
||||
#include "cmds.h"
|
||||
#include "raid/raid.h"
|
||||
|
||||
|
||||
#define MARK_FIX_753(req_name) const blk_mode_t Fix753_##req_name = req_name;
|
||||
|
||||
MARK_FIX_753(BLK_OPEN_READ);
|
||||
MARK_FIX_753(BLK_OPEN_WRITE);
|
||||
MARK_FIX_753(BLK_OPEN_EXCL);
|
@ -35,12 +35,12 @@ in stdenv.mkDerivation {
|
||||
|
||||
BCACHEFS_FUSE = if fuseSupport then "1" else "";
|
||||
|
||||
cargoRoot = "rust-src";
|
||||
cargoRoot = ".";
|
||||
# when git-based crates are updated, run:
|
||||
# nix run github:Mic92/nix-update -- --version=skip --flake default
|
||||
# to update the hashes
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = "${src}/rust-src/Cargo.lock";
|
||||
lockFile = "${src}/Cargo.lock";
|
||||
outputHashes = {
|
||||
"bindgen-0.64.0" = "sha256-GNG8as33HLRYJGYe0nw6qBzq86aHiGonyynEM7gaEE4=";
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
fn main() {
|
||||
println!("cargo:rustc-link-search=..");
|
||||
println!("cargo:rerun-if-changed=../libbcachefs.a");
|
||||
println!("cargo:rustc-link-search=c_src");
|
||||
println!("cargo:rerun-if-changed=c_src/libbcachefs.a");
|
||||
println!("cargo:rustc-link-lib=static:+whole-archive=bcachefs");
|
||||
|
||||
println!("cargo:rustc-link-lib=urcu");
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user