diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-12-31 12:50:25 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-12-31 12:50:25 +0800 |
commit | 3048d5c12551812d67e461c5bfdcc56d3bdd9976 (patch) | |
tree | 29d89a1b8e813b415d78927f4a07403c167cf7ac | |
parent | 940fba9e58bf964dd73972ff7ca8e9d90af09dd5 (diff) | |
download | dexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.tar.gz dexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.tar.zst dexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.zip |
rename libmcl_dy.so to libmcl.so
-rw-r--r-- | CMakeLists.txt | 15 | ||||
-rw-r--r-- | Makefile | 28 | ||||
-rw-r--r-- | ffi/go/mcl/mcl.go | 6 | ||||
-rw-r--r-- | readme.md | 11 |
4 files changed, 22 insertions, 38 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 27bbbcb..c7bf1de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,11 +12,6 @@ option( "download cybozulib_ext" OFF ) -option( - USE_OLD_SHARED_NAME - "add '_dy' of shared library name" - OFF -) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) @@ -92,19 +87,15 @@ include_directories( add_library(mcl STATIC ${SRCS}) add_library(mcl_dy SHARED ${SRCS}) target_link_libraries(mcl_dy ${LIBS}) -if(NOT USE_OLD_SHARED_NAME) - set_target_properties(mcl_dy PROPERTIES OUTPUT_NAME mcl VERSION 1.0.0 SOVERSION 1) - # For semantics of ABI compatibility including when you must bump SOVERSION, see: - # https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B#The_Do.27s_and_Don.27ts -endif() +set_target_properties(mcl_dy PROPERTIES OUTPUT_NAME mcl VERSION 1.0.0 SOVERSION 1) +# For semantics of ABI compatibility including when you must bump SOVERSION, see: +# https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B#The_Do.27s_and_Don.27ts file(GLOB MCL_HEADERS include/mcl/*.hpp include/mcl/bn.h include/mcl/curve_type.h) file(GLOB CYBOZULIB_HEADERS include/cybozu/*.hpp) install(TARGETS mcl DESTINATION lib) -if(NOT MSVC) install(TARGETS mcl_dy DESTINATION lib) -endif() install(FILES ${MCL_HEADERS} DESTINATION include/mcl) install(FILES include/mcl/impl/bn_c_impl.hpp DESTINATION include/mcl/impl) install(FILES ${CYBOZULIB_HEADERS} DESTINATION include/cybozu) @@ -26,15 +26,14 @@ endif ifeq ($(MCL_USE_XBYAK),0) CFLAGS+=-DMCL_DONT_USE_XBYAK endif -SHARE_BASENAME_SUF?=_dy ################################################################## MCL_LIB=$(LIB_DIR)/libmcl.a -MCL_SNAME=mcl$(SHARE_BASENAME_SUF) -BN256_SNAME=mclbn256$(SHARE_BASENAME_SUF) -BN384_SNAME=mclbn384$(SHARE_BASENAME_SUF) -BN384_256_SNAME=mclbn384_256$(SHARE_BASENAME_SUF) -BN512_SNAME=mclbn512$(SHARE_BASENAME_SUF) -SHE256_SNAME=mclshe256$(SHARE_BASENAME_SUF) +MCL_SNAME=mcl +BN256_SNAME=mclbn256 +BN384_SNAME=mclbn384 +BN384_256_SNAME=mclbn384_256 +BN512_SNAME=mclbn512 +SHE256_SNAME=mclshe256 MCL_SLIB=$(LIB_DIR)/lib$(MCL_SNAME).$(LIB_SUF) BN256_LIB=$(LIB_DIR)/libmclbn256.a BN256_SLIB=$(LIB_DIR)/lib$(BN256_SNAME).$(LIB_SUF) @@ -207,19 +206,16 @@ asm: $(LLVM_SRC) $(LOW_ASM_OBJ): $(LOW_ASM_SRC) $(ASM) $< -ifeq ($(OS),mac) - MAC_GO_LDFLAGS="-ldflags=-s" -endif # set PATH for mingw, set LD_RUN_PATH is for other env +COMMON_LIB_PATH="../../../lib" test_go256: $(MCL_SLIB) $(BN256_SLIB) -# cd ffi/go/mcl && env PATH="$$PATH:../../../lib" LD_RUN_PATH="../../../lib" CGO_LDFLAGS="-L../../../lib -l$(BN256_SNAME) -l$(MCL_SNAME) -lgmpxx -lgmp -lcrypto -lstdc++" go test $(MAC_GO_LDFLAGS) -tags bn256 . - cd ffi/go/mcl && env PATH="$$PATH:../../../lib" LD_RUN_PATH="../../../lib" go test $(MAC_GO_LDFLAGS) -tags bn256 . + cd ffi/go/mcl && env PATH=$$PATH:$(COMMON_LIB_PATH) LD_RUN_PATH=$(COMMON_LIB_PATH) DYLD_LIBRARY_PATH=$(COMMON_LIB_PATH) go test -tags bn256 . test_go384: $(MCL_SLIB) $(BN384_SLIB) - cd ffi/go/mcl && env PATH="$$PATH:../../../lib" LD_RUN_PATH="../../../lib" go test $(MAC_GO_LDFLAGS) -tags bn384 . + cd ffi/go/mcl && env PATH=$$PATH:$(COMMON_LIB_PATH) LD_RUN_PATH=$(COMMON_LIB_PATH) DYLD_LIBRARY_PATH=$(COMMON_LIB_PATH) go test -tags bn384 . test_go384_256: $(MCL_SLIB) $(BN384_256_SLIB) - cd ffi/go/mcl && env PATH="$$PATH:../../../lib" LD_RUN_PATH="../../../lib" go test $(MAC_GO_LDFLAGS) -tags bn384_256 . + cd ffi/go/mcl && env PATH=$$PATH:$(COMMON_LIB_PATH) LD_RUN_PATH=$(COMMON_LIB_PATH) DYLD_LIBRARY_PATH=$(COMMON_LIB_PATH) go test -tags bn384_256 . test_go: $(MAKE) test_go256 @@ -344,12 +340,12 @@ DEPEND_FILE=$(addprefix $(OBJ_DIR)/, $(addsuffix .d,$(basename $(ALL_SRC)))) -include $(DEPEND_FILE) PREFIX?=/usr/local -install: lib/libmcl.a lib/libmcl$(SHARE_BASENAME_SUF).$(LIB_SUF) +install: lib/libmcl.a lib/libmcl.$(LIB_SUF) $(MKDIR) $(PREFIX)/include/mcl cp -a include/mcl/ $(PREFIX)/include/ cp -a include/cybozu/ $(PREFIX)/include/ $(MKDIR) $(PREFIX)/lib - cp -a lib/libmcl.a lib/libmcl$(SHARE_BASENAME_SUF).$(LIB_SUF) $(PREFIX)/lib/ + cp -a lib/libmcl.a lib/libmcl.$(LIB_SUF) $(PREFIX)/lib/ .PHONY: test mcl-wasm she-wasm bin/emu diff --git a/ffi/go/mcl/mcl.go b/ffi/go/mcl/mcl.go index 61691a3..7a428b3 100644 --- a/ffi/go/mcl/mcl.go +++ b/ffi/go/mcl/mcl.go @@ -4,11 +4,11 @@ package mcl #cgo CFLAGS:-I../../../include #cgo LDFLAGS:-L../../../lib #cgo bn256 CFLAGS:-DMCLBN_FP_UNIT_SIZE=4 -#cgo bn256 LDFLAGS:-lmclbn256_dy -lmcl_dy +#cgo bn256 LDFLAGS:-lmclbn256 -lmcl #cgo bn384 CFLAGS:-DMCLBN_FP_UNIT_SIZE=6 -#cgo bn384 LDFLAGS:-lmclbn384_dy -lmcl_dy +#cgo bn384 LDFLAGS:-lmclbn384 -lmcl #cgo bn384_256 CFLAGS:-DMCLBN_FP_UNIT_SIZE=6 -DMCLBN_FR_UNIT_SIZE=4 -#cgo bn384_256 LDFLAGS:-lmclbn384_256_dy -lmcl_dy +#cgo bn384_256 LDFLAGS:-lmclbn384_256 -lmcl #include <mcl/bn.h> */ import "C" @@ -10,8 +10,8 @@ mcl is a library for pairing-based cryptography. The current version supports the optimal Ate pairing over BN curves and BLS12-381 curves.
# News
-* The default name of the shared library is renamed fromlibmcl_dy.a to libmcl.a.
- * Use `cmake -DUSE_OLD_SHARED_NAME=ON` if you want to use the old name.
+* (Break backward compatibility) libmcl_dy.a is renamed to libmcl.a
+ * The option SHARE_BASENAME_SUF is removed
* 2nd argument of `mclBn_init` is changed from `maxUnitSize` to `compiledTimeVar`, which must be `MCLBN_COMPILED_TIME_VAR`.
* break backward compatibility of mapToGi for BLS12. A map-to-function for BN is used.
If `MCL_USE_OLD_MAPTO_FOR_BLS12` is defined, then the old function is used, but this will be removed in the future.
@@ -231,7 +231,7 @@ finalExp 546.259Kclk ## C++ library
* libmcl.a ; static C++ library of mcl
-* libmcl\_dy.so ; shared C++ library of mcl
+* libmcl.so ; shared C++ library of mcl
* the default parameter of curveType is BN254
header |support curveType |sizeof Fr|sizeof Fp|
@@ -255,16 +255,13 @@ libmclbn384.a | 6 | 6 | * libmclbn*.a ; static C library
-* libmclbn*\_dy.so ; shared C library
+* libmclbn*.so ; shared C library
### 2nd argument of `mclBn_init`
Specify `MCLBN_COMPILED_TIME_VAR` to 2nd argument of `mclBn_init`, which
is defined as `MCLBN_FR_UNIT_SIZE * 10 + MCLBN_FP_UNIT_SIZE`.
This parameter is used to make sure that the values are the same when the library is built and used.
-### shared library name
-If you want to remove `_dy` of so files, then `makeSHARE_BASENAME_SUF=`.
-
# How to initialize pairing library
Call `mcl::bn256::initPairing` before calling any operations.
```
|