bump vendor/nimbus-build-system (#491)

* bump vendor/nimbus-build-system

- add the Nim compiler header to the Nimbus header
- also support the USE_LIBBACKTRACE env var

* "go-checks" target no longer available
This commit is contained in:
Ștefan Talpalaru 2020-04-16 00:21:58 +02:00 committed by GitHub
parent ad28b641cd
commit a783b096fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 15 deletions

View File

@ -30,9 +30,12 @@ TOOLS_DIRS := \
# comma-separated values for the "clean" target # comma-separated values for the "clean" target
TOOLS_CSV := $(subst $(SPACE),$(COMMA),$(TOOLS)) TOOLS_CSV := $(subst $(SPACE),$(COMMA),$(TOOLS))
# "--import" can't be added to config.nims, for some reason # "--define:release" implies "--stacktrace:off" and it cannot be added to config.nims
# "--define:release" implies "--stacktrace:off" and it cannot be added to config.nims either ifeq ($(USE_LIBBACKTRACE), 0)
NIM_PARAMS := $(NIM_PARAMS) -d:release --import:libbacktrace NIM_PARAMS := $(NIM_PARAMS) -d:debug -d:disable_libbacktrace
else
NIM_PARAMS := $(NIM_PARAMS) -d:release
endif
.PHONY: \ .PHONY: \
all \ all \
@ -65,12 +68,15 @@ build-system-checks:
exit 1; \ exit 1; \
} }
deps: | deps-common nimbus.nims libbacktrace deps: | deps-common nimbus.nims
ifneq ($(USE_LIBBACKTRACE), 0)
deps: | libbacktrace
endif
#- deletes and recreates "nimbus.nims" which on Windows is a copy instead of a proper symlink #- deletes and recreates "nimbus.nims" which on Windows is a copy instead of a proper symlink
update: | update-common update: | update-common
rm -rf nimbus.nims && \ rm -rf nimbus.nims && \
$(MAKE) nimbus.nims $(MAKE) nimbus.nims $(HANDLE_OUTPUT)
# builds the tools, wherever they are # builds the tools, wherever they are
$(TOOLS): | build deps $(TOOLS): | build deps
@ -89,7 +95,7 @@ nimbus.nims:
# nim-libbacktrace # nim-libbacktrace
libbacktrace: libbacktrace:
+ $(MAKE) -C vendor/nim-libbacktrace BUILD_CXX_LIB=0 + $(MAKE) -C vendor/nim-libbacktrace BUILD_CXX_LIB=0 $(HANDLE_OUTPUT)
# builds and runs the test suite # builds and runs the test suite
test: | build deps test: | build deps
@ -108,7 +114,9 @@ test-reproducibility:
# usual cleaning # usual cleaning
clean: | clean-common clean: | clean-common
rm -rf build/{nimbus,$(TOOLS_CSV),all_tests,test_rpc,*_wrapper_test} rm -rf build/{nimbus,$(TOOLS_CSV),all_tests,test_rpc,*_wrapper_test}
ifneq ($(USE_LIBBACKTRACE), 0)
+ $(MAKE) -C vendor/nim-libbacktrace clean $(HANDLE_OUTPUT) + $(MAKE) -C vendor/nim-libbacktrace clean $(HANDLE_OUTPUT)
endif
libnimbus.so: | build deps libnimbus.so: | build deps
echo -e $(BUILD_MSG) "build/$@" && \ echo -e $(BUILD_MSG) "build/$@" && \
@ -118,7 +126,7 @@ libnimbus.so: | build deps
# libraries for dynamic linking of non-Nim objects # libraries for dynamic linking of non-Nim objects
EXTRA_LIBS_DYNAMIC := -L"$(CURDIR)/build" -lnimbus -lm EXTRA_LIBS_DYNAMIC := -L"$(CURDIR)/build" -lnimbus -lm
wrappers: | build deps libnimbus.so go-checks wrappers: | build deps libnimbus.so
echo -e $(BUILD_MSG) "build/C_wrapper_example" && \ echo -e $(BUILD_MSG) "build/C_wrapper_example" && \
$(CC) wrappers/wrapper_example.c -Wl,-rpath,'$$ORIGIN' $(EXTRA_LIBS_DYNAMIC) -g -o build/C_wrapper_example $(CC) wrappers/wrapper_example.c -Wl,-rpath,'$$ORIGIN' $(EXTRA_LIBS_DYNAMIC) -g -o build/C_wrapper_example
echo -e $(BUILD_MSG) "build/go_wrapper_example" && \ echo -e $(BUILD_MSG) "build/go_wrapper_example" && \
@ -144,7 +152,7 @@ endif # Windows
ifeq ($(USE_VENDORED_LIBUNWIND), 1) ifeq ($(USE_VENDORED_LIBUNWIND), 1)
EXTRA_LIBS_STATIC := $(EXTRA_LIBS_STATIC) -lunwind EXTRA_LIBS_STATIC := $(EXTRA_LIBS_STATIC) -lunwind
endif # USE_VENDORED_LIBUNWIND endif # USE_VENDORED_LIBUNWIND
wrappers-static: | build deps libnimbus.a go-checks wrappers-static: | build deps libnimbus.a
echo -e $(BUILD_MSG) "build/C_wrapper_example_static" && \ echo -e $(BUILD_MSG) "build/C_wrapper_example_static" && \
$(CC) wrappers/wrapper_example.c -static -pthread $(EXTRA_LIBS_STATIC) -g -o build/C_wrapper_example_static $(CC) wrappers/wrapper_example.c -static -pthread $(EXTRA_LIBS_STATIC) -g -o build/C_wrapper_example_static
echo -e $(BUILD_MSG) "build/go_wrapper_example_static" && \ echo -e $(BUILD_MSG) "build/go_wrapper_example_static" && \

