From 6b739739968a0cc9b4d9909d8f4ffec30f4461dd Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Fri, 1 May 2020 16:26:24 -0700 Subject: moved to static build with musl and integrated cscopes into dev tools --- .gitignore | 4 ++++ Makefile | 17 ++++++++++++----- bin/gentags | 19 +++++++++++++++++++ rules.mk | 4 ++++ sys/libmath/blas.c | 5 +++-- sys/libmath/rules.mk | 1 + sys/libmath/test.c | 2 +- 7 files changed, 44 insertions(+), 8 deletions(-) create mode 100755 bin/gentags diff --git a/.gitignore b/.gitignore index 8e33690..fc20b4d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,11 @@ build/ data/ share/ vendor/ +include/libc sys/cc sys/nixos bin/fasttree bin/mafft + +.cscope +tags diff --git a/Makefile b/Makefile index 0821ef6..2d6485c 100644 --- a/Makefile +++ b/Makefile @@ -10,16 +10,23 @@ BIN_DIR := bin LIB_DIR := lib OBJ_DIR := build +# C runtime library +CINIT := $(LIB_DIR)/crt/crt1.o $(LIB_DIR)/crt/x86_64/crti.o `gcc --print-file-name=crtbeginT.o` +CFINI := `gcc --print-file-name=crtendS.o` $(LIB_DIR)/crt/x86_64/crtn.o + # Flags, Libraries and Includes -CFLAGS := -g -O3 -march=native -ffast-math -fno-strict-aliasing -fwrapv -fms-extensions -Wno-microsoft-anon-tag -Wno-incompatible-function-pointer-types +CFLAGS := -g -O3 -march=native \ + -ffast-math -fno-strict-aliasing -fwrapv -fms-extensions \ + -Wno-microsoft-anon-tag -Wno-incompatible-function-pointer-types +STATIC := -static -nodefaultlibs -nostartfiles AFLAGS := -f elf64 -INCS := -I$(INC_DIR) -ELIBS := +INCS := -isystem $(INC_DIR)/vendor/libc -I $(INC_DIR) +ELIBS := -L$(LIB_DIR) -lc # Named generic rules (must be evaluated lazily) COMPILE = $(CC) -MMD $(CFLAGS) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ -c $< -LINK = $(CC) -MMD $(CFLAGS) $(TCFLAGS) -o $@ $^ $(ELIBS) $(TCLIBS) -COMPLINK = $(CC) -MMD $(CFLAGS) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ $^ $(ELIBS) $(TCLIBS) +LINK = $(CC) -MMD $(CFLAGS) $(STATIC) $(TCFLAGS) -o $@ $(CINIT) $^ $(CFINI) $(TCLIBS) $(ELIBS) +COMPLINK = $(CC) -MMD $(CFLAGS) $(STATIC) $(TCFLAGS) $u$(INCS) $(TCINCS) -o $@ $(CINIT) $^ $(CFINI) $(TCLIBS) $(ELIBS) ASSEMBLE = $(AS) $(AFLAGS) $(TCFLAGS) -o $@ $< ARCHIVE = $(AR) crs $@ $^ diff --git a/bin/gentags b/bin/gentags new file mode 100755 index 0000000..f0494f0 --- /dev/null +++ b/bin/gentags @@ -0,0 +1,19 @@ +#!/bin/bash + +CSCOPE_DIR="$PWD/.cscope" + +if [ ! -d "$CSCOPE_DIR" ]; then +mkdir "$CSCOPE_DIR" +fi + +echo "finding files ..." +ROOT=/home/nolln/root +find $ROOT \ + -path "$ROOT/sys/*.[chs]" -prune -o \ + -path "$ROOT/include/*.h" > "$CSCOPE_DIR/files" + +echo "adding files to cscope db: $ROOT/cscope.db ..." +cscope -b -i "$CSCOPE_DIR/files" + +CSCOPE_DB="$ROOT/cscope.out" +echo "exported CSCOPE_DB to: '$CSCOPE_DB'" diff --git a/rules.mk b/rules.mk index 0f81ea2..5260157 100644 --- a/rules.mk +++ b/rules.mk @@ -36,6 +36,10 @@ $(OBJ_DIR)/%: $(SRC_DIR)/%.c .PHONY: targets targets: $(LIBS) $(BINS) +.PHONY: database +database: $(LIBS) $(BINS) + gentags + .PHONY: clean clean: rm -f $(OBJS) diff --git a/sys/libmath/blas.c b/sys/libmath/blas.c index a672101..c2f7e6c 100644 --- a/sys/libmath/blas.c +++ b/sys/libmath/blas.c @@ -1,6 +1,6 @@ #include #include -#include +#include #include @@ -64,6 +64,7 @@ blas·scalevec(int len, double *x, double a) * Daxpy * y = ax + y */ + static void @@ -416,7 +417,7 @@ main() double *x, *y, *m[3]; double res[2], tprof[2]; - openblas_set_num_threads(1); + // openblas_set_num_threads(1); x = malloc(sizeof(*x)*NCOL); y = malloc(sizeof(*x)*NCOL); diff --git a/sys/libmath/rules.mk b/sys/libmath/rules.mk index 9f02522..049092a 100644 --- a/sys/libmath/rules.mk +++ b/sys/libmath/rules.mk @@ -31,6 +31,7 @@ BINS := $(BINS) $(BINS_$(d)) $(LIBS_$(d)): $(OBJS_$(d)) $(ARCHIVE) +$(BINS_$(d)): TCFLAGS := -D_GNU_SOURCE $(BINS_$(d)): TCLIBS := -lpthread -lm $(BINS_$(d)): $(OBJS_$(d)) $(OBJ_DIR)/libn/libn.a $(LIB_DIR)/vendor/libblas.a $(LINK) diff --git a/sys/libmath/test.c b/sys/libmath/test.c index 3dfaa31..485d549 100644 --- a/sys/libmath/test.c +++ b/sys/libmath/test.c @@ -1,6 +1,6 @@ #include #include -#include +#include #include -- cgit v1.2.1