aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2018-12-31 12:50:25 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2018-12-31 12:50:25 +0800
commit3048d5c12551812d67e461c5bfdcc56d3bdd9976 (patch)
tree29d89a1b8e813b415d78927f4a07403c167cf7ac
parent940fba9e58bf964dd73972ff7ca8e9d90af09dd5 (diff)
downloaddexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.tar.gz
dexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.tar.zst
dexon-mcl-3048d5c12551812d67e461c5bfdcc56d3bdd9976.zip
rename libmcl_dy.so to libmcl.so
-rw-r--r--CMakeLists.txt15
-rw-r--r--Makefile28
-rw-r--r--ffi/go/mcl/mcl.go6
-rw-r--r--readme.md11
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)
diff --git a/Makefile b/Makefile
index e42ac4e..c7f541d 100644
--- a/Makefile
+++ b/Makefile
@@ -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"
diff --git a/readme.md b/readme.md
index 280c8b6..15d8bef 100644
--- a/readme.md
+++ b/readme.md
@@ -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.
```