View File

@ -35,11 +35,10 @@ else:
if not defined(macosx): if not defined(macosx):
# add debugging symbols and original files and line numbers # add debugging symbols and original files and line numbers
--debugger:native --debugger:native
if not (defined(windows) and defined(i386)): if not (defined(windows) and defined(i386)) and not defined(disable_libbacktrace):
# light-weight stack traces using libbacktrace and libunwind # light-weight stack traces using libbacktrace and libunwind
--define:nimStackTraceOverride --define:nimStackTraceOverride
# "--import:libbacktrace" is added to NIM_PARAMS inside the Makefile, switch("import", "libbacktrace")
# because it doesn't work in here ("Error: undeclared identifier: 'copyMem'", like it kicks in in some other NimScript file)
--define:nimOldCaseObjects # https://github.com/status-im/nim-confutils/issues/9 --define:nimOldCaseObjects # https://github.com/status-im/nim-confutils/issues/9
# libnimbus.so needs position-independent code # libnimbus.so needs position-independent code

View File

@ -33,12 +33,14 @@ const
NimbusIdent* = "$1/$2 ($3/$4)" % [NimbusName, NimbusVersion, hostCPU, hostOS] NimbusIdent* = "$1/$2 ($3/$4)" % [NimbusName, NimbusVersion, hostCPU, hostOS]
## project ident name for networking services ## project ident name for networking services
gitRevision = staticExec("git rev-parse --short HEAD") GitRevision = staticExec("git rev-parse --short HEAD")
NimVersion = staticExec("nim --version")
let let
NimbusCopyright* = "Copyright (c) 2018-" & $(now().utc.year) & " Status Research & Development GmbH" NimbusCopyright* = "Copyright (c) 2018-" & $(now().utc.year) & " Status Research & Development GmbH"
NimbusHeader* = "$# Version $# [$#: $#, $#, $#]\p$#" % NimbusHeader* = "$# Version $# [$#: $#, $#, $#]\p$#\p\p$#\p" %
[NimbusName, NimbusVersion, hostOS, hostCPU, nimbus_db_backend, gitRevision, NimbusCopyright] [NimbusName, NimbusVersion, hostOS, hostCPU, nimbus_db_backend, GitRevision, NimbusCopyright, NimVersion]
type type
ConfigStatus* = enum ConfigStatus* = enum

@ -1 +1 @@
Subproject commit 0cce46e1260b053349d0d6f337f5d67a7bc14462 Subproject commit d8cde2ad855295fe3539f9beaa2ca95cb991863b