Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler errors 汇编程序在Solaris_x86上构建OpenSSL时报告非法助记符_Compiler Errors_Openssl_Solaris - Fatal编程技术网

Compiler errors 汇编程序在Solaris_x86上构建OpenSSL时报告非法助记符

Compiler errors 汇编程序在Solaris_x86上构建OpenSSL时报告非法助记符,compiler-errors,openssl,solaris,Compiler Errors,Openssl,Solaris,我正在为Solaris_x86(5.10)构建OpenSSL 1.1.1d,但在尝试构建aesni-mb-x86_64时,构建过程失败,出现大量“非法助记符”消息 例如: cc -KPIC -xarch=generic64 -xstrconst -Xa -xO5 -xdepend -xbuiltin -DFILIO_H -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -D

我正在为Solaris_x86(5.10)构建OpenSSL 1.1.1d,但在尝试构建aesni-mb-x86_64时,构建过程失败,出现大量“非法助记符”消息

例如:

cc -KPIC -xarch=generic64 -xstrconst -Xa -xO5 -xdepend -xbuiltin -DFILIO_H -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/testdir/openssl/1.1.1d/solaris_x86_10_64/ssl\"" -DENGINESDIR="\"/testdir/openssl/1.1.1d/solaris_x86_10_64/lib/engines-1.1\"" -D_REENTRANT -DNDEBUG  -c -o crypto/aes/aesni-mb-x86_64.o crypto/aes/aesni-mb-x86_64.s
Assembler:
    "crypto/aes/aesni-mb-x86_64.s", line 9 : Illegal mnemonic
    Near line: ".cfi_startproc  "
    "crypto/aes/aesni-mb-x86_64.s", line 9 : Syntax error
    Near line: ".cfi_startproc  "
    "crypto/aes/aesni-mb-x86_64.s", line 11 : Illegal mnemonic
    Near line: ".cfi_def_cfa_register   %rax"
    "crypto/aes/aesni-mb-x86_64.s", line 11 : Syntax error
    Near line: ".cfi_def_cfa_register   %rax"
    "crypto/aes/aesni-mb-x86_64.s", line 13 : Illegal mnemonic
    Near line: ".cfi_offset %rbx,-16"
    "crypto/aes/aesni-mb-x86_64.s", line 13 : Syntax error
    Near line: ".cfi_offset %rbx,-16"
    "crypto/aes/aesni-mb-x86_64.s", line 15 : Illegal mnemonic
    Near line: ".cfi_offset %rbp,-24"
    "crypto/aes/aesni-mb-x86_64.s", line 15 : Syntax error
    Near line: ".cfi_offset %rbp,-24"
    "crypto/aes/aesni-mb-x86_64.s", line 17 : Illegal mnemonic
    Near line: ".cfi_offset %r12,-32"
    "crypto/aes/aesni-mb-x86_64.s", line 17 : Syntax error
    Near line: ".cfi_offset %r12,-32"
    "crypto/aes/aesni-mb-x86_64.s", line 19 : Illegal mnemonic
    Near line: ".cfi_offset %r13,-40"
    "crypto/aes/aesni-mb-x86_64.s", line 19 : Syntax error
    Near line: ".cfi_offset %r13,-40"
    "crypto/aes/aesni-mb-x86_64.s", line 21 : Illegal mnemonic
    Near line: ".cfi_offset %r14,-48"
    "crypto/aes/aesni-mb-x86_64.s", line 21 : Syntax error
    Near line: ".cfi_offset %r14,-48"
    "crypto/aes/aesni-mb-x86_64.s", line 23 : Illegal mnemonic
    Near line: ".cfi_offset %r15,-56"
    "crypto/aes/aesni-mb-x86_64.s", line 23 : Syntax error
    Near line: ".cfi_offset %r15,-56"
    "crypto/aes/aesni-mb-x86_64.s", line 33 : Illegal mnemonic
    Near line: ".cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08"
    "crypto/aes/aesni-mb-x86_64.s", line 33 : Syntax error
    Near line: ".cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08"
    "crypto/aes/aesni-mb-x86_64.s", line 243 : Illegal mnemonic
    Near line: ".cfi_def_cfa    %rax,8"
    "crypto/aes/aesni-mb-x86_64.s", line 243 : Syntax error
    Near line: ".cfi_def_cfa    %rax,8"
    "crypto/aes/aesni-mb-x86_64.s", line 261 : Illegal mnemonic
    Near line: ".cfi_restore    %r15"
    "crypto/aes/aesni-mb-x86_64.s", line 261 : Syntax error
    Near line: ".cfi_restore    %r15"
    "crypto/aes/aesni-mb-x86_64.s", line 263 : Illegal mnemonic
    Near line: ".cfi_restore    %r14"
    "crypto/aes/aesni-mb-x86_64.s", line 263 : Syntax error
    Near line: ".cfi_restore    %r14"
    "crypto/aes/aesni-mb-x86_64.s", line 265 : Illegal mnemonic
    Near line: ".cfi_restore    %r13"
    "crypto/aes/aesni-mb-x86_64.s", line 265 : Syntax error
    Near line: ".cfi_restore    %r13"
    "crypto/aes/aesni-mb-x86_64.s", line 267 : Illegal mnemonic
    Near line: ".cfi_restore    %r12"
    "crypto/aes/aesni-mb-x86_64.s", line 267 : Syntax error
    Near line: ".cfi_restore    %r12"
    "crypto/aes/aesni-mb-x86_64.s", line 269 : Illegal mnemonic
    Near line: ".cfi_restore    %rbp"
    "crypto/aes/aesni-mb-x86_64.s", line 269 : Syntax error
    Near line: ".cfi_restore    %rbp"
    "crypto/aes/aesni-mb-x86_64.s", line 271 : Illegal mnemonic
    Near line: ".cfi_restore    %rbx"
