More portability tweaks.
Handle platform specific yasm parameters. Resolve namespace conflict on OSX. Do not build Skein ASM code on OSX.
This commit is contained in:
parent
6fba8aa8ac
commit
f2da433188
6 changed files with 24 additions and 8 deletions
|
@ -166,7 +166,7 @@ SHA2ASM_SRCS = crypto/sha2/intel/sha512_avx.asm crypto/sha2/intel/sha512_sse4.as
|
||||||
SHA2ASM_OBJS = $(SHA2ASM_SRCS:.asm=.o)
|
SHA2ASM_OBJS = $(SHA2ASM_SRCS:.asm=.o)
|
||||||
SHA2_OBJS = $(SHA2_SRCS:.c=.o)
|
SHA2_OBJS = $(SHA2_SRCS:.c=.o)
|
||||||
|
|
||||||
YASM = @YASM@ -f x64 -f elf64 -X gnu -g dwarf2 -D LINUX
|
YASM = @YASM@
|
||||||
LIBBSCWRAP = libbsc_compress.c
|
LIBBSCWRAP = libbsc_compress.c
|
||||||
LIBBSCWRAPOBJ = libbsc_compress.o
|
LIBBSCWRAPOBJ = libbsc_compress.o
|
||||||
LIBBSCDIR = @LIBBSCDIR@
|
LIBBSCDIR = @LIBBSCDIR@
|
||||||
|
|
20
config
20
config
|
@ -74,6 +74,8 @@ sha256asmobjs=
|
||||||
sha256objs=
|
sha256objs=
|
||||||
keylen=
|
keylen=
|
||||||
yasm=yasm
|
yasm=yasm
|
||||||
|
yasm_params_linux="-f x64 -f elf64 -X gnu -g dwarf2 -D LINUX"
|
||||||
|
yasm_params_osx="-f macho64 -X gnu -p gas"
|
||||||
keccak_srcs=
|
keccak_srcs=
|
||||||
keccak_hdrs=
|
keccak_hdrs=
|
||||||
keccak_srcs_asm=
|
keccak_srcs_asm=
|
||||||
|
@ -273,8 +275,11 @@ fi
|
||||||
|
|
||||||
echo $plat | egrep 'x86_64|amd64' > /dev/null
|
echo $plat | egrep 'x86_64|amd64' > /dev/null
|
||||||
if [ $? -eq 0 ]
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
if [ "$OS" != "Darwin" ]
|
||||||
then
|
then
|
||||||
skeinblock='\$\(SKEIN_BLOCK_ASM\)'
|
skeinblock='\$\(SKEIN_BLOCK_ASM\)'
|
||||||
|
fi
|
||||||
yasm=
|
yasm=
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -304,6 +309,17 @@ then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$OS" = "Linux" ]
|
||||||
|
then
|
||||||
|
yasm="${yasm} ${yasm_params_linux}"
|
||||||
|
elif [ "$OS" = "Darwin" ]
|
||||||
|
then
|
||||||
|
yasm="${yasm} ${yasm_params_osx}"
|
||||||
|
elif [ "$OS" = "SunOS" ]
|
||||||
|
then
|
||||||
|
yasm="${yasm} ${yasm_params_linux}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $debug -eq 1 ]
|
if [ $debug -eq 1 ]
|
||||||
then
|
then
|
||||||
keccak_srcs='\$\(KECCAK_SRC_OPT64\)'
|
keccak_srcs='\$\(KECCAK_SRC_OPT64\)'
|
||||||
|
@ -436,7 +452,7 @@ else
|
||||||
echo "Yes."
|
echo "Yes."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f tst*
|
rm -rf tst*
|
||||||
openssl_libdir="${openssl_libdir},--enable-new-dtags"
|
openssl_libdir="${openssl_libdir},--enable-new-dtags"
|
||||||
|
|
||||||
# Detect other library packages
|
# Detect other library packages
|
||||||
|
@ -581,7 +597,7 @@ then
|
||||||
echo "Libarchive version 3.0 or newer is required."
|
echo "Libarchive version 3.0 or newer is required."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
rm -f tst tst.c
|
rm -rf tst* tst.c
|
||||||
|
|
||||||
echo "Generating Makefile ..."
|
echo "Generating Makefile ..."
|
||||||
linkvar="LINK"
|
linkvar="LINK"
|
||||||
|
|
|
@ -130,7 +130,7 @@ static const uint64_t iv256[SHA512_HASH_WORDS] = {
|
||||||
static update_func_ptr sha512_update_func;
|
static update_func_ptr sha512_update_func;
|
||||||
|
|
||||||
int
|
int
|
||||||
APS_NAMESPACE(Init_SHA512) (processor_info_t *pc)
|
APS_NAMESPACE(Init_SHA512) (processor_cap_t *pc)
|
||||||
{
|
{
|
||||||
if (pc->proc_type == PROC_X64_INTEL || pc->proc_type == PROC_X64_AMD) {
|
if (pc->proc_type == PROC_X64_INTEL || pc->proc_type == PROC_X64_AMD) {
|
||||||
if (pc->avx_level > 0) {
|
if (pc->avx_level > 0) {
|
||||||
|
|
|
@ -97,7 +97,7 @@ extern "C" {
|
||||||
void APS_NAMESPACE(SHA512_Init) (SHA512_Context *sc);
|
void APS_NAMESPACE(SHA512_Init) (SHA512_Context *sc);
|
||||||
void APS_NAMESPACE(SHA512_Update) (SHA512_Context *sc, const void *data, size_t len);
|
void APS_NAMESPACE(SHA512_Update) (SHA512_Context *sc, const void *data, size_t len);
|
||||||
void APS_NAMESPACE(SHA512_Final) (SHA512_Context *sc, uint8_t hash[SHA512_HASH_SIZE]);
|
void APS_NAMESPACE(SHA512_Final) (SHA512_Context *sc, uint8_t hash[SHA512_HASH_SIZE]);
|
||||||
int APS_NAMESPACE(Init_SHA512) (processor_info_t *pc);
|
int APS_NAMESPACE(Init_SHA512) (processor_cap_t *pc);
|
||||||
|
|
||||||
/* As are SHA-512/256 and SHA-512/224 */
|
/* As are SHA-512/256 and SHA-512/224 */
|
||||||
#define SHA512t256_Context SHA512_Context
|
#define SHA512t256_Context SHA512_Context
|
||||||
|
|
|
@ -247,7 +247,7 @@ read_config(char *configfile, archive_config_t *cfg)
|
||||||
}
|
}
|
||||||
} else if (strncmp(line, "ARCHIVESZ", 9) == 0) {
|
} else if (strncmp(line, "ARCHIVESZ", 9) == 0) {
|
||||||
int ovr;
|
int ovr;
|
||||||
ssize_t arch_sz;
|
int64_t arch_sz;
|
||||||
ovr = parse_numeric(&arch_sz, pos);
|
ovr = parse_numeric(&arch_sz, pos);
|
||||||
if (ovr == 1) {
|
if (ovr == 1) {
|
||||||
log_msg(LOG_ERR, 0, "ARCHIVESZ value too large.\n");
|
log_msg(LOG_ERR, 0, "ARCHIVESZ value too large.\n");
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
{
|
{
|
||||||
processor_info_t pc;
|
processor_cap_t pc;
|
||||||
cpuid_basic_identify(&pc);
|
cpuid_basic_identify(&pc);
|
||||||
if (pc.sse_level == 3 && pc.sse_sub_level == 1) {
|
if (pc.sse_level == 3 && pc.sse_sub_level == 1) {
|
||||||
printf("ssse%d", pc.sse_level);
|
printf("ssse%d", pc.sse_level);
|
||||||
|
|
Loading…
Reference in a new issue