dot-asm / cryptogams

CRYPTOGAMS distribution repository
Other
56 stars 16 forks source link

ppc8 does not build on powerpc64 big-endian while openssl version works fine #5

Closed shawnl closed 5 years ago

shawnl commented 5 years ago

built with perl aesp8.pl ppc64

hmm.S: Assembler messages: hmm.S:471: Error: invalid conditional option hmm.S:1206: Error: invalid conditional option hmm.S:1835: Error: invalid conditional option hmm.S:2046: Error: invalid conditional option

noloader commented 5 years ago

The ppc-xlate.pl translate program should be in the same directory as aesp8.pl. Use something like the following for big-endian: aesp8.pl linux64be aesp8.s

aesp8.pl linux64 aesp8.s

I believe the Power8 AES gear needs to use *.s, not *.S. The source files are for the assembler, not the compiler.

Also see the following. The first one is your HowTo.

shawnl commented 5 years ago

Yes, the problem was that I wasn't passing "linux" which it needs to do a bunch of compat stuff. closing as invalid.

dot-asm commented 5 years ago

Regarding .s vs. .S. There is no real harm in naming .s file as .S. Compiler will take it through pre-processor, but since there are no pre-processor directives, not in PPC modules that is, it will come out is if it was .s anyway. Reverse is not true, naming .S file as .s is likely to result in unexpected outcome.

As for PPC "flavours". For historical reasons there is no linux64be, but linux64 vs. linux64le. Well, linux64be might work, but it's not actually intentional. Naturally one can say that linux64be should work, but then I would have to ensure that it actually does as intended first. So for now stick with linux64 vs. linux64le. Just in case, there is also linux64v2 that targets big-endian instantiation of latest ELF specification.