Too many errors - Goodbye
cc: assembler failed for crypto/aes/aesni-mb-x86_64.s
这在许多其他平台上都起到了作用,包括rs6000和hpia64,因此我对一般的构建过程有相当的信心;也就是说,我既不是C/C++开发人员,也不是Solaris专家,对此我感到有点不知所措

我的第一个想法是,从Solaris的编译器切换到
gcc
;但是,这可能会导致其他需要使用OpenSSL且使用本机编译器构建的组件出现问题


我相信OpenSSL 1.1.x使用Perl模块
Text::Template
来格式化
.s
文件,因此该模块可能没有完成它应该做的事情;如果没有更好的建议,那就是我下一步要研究的

我建议您使用最新的Oracle developer studio编译器,您可以在

我们在Solaris 10上的汇编也没有成功,我们将OpenSSL配置如下:

 ./configure shared no-asm solaris-x86-gcc -lrt

这里重要的一点是
no asm
关键字,它使OpenSSL使用C代码而不是汇编代码

您使用的编译器是什么?RS6000&HPIA64不会尝试使用近年来添加到x86 CPU中的AESNI指令-对于正在使用的编译器来说可能太新了。虽然Studio和GCC编译的C代码兼容,但C++一般不是-但是OpenSSL 1.1与OpenSSL 1所构建的现有二进制文件不兼容,所以无论如何,您可能需要重建所有的东西。我不会将1.0和1.1的二进制文件组合在一起。我对编译器的关注是确保与其他编译工具的兼容性。我不想切换到
gcc
来构建OpenSSL,然后发现我闪亮的新libs无法与现有的Perl构建一起工作。@Andrewenle它是Solaris附带的默认编译器-
/usr/ucb/cc
/usr/ucb/cc
实际上也不是Solaris中的编译器,只是在未绑定的编译器周围设置一个包装器来设置一些旧的SunOS 4兼容性标志。