Recent

Author Topic: FPC 3.2.0 or Higher on OpenBSD and Solaris  (Read 3553 times)

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #30 on: July 11, 2019, 12:05:49 pm »
1. I found dirty workaround for Seg Fault on FreeBSD 12.0
Change - https://github.com/Xor-el/CryptoLib4Pascal/blob/3bddc632988503bf9fb6fe6e3b5cb62940c985a1/CryptoLib/src/Utils/Randoms/ClpOSRandom.pas#L329 to
Code: Pascal  [Select]
  1. {$IFDEF CRYPTOLIB_GENERIC_BSD}
  2. procedure arc4random_buf(bytes: PByte; count: LongWord); cdecl;
  3.   external 'libc.so.7' name 'arc4random_buf';
  4. {$ENDIF}
  5.  

2. Now output gives -
Code: Text  [Select]
  1. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests# ./CryptoLibConsole --all --format=plain --progress
  2. An unhandled exception occurred at $000000000028EF8B:
  3. EAccessViolation: Access violation
  4.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  5.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  6.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  7.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  8.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  9.   $00000000005225C9  CLPAESPRNGRANDOM_$$_init_implicit$
  10.  
  11. Heap dump by heaptrc unit of ./CryptoLibConsole
  12. 1124 memory blocks allocated : 239088/239648
  13. 1121 memory blocks freed     : 238896/239456
  14. 3 unfreed memory blocks : 192
  15. True heap size : 1245184 (64 used in System startup)
  16. True free heap : 1244256
  17. Should be : 1244352
  18. Call trace for block $00000008008E2EC0 size 128
  19.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  20.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  21.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  22.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  23.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  24.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  25. Call trace for block $0000000800903700 size 40
  26.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  27.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  28.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  29.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  30.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  31.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  32. Call trace for block $0000000800903600 size 24
  33.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  34.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  35.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  36.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  37.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  38.  

Compiler options -  -B -gl -gh -dDEBUG -Tfreebsd -Mdelphi

@julkas, thanks for looking into this.

From what I can see, the workaround bypassed the seg faults but now we get access violations probably meaning that the method 'arc4random_buf' was not found in the object file libc.so.7 or that object file doesn't exist in FreeBSD.

Can you try changing 'libc.so.7' to 'libc.so.6' and see what happens.

Thanks.

julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #31 on: July 11, 2019, 12:37:46 pm »
libc.so.6 output
Code: Text  [Select]
  1. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests# ./CryptoLibConsole --all --format=plain --progress
  2. An unhandled exception occurred at $000000000028EF8B:
  3. EAccessViolation: Access violation
  4.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  5.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  6.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  7.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  8.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  9.   $00000000005225C9  CLPAESPRNGRANDOM_$$_init_implicit$
  10.  
  11. Heap dump by heaptrc unit of ./CryptoLibConsole
  12. 1124 memory blocks allocated : 239088/239648
  13. 1121 memory blocks freed     : 238896/239456
  14. 3 unfreed memory blocks : 192
  15. True heap size : 1245184 (64 used in System startup)
  16. True free heap : 1244256
  17. Should be : 1244352
  18. Call trace for block $00000008008E2EC0 size 128
  19.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  20.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  21.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  22.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  23.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  24.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  25. Call trace for block $0000000800903700 size 40
  26.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  27.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  28.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  29.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  30.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  31.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  32. Call trace for block $0000000800903600 size 24
  33.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  34.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  35.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  36.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  37.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  38. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests#
  39.  

Code: Text  [Select]
  1. root@freebsd:/lib# ls -al libc*
  2. -r--r--r--  1 root  wheel  1949672 Dec  7  2018 libc.so.7
  3. -r--r--r--  1 root  wheel   206096 Dec  7  2018 libcam.so.7
  4. -r--r--r--  1 root  wheel    31672 Dec  7  2018 libcasper.so.1
  5. -r--r--r--  1 root  wheel    65456 Dec  7  2018 libcrypt.so.5
  6. -r--r--r--  1 root  wheel  3055864 Dec  7  2018 libcrypto.so.111
  7. -r--r--r--  1 root  wheel    73544 Dec  7  2018 libctf.so.2
  8. -r--r--r--  1 root  wheel   117080 Dec  7  2018 libcxxrt.so.1
  9. root@freebsd:/lib#
  10.  
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #32 on: July 11, 2019, 12:41:38 pm »
libc.so.6 output
Code: Text  [Select]
  1. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests# ./CryptoLibConsole --all --format=plain --progress
  2. An unhandled exception occurred at $000000000028EF8B:
  3. EAccessViolation: Access violation
  4.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  5.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  6.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  7.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  8.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  9.   $00000000005225C9  CLPAESPRNGRANDOM_$$_init_implicit$
  10.  
  11. Heap dump by heaptrc unit of ./CryptoLibConsole
  12. 1124 memory blocks allocated : 239088/239648
  13. 1121 memory blocks freed     : 238896/239456
  14. 3 unfreed memory blocks : 192
  15. True heap size : 1245184 (64 used in System startup)
  16. True free heap : 1244256
  17. Should be : 1244352
  18. Call trace for block $00000008008E2EC0 size 128
  19.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  20.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  21.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  22.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  23.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  24.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  25. Call trace for block $0000000800903700 size 40
  26.   $0000000000280201  fpc_raiseexception,  line 165 of ../inc/except.inc
  27.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  28.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  29.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  30.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  31.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  32. Call trace for block $0000000800903600 size 24
  33.   $000000000028EF8B  SIGNALTORUNERROR,  line 55 of x86_64/sighnd.inc
  34.   $0000000000521766  GETBYTES,  line 693 of ../../CryptoLib/src/Utils/Randoms/ClpOSRandom.pas
  35.   $0000000000521FAB  CREATE,  line 189 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  36.   $000000000052194F  BOOT,  line 129 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  37.   $00000000005223F5  createaesprngrandom,  line 257 of ../../CryptoLib/src/Utils/Randoms/ClpAESPRNGRandom.pas
  38. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests#
  39.  

Code: Text  [Select]
  1. root@freebsd:/lib# ls -al libc*
  2. -r--r--r--  1 root  wheel  1949672 Dec  7  2018 libc.so.7
  3. -r--r--r--  1 root  wheel   206096 Dec  7  2018 libcam.so.7
  4. -r--r--r--  1 root  wheel    31672 Dec  7  2018 libcasper.so.1
  5. -r--r--r--  1 root  wheel    65456 Dec  7  2018 libcrypt.so.5
  6. -r--r--r--  1 root  wheel  3055864 Dec  7  2018 libcrypto.so.111
  7. -r--r--r--  1 root  wheel    73544 Dec  7  2018 libctf.so.2
  8. -r--r--r--  1 root  wheel   117080 Dec  7  2018 libcxxrt.so.1
  9. root@freebsd:/lib#
  10.  

Sorry to bother you but can you just try plain 'libc.so'

Thanks.

julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #33 on: July 12, 2019, 11:12:44 am »
Finally. Compiler options:  -O3 -Px86_64 -Tfreebsd -Mdelphi
Output
Code: Text  [Select]
  1. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests# ./CryptoLibConsole --all --format=plain -p
  2. ... Time:12:26.904 N:236 E:0 F:0 I:0
  3.   TTestAsn1SequenceParser Time:00.000 N:16 E:0 F:0 I:0
  4.     00.000  TestDerWriting
  5.     00.000  TestNestedDerWriting
  6.     00.000  TestDerExplicitTaggedSequenceWriting
  7.     00.000  TestDerImplicitTaggedSequenceWriting
  8.     00.000  TestNestedExplicitTagDerWriting
  9.     00.000  TestNestedImplicitTagDerWriting
  10.     00.000  TestBerWriting
  11.     00.000  TestNestedBerDerWriting
  12.     00.000  TestNestedBerWriting
  13.     00.000  TestDerReading
  14.     00.000  TestNestedDerReading
  15.     00.000  TestBerReading
  16.     00.000  TestNestedBerDerReading
  17.     00.000  TestNestedBerReading
  18.     00.000  TestBerExplicitTaggedSequenceWriting
  19.     00.000  TestSequenceWithDerNullReading
  20.   TTestDerApplicationSpecific Time:00.000 N:2 E:0 F:0 I:0
  21.     00.000  TestTaggedObject
  22.     00.000  TestDerApplicationSpecific
  23.   TTestEqualsAndHashCode Time:00.000 N:1 E:0 F:0 I:0
  24.     00.000  TestEqualsAndHashCode
  25.   TTestOID Time:00.001 N:1 E:0 F:0 I:0
  26.     00.001  TestOID
  27.   TTestEnumerated Time:00.000 N:3 E:0 F:0 I:0
  28.     00.000  TestReadingMultipleSingleByteItems
  29.     00.000  TestReadingMultipleDoubleByteItems
  30.     00.000  TestReadingMultipleTripleByteItems
  31.   TTestParsing Time:00.000 N:2 E:0 F:0 I:0
  32.     00.000  TestParsing
  33.     00.000  TestInputStream
  34.   TTestParse Time:00.000 N:1 E:0 F:0 I:0
  35.     00.000  TestParse
  36.   TTestString Time:00.000 N:1 E:0 F:0 I:0
  37.     00.000  TestString
  38.   TTestTag Time:00.001 N:1 E:0 F:0 I:0
  39.     00.001  TestTag
  40.   TTestBigInteger Time:00.279 N:42 E:0 F:0 I:0
  41.     00.000  TestMonoBug81857
  42.     00.000  TestAbs
  43.     00.001  TestAdd
  44.     00.001  TestAnd
  45.     00.002  TestAndNot
  46.     00.001  TestBitCount
  47.     00.001  TestBitLength
  48.     00.017  TestClearBit
  49.     00.000  TestCompareTo
  50.     00.000  TestConstructors
  51.     00.004  TestDivide
  52.     00.005  TestDivideAndRemainder
  53.     00.015  TestFlipBit
  54.     00.014  TestGcd
  55.     00.001  TestGetLowestSetBit
  56.     00.000  TestInt32Value
  57.     00.004  TestIsProbablePrime
  58.     00.000  TestInt64Value
  59.     00.001  TestMax
  60.     00.001  TestMin
  61.     00.003  TestMod
  62.     00.011  TestModInverse
  63.     00.078  TestModPow
  64.     00.003  TestMultiply
  65.     00.000  TestNegate
  66.     00.000  TestNextProbablePrime
  67.     00.001  TestNot
  68.     00.001  TestOr
  69.     00.000  TestPow
  70.     00.001  TestRemainder
  71.     00.005  TestSetBit
  72.     00.029  TestShiftLeft
  73.     00.003  TestShiftRight
  74.     00.000  TestSignValue
  75.     00.006  TestSubtract
  76.     00.000  TestTestBit
  77.     00.027  TestIsEven
  78.     00.009  TestToByteArray
  79.     00.009  TestToByteArrayUnsigned
  80.     00.023  TestToString
  81.     00.000  TestValueOf
  82.     00.002  TestXor
  83.   TTestECAlgorithms Time:24.687 N:4 E:0 F:0 I:0
  84.     00.012  TestSumOfMultiplies
  85.     30.662  TestSumOfMultipliesComplete
  86.     00.021  TestSumOfTwoMultiplies
  87.     53.992  TestSumOfTwoMultipliesComplete
  88.   TTestECPoint Time:16.127 N:7 E:0 F:0 I:0
  89.     00.000  TestPointCreationConsistency
  90.     00.001  TestAdd
  91.     00.000  TestTwice
  92.     00.000  TestThreeTimes
  93.     00.035  TestAllPoints
  94.     00.104  TestAddSubtractMultiplySimple
  95.     15.987  TestAddSubtractMultiplyTwiceEncoding
  96.   TTestSecP256R1Field Time:00.153 N:5 E:0 F:0 I:0
  97.     00.026  TestMultiply1
  98.     00.105  TestMultiply2
  99.     00.019  TestSquare
  100.     00.001  TestSquare_OpenSSLBug
  101.     00.002  TestMultiply_OpenSSLBug
  102.   TTestSecP384R1Field Time:00.269 N:5 E:0 F:0 I:0
  103.     00.037  TestMultiply1
  104.     00.202  TestMultiply2
  105.     00.028  TestSquare
  106.     00.002  TestSquare_CarryBug
  107.     00.000  TestSquare_CarryBug_Reported
  108.   TTestECDsa5 Time:00.094 N:4 E:0 F:0 I:0
  109.     00.000  TestDecode
  110.     00.037  TestECDsa239BitPrime
  111.     00.013  TestECDsa239BitBinary
  112.     00.044  TestGeneration
  113.   TTestEC Time:00.228 N:9 E:0 F:0 I:0
  114.     00.025  TestECDsa192bitPrime
  115.     00.000  TestDecode
  116.     00.038  TestECDsa239bitPrime
  117.     00.007  TestECDsa191bitBinary
  118.     00.012  TestECDsa239bitBinary
  119.     00.010  TestECDsa239bitBinaryAndLargeDigest
  120.     00.043  TestECDsaKeyGen
  121.     00.085  TestECBasicAgreement
  122.     00.008  TestECDHBasicAgreementCofactor
  123.   TTestNamedCurve Time:01.502 N:1 E:0 F:0 I:0
  124.     01.502  TestPerform
  125.   TTestECSchnorr Time:00.271 N:4 E:0 F:0 I:0
  126.     00.079  TestECSchnorrSIPASigningShouldPass
  127.     00.027  TestECSchnorrSIPAVerificationShouldPass
  128.     00.086  TestECSchnorrSIPAVerificationShouldFail
  129.     00.079  TestECSchnorrSIPASigningandVerifyingSecp521R1
  130.   TTestSignerUtilities Time:00.436 N:1 E:0 F:0 I:0
  131.     00.436  TestAlgorithms
  132.   TTestSecureRandom Time:14.507 N:7 E:0 F:0 I:0
  133.     00.237  TestCryptoApi
  134.     00.232  TestOSRandom
  135.     01.521  TestAESPRNG
  136.     01.857  TestAESPRNGRandom
  137.     03.834  TestDefault
  138.     03.382  TestSha1Prng
  139.     03.444  TestSha256Prng
  140.   TTestDigestRandomNumber Time:02.642 N:1 E:0 F:0 I:0
  141.     02.642  TestDigestRandomNumber
  142.   TTestFixedPoint Time:04.986 N:1 E:0 F:0 I:0
  143.     04.986  TestFixedPointMultiplier
  144.   TTestAES Time:00.001 N:7 E:0 F:0 I:0
  145.     00.001  TestOids
  146.     00.000  TestAES_CBC_PKCS7PADDING_WITH_IV
  147.     00.000  TestAES_CBC_NOPADDING_WITH_IV
  148.     00.000  TestAES_CFB_NOPADDING_WITH_IV
  149.     00.000  TestAES_OFB_NOPADDING_WITH_IV
  150.     00.000  TestAES_CTR_NOPADDING_WITH_IV
  151.     00.000  TestAES_ECB_NOPADDING_NO_IV
  152.   TTestBlockCipherVector Time:00.001 N:15 E:0 F:0 I:0
  153.     00.000  TestBlockCipherAESEngine
  154.     00.000  TestBlockCipherAESLightEngine
  155.     00.001  TestBlockCipherBlowfishEngine
  156.     00.000  TestBlockCipherSpeck32Engine
  157.     00.000  TestBlockCipherSpeck48Engine
  158.     00.000  TestBlockCipherSpeck64Engine
  159.     00.000  TestBlockCipherSpeck96Engine
  160.     00.000  TestBlockCipherSpeck128Engine
  161.     00.000  TestBlockCipherSpeck32LegacyEngine
  162.     00.000  TestBlockCipherSpeck48LegacyEngine
  163.     00.000  TestBlockCipherSpeck64LegacyEngine
  164.     00.000  TestBlockCipherSpeck96LegacyEngine
  165.     00.000  TestBlockCipherSpeck128LegacyEngine
  166.     00.000  TestBlockCipherRijndaelEngine
  167.     00.000  TestBadParameters
  168.   TTestBlockCipherMonteCarlo Time:00.212 N:3 E:0 F:0 I:0
  169.     00.061  TestBlockCipherAESEngine
  170.     00.083  TestBlockCipherAESLightEngine
  171.     00.068  TestBlockCipherRijndaelEngine
  172.   TTestAESSIC Time:00.000 N:1 E:0 F:0 I:0
  173.     00.000  TestAESSIC
  174.   TTestSPECK Time:00.001 N:6 E:0 F:0 I:0
  175.     00.000  TestSPECK64_CBC_NOPADDING_WITH_IV
  176.     00.000  TestSPECK128_CBC_NOPADDING_WITH_IV
  177.     00.000  TestSPECK64_CTR_NOPADDING_WITH_IV
  178.     00.000  TestSPECK128_CTR_NOPADDING_WITH_IV
  179.     00.000  TestSPECK64_ECB_NOPADDING_NO_IV
  180.     00.000  TestSPECK128_ECB_NOPADDING_NO_IV
  181.   TTestIESCipher Time:00.237 N:1 E:0 F:0 I:0
  182.     00.237  TestIESCipher_Random_Values_Encryption_Decryption_AES256_CBC_PKCS7PADDING
  183.   TTestMD5HMac Time:00.000 N:1 E:0 F:0 I:0
  184.     00.000  TestMD5HMac
  185.   TTestSHA1HMac Time:00.000 N:1 E:0 F:0 I:0
  186.     00.000  TestSHA1HMac
  187.   TTestSHA224HMac Time:00.000 N:1 E:0 F:0 I:0
  188.     00.000  TestSHA224HMac
  189.   TTestSHA256HMac Time:00.000 N:1 E:0 F:0 I:0
  190.     00.000  TestSHA256HMac
  191.   TTestSHA384HMac Time:00.000 N:1 E:0 F:0 I:0
  192.     00.000  TestSHA384HMac
  193.   TTestSHA512HMac Time:00.000 N:1 E:0 F:0 I:0
  194.     00.000  TestSHA512HMac
  195.   TTestRIPEMD128HMac Time:00.000 N:1 E:0 F:0 I:0
  196.     00.000  TestRIPEMD128HMac
  197.   TTestRIPEMD160HMac Time:00.000 N:1 E:0 F:0 I:0
  198.     00.000  TestRIPEMD160HMac
  199.   TTestHMac Time:00.002 N:1 E:0 F:0 I:0
  200.     00.002  TestHMac
  201.   TTestPkcs5 Time:00.484 N:2 E:0 F:0 I:0
  202.     00.439  TestPkcs5_WITH_SHA1
  203.     00.045  TestPkcs5_WITH_SHA256
  204.   TTestHkdfGenerator Time:00.001 N:1 E:0 F:0 I:0
  205.     00.001  TestHkdfGenerator
  206.   TTestECIES Time:00.425 N:1 E:0 F:0 I:0
  207.     00.425  TestECIES
  208.   TTestPascalCoinECIES Time:00.084 N:2 E:0 F:0 I:0
  209.     00.023  TestPacalCoinECIESDecrypt
  210.     00.061  TestPacalCoinECIESEncryptDecrypt
  211.   TTestECNR Time:00.150 N:4 E:0 F:0 I:0
  212.     00.037  TestECNR239bitPrime
  213.     00.037  TestECNR239bitPrimeSHA1
  214.     00.025  TestECNR192bitPrimeSHA1
  215.     00.051  TestECNR521bitPrimeSHA512
  216.   TTestPadding Time:00.017 N:2 E:0 F:0 I:0
  217.     00.000  TestOutputSizes
  218.     00.017  TestPadding
  219.   TTestDSA Time:34.696 N:15 E:0 F:0 I:0
  220.     04.757  TestDSA
  221.     00.028  TestNONEwithDSA
  222.     00.126  TestNONEwithECDSA239bitPrime
  223.     00.017  TestECDsa239BitBinaryRipeMD160
  224.     00.012  TestECDsa239BitBinarySha1
  225.     00.018  TestECDsa239BitBinarySha224
  226.     00.011  TestECDsa239BitBinarySha256
  227.     00.011  TestECDsa239BitBinarySha384
  228.     00.017  TestECDsa239BitBinarySha512
  229.     00.122  TestGeneration
  230.     00.941  TestDsa2Parameters
  231.     28.572  TestKeyGenerationAll
  232.     00.011  TestParameters
  233.     00.039  TestECDsa239BitPrime
  234.     00.014  TestECDsa239BitBinary
  235.   TTestDeterministicDsa Time:00.121 N:1 E:0 F:0 I:0
  236.     00.121  TestDsaDeterministic
  237.   TTestSalsa20 Time:00.001 N:3 E:0 F:0 I:0
  238.     00.000  TestSalsa20Test1
  239.     00.001  TestSalsa20Test2
  240.     00.000  TestReInitBug
  241.   TTestXSalsa20 Time:00.000 N:1 E:0 F:0 I:0
  242.     00.000  TestXSalsa20Test
  243.   TTestChaCha Time:00.001 N:3 E:0 F:0 I:0
  244.     00.000  TestDoChaChaTest1
  245.     00.001  TestDoChaChaTest2
  246.     00.000  TestReInitBug
  247.   TTestStreamCipherReset Time:00.000 N:1 E:0 F:0 I:0
  248.     00.000  TestReset
  249.   TTestCTS Time:00.000 N:2 E:0 F:0 I:0
  250.     00.000  TestCTS
  251.     00.000  TestExceptions
  252.   TTestX25519 Time:00.172 N:6 E:0 F:0 I:0
  253.     00.021  TestConsistency
  254.     00.042  TestECDH
  255.     00.001  TestECDHVector1
  256.     00.108  TestX25519Iterated
  257.     00.000  TestX25519Vector1
  258.     00.000  TestX25519Vector2
  259.   TTestEd25519 Time:00.041 N:13 E:0 F:0 I:0
  260.     00.010  TestEd25519Consistency
  261.     00.010  TestEd25519ctxConsistency
  262.     00.009  TestEd25519phConsistency
  263.     00.001  TestEd25519Vector1
  264.     00.001  TestEd25519Vector2
  265.     00.002  TestEd25519Vector3
  266.     00.001  TestEd25519Vector1023
  267.     00.001  TestEd25519VectorSHAabc
  268.     00.001  TestEd25519ctxVector1
  269.     00.001  TestEd25519ctxVector2
  270.     00.001  TestEd25519ctxVector3
  271.     00.001  TestEd25519ctxVector4
  272.     00.002  TestEd25519phVector1
  273.   TTestX25519HigherLevel Time:00.004 N:1 E:0 F:0 I:0
  274.     00.004  TestAgreement
  275.   TTestEd25519HigherLevel Time:00.033 N:2 E:0 F:0 I:0
  276.     00.028  TestConsistency
  277.     00.005  TestEd25519
  278.   TTestShortenedDigest Time:00.000 N:1 E:0 F:0 I:0
  279.     00.000  TestShortenedDigest
  280.   TTestKdf1Generator Time:00.001 N:1 E:0 F:0 I:0
  281.     00.001  TestKdf1Generator
  282.   TTestKdf2Generator Time:00.000 N:1 E:0 F:0 I:0
  283.     00.000  TestKdf2Generator
  284.   TTestArgon2 Time:37.554 N:2 E:0 F:0 I:0
  285.     00.002  TestVectorsFromInternetDraft
  286.     37.552  TestOthers
  287.   TTestScrypt Time:06.379 N:2 E:0 F:0 I:0
  288.     06.356  TestVectors
  289.     00.023  TestParameters
  290.   TTestDigest Time:00.000 N:1 E:0 F:0 I:0
  291.     00.000  TestDigests
  292.   TTestDigestUtilities Time:00.009 N:1 E:0 F:0 I:0
  293.     00.009  TestAlgorithms
  294.   TTestDH Time:00.094 N:6 E:0 F:0 I:0
  295.     00.020  TestDHBasic
  296.     00.032  TestDH
  297.     00.034  TestGeneration
  298.     00.002  TestSimpleWithRandom
  299.     00.003  TestGPWithRandom
  300.     00.003  TestParameters
  301.  
  302. Number of run tests: 236
  303. Number of errors:    0
  304. Number of failures:  0
  305.  
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #34 on: July 12, 2019, 11:38:53 am »
Finally. Compiler options:  -O3 -Px86_64 -Tfreebsd -Mdelphi
Output
Code: Text  [Select]
  1. root@freebsd:~/bench/CryptoLib4Pascal/CryptoLib.Tests/FreePascal.Tests# ./CryptoLibConsole --all --format=plain -p
  2. ... Time:12:26.904 N:236 E:0 F:0 I:0
  3.   TTestAsn1SequenceParser Time:00.000 N:16 E:0 F:0 I:0
  4.     00.000  TestDerWriting
  5.     00.000  TestNestedDerWriting
  6.     00.000  TestDerExplicitTaggedSequenceWriting
  7.     00.000  TestDerImplicitTaggedSequenceWriting
  8.     00.000  TestNestedExplicitTagDerWriting
  9.     00.000  TestNestedImplicitTagDerWriting
  10.     00.000  TestBerWriting
  11.     00.000  TestNestedBerDerWriting
  12.     00.000  TestNestedBerWriting
  13.     00.000  TestDerReading
  14.     00.000  TestNestedDerReading
  15.     00.000  TestBerReading
  16.     00.000  TestNestedBerDerReading
  17.     00.000  TestNestedBerReading
  18.     00.000  TestBerExplicitTaggedSequenceWriting
  19.     00.000  TestSequenceWithDerNullReading
  20.   TTestDerApplicationSpecific Time:00.000 N:2 E:0 F:0 I:0
  21.     00.000  TestTaggedObject
  22.     00.000  TestDerApplicationSpecific
  23.   TTestEqualsAndHashCode Time:00.000 N:1 E:0 F:0 I:0
  24.     00.000  TestEqualsAndHashCode
  25.   TTestOID Time:00.001 N:1 E:0 F:0 I:0
  26.     00.001  TestOID
  27.   TTestEnumerated Time:00.000 N:3 E:0 F:0 I:0
  28.     00.000  TestReadingMultipleSingleByteItems
  29.     00.000  TestReadingMultipleDoubleByteItems
  30.     00.000  TestReadingMultipleTripleByteItems
  31.   TTestParsing Time:00.000 N:2 E:0 F:0 I:0
  32.     00.000  TestParsing
  33.     00.000  TestInputStream
  34.   TTestParse Time:00.000 N:1 E:0 F:0 I:0
  35.     00.000  TestParse
  36.   TTestString Time:00.000 N:1 E:0 F:0 I:0
  37.     00.000  TestString
  38.   TTestTag Time:00.001 N:1 E:0 F:0 I:0
  39.     00.001  TestTag
  40.   TTestBigInteger Time:00.279 N:42 E:0 F:0 I:0
  41.     00.000  TestMonoBug81857
  42.     00.000  TestAbs
  43.     00.001  TestAdd
  44.     00.001  TestAnd
  45.     00.002  TestAndNot
  46.     00.001  TestBitCount
  47.     00.001  TestBitLength
  48.     00.017  TestClearBit
  49.     00.000  TestCompareTo
  50.     00.000  TestConstructors
  51.     00.004  TestDivide
  52.     00.005  TestDivideAndRemainder
  53.     00.015  TestFlipBit
  54.     00.014  TestGcd
  55.     00.001  TestGetLowestSetBit
  56.     00.000  TestInt32Value
  57.     00.004  TestIsProbablePrime
  58.     00.000  TestInt64Value
  59.     00.001  TestMax
  60.     00.001  TestMin
  61.     00.003  TestMod
  62.     00.011  TestModInverse
  63.     00.078  TestModPow
  64.     00.003  TestMultiply
  65.     00.000  TestNegate
  66.     00.000  TestNextProbablePrime
  67.     00.001  TestNot
  68.     00.001  TestOr
  69.     00.000  TestPow
  70.     00.001  TestRemainder
  71.     00.005  TestSetBit
  72.     00.029  TestShiftLeft
  73.     00.003  TestShiftRight
  74.     00.000  TestSignValue
  75.     00.006  TestSubtract
  76.     00.000  TestTestBit
  77.     00.027  TestIsEven
  78.     00.009  TestToByteArray
  79.     00.009  TestToByteArrayUnsigned
  80.     00.023  TestToString
  81.     00.000  TestValueOf
  82.     00.002  TestXor
  83.   TTestECAlgorithms Time:24.687 N:4 E:0 F:0 I:0
  84.     00.012  TestSumOfMultiplies
  85.     30.662  TestSumOfMultipliesComplete
  86.     00.021  TestSumOfTwoMultiplies
  87.     53.992  TestSumOfTwoMultipliesComplete
  88.   TTestECPoint Time:16.127 N:7 E:0 F:0 I:0
  89.     00.000  TestPointCreationConsistency
  90.     00.001  TestAdd
  91.     00.000  TestTwice
  92.     00.000  TestThreeTimes
  93.     00.035  TestAllPoints
  94.     00.104  TestAddSubtractMultiplySimple
  95.     15.987  TestAddSubtractMultiplyTwiceEncoding
  96.   TTestSecP256R1Field Time:00.153 N:5 E:0 F:0 I:0
  97.     00.026  TestMultiply1
  98.     00.105  TestMultiply2
  99.     00.019  TestSquare
  100.     00.001  TestSquare_OpenSSLBug
  101.     00.002  TestMultiply_OpenSSLBug
  102.   TTestSecP384R1Field Time:00.269 N:5 E:0 F:0 I:0
  103.     00.037  TestMultiply1
  104.     00.202  TestMultiply2
  105.     00.028  TestSquare
  106.     00.002  TestSquare_CarryBug
  107.     00.000  TestSquare_CarryBug_Reported
  108.   TTestECDsa5 Time:00.094 N:4 E:0 F:0 I:0
  109.     00.000  TestDecode
  110.     00.037  TestECDsa239BitPrime
  111.     00.013  TestECDsa239BitBinary
  112.     00.044  TestGeneration
  113.   TTestEC Time:00.228 N:9 E:0 F:0 I:0
  114.     00.025  TestECDsa192bitPrime
  115.     00.000  TestDecode
  116.     00.038  TestECDsa239bitPrime
  117.     00.007  TestECDsa191bitBinary
  118.     00.012  TestECDsa239bitBinary
  119.     00.010  TestECDsa239bitBinaryAndLargeDigest
  120.     00.043  TestECDsaKeyGen
  121.     00.085  TestECBasicAgreement
  122.     00.008  TestECDHBasicAgreementCofactor
  123.   TTestNamedCurve Time:01.502 N:1 E:0 F:0 I:0
  124.     01.502  TestPerform
  125.   TTestECSchnorr Time:00.271 N:4 E:0 F:0 I:0
  126.     00.079  TestECSchnorrSIPASigningShouldPass
  127.     00.027  TestECSchnorrSIPAVerificationShouldPass
  128.     00.086  TestECSchnorrSIPAVerificationShouldFail
  129.     00.079  TestECSchnorrSIPASigningandVerifyingSecp521R1
  130.   TTestSignerUtilities Time:00.436 N:1 E:0 F:0 I:0
  131.     00.436  TestAlgorithms
  132.   TTestSecureRandom Time:14.507 N:7 E:0 F:0 I:0
  133.     00.237  TestCryptoApi
  134.     00.232  TestOSRandom
  135.     01.521  TestAESPRNG
  136.     01.857  TestAESPRNGRandom
  137.     03.834  TestDefault
  138.     03.382  TestSha1Prng
  139.     03.444  TestSha256Prng
  140.   TTestDigestRandomNumber Time:02.642 N:1 E:0 F:0 I:0
  141.     02.642  TestDigestRandomNumber
  142.   TTestFixedPoint Time:04.986 N:1 E:0 F:0 I:0
  143.     04.986  TestFixedPointMultiplier
  144.   TTestAES Time:00.001 N:7 E:0 F:0 I:0
  145.     00.001  TestOids
  146.     00.000  TestAES_CBC_PKCS7PADDING_WITH_IV
  147.     00.000  TestAES_CBC_NOPADDING_WITH_IV
  148.     00.000  TestAES_CFB_NOPADDING_WITH_IV
  149.     00.000  TestAES_OFB_NOPADDING_WITH_IV
  150.     00.000  TestAES_CTR_NOPADDING_WITH_IV
  151.     00.000  TestAES_ECB_NOPADDING_NO_IV
  152.   TTestBlockCipherVector Time:00.001 N:15 E:0 F:0 I:0
  153.     00.000  TestBlockCipherAESEngine
  154.     00.000  TestBlockCipherAESLightEngine
  155.     00.001  TestBlockCipherBlowfishEngine
  156.     00.000  TestBlockCipherSpeck32Engine
  157.     00.000  TestBlockCipherSpeck48Engine
  158.     00.000  TestBlockCipherSpeck64Engine
  159.     00.000  TestBlockCipherSpeck96Engine
  160.     00.000  TestBlockCipherSpeck128Engine
  161.     00.000  TestBlockCipherSpeck32LegacyEngine
  162.     00.000  TestBlockCipherSpeck48LegacyEngine
  163.     00.000  TestBlockCipherSpeck64LegacyEngine
  164.     00.000  TestBlockCipherSpeck96LegacyEngine
  165.     00.000  TestBlockCipherSpeck128LegacyEngine
  166.     00.000  TestBlockCipherRijndaelEngine
  167.     00.000  TestBadParameters
  168.   TTestBlockCipherMonteCarlo Time:00.212 N:3 E:0 F:0 I:0
  169.     00.061  TestBlockCipherAESEngine
  170.     00.083  TestBlockCipherAESLightEngine
  171.     00.068  TestBlockCipherRijndaelEngine
  172.   TTestAESSIC Time:00.000 N:1 E:0 F:0 I:0
  173.     00.000  TestAESSIC
  174.   TTestSPECK Time:00.001 N:6 E:0 F:0 I:0
  175.     00.000  TestSPECK64_CBC_NOPADDING_WITH_IV
  176.     00.000  TestSPECK128_CBC_NOPADDING_WITH_IV
  177.     00.000  TestSPECK64_CTR_NOPADDING_WITH_IV
  178.     00.000  TestSPECK128_CTR_NOPADDING_WITH_IV
  179.     00.000  TestSPECK64_ECB_NOPADDING_NO_IV
  180.     00.000  TestSPECK128_ECB_NOPADDING_NO_IV
  181.   TTestIESCipher Time:00.237 N:1 E:0 F:0 I:0
  182.     00.237  TestIESCipher_Random_Values_Encryption_Decryption_AES256_CBC_PKCS7PADDING
  183.   TTestMD5HMac Time:00.000 N:1 E:0 F:0 I:0
  184.     00.000  TestMD5HMac
  185.   TTestSHA1HMac Time:00.000 N:1 E:0 F:0 I:0
  186.     00.000  TestSHA1HMac
  187.   TTestSHA224HMac Time:00.000 N:1 E:0 F:0 I:0
  188.     00.000  TestSHA224HMac
  189.   TTestSHA256HMac Time:00.000 N:1 E:0 F:0 I:0
  190.     00.000  TestSHA256HMac
  191.   TTestSHA384HMac Time:00.000 N:1 E:0 F:0 I:0
  192.     00.000  TestSHA384HMac
  193.   TTestSHA512HMac Time:00.000 N:1 E:0 F:0 I:0
  194.     00.000  TestSHA512HMac
  195.   TTestRIPEMD128HMac Time:00.000 N:1 E:0 F:0 I:0
  196.     00.000  TestRIPEMD128HMac
  197.   TTestRIPEMD160HMac Time:00.000 N:1 E:0 F:0 I:0
  198.     00.000  TestRIPEMD160HMac
  199.   TTestHMac Time:00.002 N:1 E:0 F:0 I:0
  200.     00.002  TestHMac
  201.   TTestPkcs5 Time:00.484 N:2 E:0 F:0 I:0
  202.     00.439  TestPkcs5_WITH_SHA1
  203.     00.045  TestPkcs5_WITH_SHA256
  204.   TTestHkdfGenerator Time:00.001 N:1 E:0 F:0 I:0
  205.     00.001  TestHkdfGenerator
  206.   TTestECIES Time:00.425 N:1 E:0 F:0 I:0
  207.     00.425  TestECIES
  208.   TTestPascalCoinECIES Time:00.084 N:2 E:0 F:0 I:0
  209.     00.023  TestPacalCoinECIESDecrypt
  210.     00.061  TestPacalCoinECIESEncryptDecrypt
  211.   TTestECNR Time:00.150 N:4 E:0 F:0 I:0
  212.     00.037  TestECNR239bitPrime
  213.     00.037  TestECNR239bitPrimeSHA1
  214.     00.025  TestECNR192bitPrimeSHA1
  215.     00.051  TestECNR521bitPrimeSHA512
  216.   TTestPadding Time:00.017 N:2 E:0 F:0 I:0
  217.     00.000  TestOutputSizes
  218.     00.017  TestPadding
  219.   TTestDSA Time:34.696 N:15 E:0 F:0 I:0
  220.     04.757  TestDSA
  221.     00.028  TestNONEwithDSA
  222.     00.126  TestNONEwithECDSA239bitPrime
  223.     00.017  TestECDsa239BitBinaryRipeMD160
  224.     00.012  TestECDsa239BitBinarySha1
  225.     00.018  TestECDsa239BitBinarySha224
  226.     00.011  TestECDsa239BitBinarySha256
  227.     00.011  TestECDsa239BitBinarySha384
  228.     00.017  TestECDsa239BitBinarySha512
  229.     00.122  TestGeneration
  230.     00.941  TestDsa2Parameters
  231.     28.572  TestKeyGenerationAll
  232.     00.011  TestParameters
  233.     00.039  TestECDsa239BitPrime
  234.     00.014  TestECDsa239BitBinary
  235.   TTestDeterministicDsa Time:00.121 N:1 E:0 F:0 I:0
  236.     00.121  TestDsaDeterministic
  237.   TTestSalsa20 Time:00.001 N:3 E:0 F:0 I:0
  238.     00.000  TestSalsa20Test1
  239.     00.001  TestSalsa20Test2
  240.     00.000  TestReInitBug
  241.   TTestXSalsa20 Time:00.000 N:1 E:0 F:0 I:0
  242.     00.000  TestXSalsa20Test
  243.   TTestChaCha Time:00.001 N:3 E:0 F:0 I:0
  244.     00.000  TestDoChaChaTest1
  245.     00.001  TestDoChaChaTest2
  246.     00.000  TestReInitBug
  247.   TTestStreamCipherReset Time:00.000 N:1 E:0 F:0 I:0
  248.     00.000  TestReset
  249.   TTestCTS Time:00.000 N:2 E:0 F:0 I:0
  250.     00.000  TestCTS
  251.     00.000  TestExceptions
  252.   TTestX25519 Time:00.172 N:6 E:0 F:0 I:0
  253.     00.021  TestConsistency
  254.     00.042  TestECDH
  255.     00.001  TestECDHVector1
  256.     00.108  TestX25519Iterated
  257.     00.000  TestX25519Vector1
  258.     00.000  TestX25519Vector2
  259.   TTestEd25519 Time:00.041 N:13 E:0 F:0 I:0
  260.     00.010  TestEd25519Consistency
  261.     00.010  TestEd25519ctxConsistency
  262.     00.009  TestEd25519phConsistency
  263.     00.001  TestEd25519Vector1
  264.     00.001  TestEd25519Vector2
  265.     00.002  TestEd25519Vector3
  266.     00.001  TestEd25519Vector1023
  267.     00.001  TestEd25519VectorSHAabc
  268.     00.001  TestEd25519ctxVector1
  269.     00.001  TestEd25519ctxVector2
  270.     00.001  TestEd25519ctxVector3
  271.     00.001  TestEd25519ctxVector4
  272.     00.002  TestEd25519phVector1
  273.   TTestX25519HigherLevel Time:00.004 N:1 E:0 F:0 I:0
  274.     00.004  TestAgreement
  275.   TTestEd25519HigherLevel Time:00.033 N:2 E:0 F:0 I:0
  276.     00.028  TestConsistency
  277.     00.005  TestEd25519
  278.   TTestShortenedDigest Time:00.000 N:1 E:0 F:0 I:0
  279.     00.000  TestShortenedDigest
  280.   TTestKdf1Generator Time:00.001 N:1 E:0 F:0 I:0
  281.     00.001  TestKdf1Generator
  282.   TTestKdf2Generator Time:00.000 N:1 E:0 F:0 I:0
  283.     00.000  TestKdf2Generator
  284.   TTestArgon2 Time:37.554 N:2 E:0 F:0 I:0
  285.     00.002  TestVectorsFromInternetDraft
  286.     37.552  TestOthers
  287.   TTestScrypt Time:06.379 N:2 E:0 F:0 I:0
  288.     06.356  TestVectors
  289.     00.023  TestParameters
  290.   TTestDigest Time:00.000 N:1 E:0 F:0 I:0
  291.     00.000  TestDigests
  292.   TTestDigestUtilities Time:00.009 N:1 E:0 F:0 I:0
  293.     00.009  TestAlgorithms
  294.   TTestDH Time:00.094 N:6 E:0 F:0 I:0
  295.     00.020  TestDHBasic
  296.     00.032  TestDH
  297.     00.034  TestGeneration
  298.     00.002  TestSimpleWithRandom
  299.     00.003  TestGPWithRandom
  300.     00.003  TestParameters
  301.  
  302. Number of run tests: 236
  303. Number of errors:    0
  304. Number of failures:  0
  305.  

Finally, thanks a lot for testing.  :D
How did you get it to work?

julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #35 on: July 12, 2019, 12:02:33 pm »
How did you get it to work?
Workaround - kldload linux and kldload linux64
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #36 on: July 12, 2019, 12:06:25 pm »
How did you get it to work?
Workaround - kldload linux and kldload linux64

sorry but am a little confused.
are the above parameters you passed to the executable via terminal and how did you do it?

forgive my naive question but am quite new to BSD's.
« Last Edit: July 12, 2019, 12:13:15 pm by Xor-el »

julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #37 on: July 12, 2019, 12:15:51 pm »
How did you get it to work?
Workaround - kldload linux and kldload linux64

sorry but am a little confused.
are the above parameters you passed to the executable via terminal and how did you do it?
More info here - https://www.freebsd.org/doc/handbook/linuxemu.html
I don't know if your code runs on FreeBSD 12 without linux compatibility.
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #38 on: July 12, 2019, 12:20:08 pm »
How did you get it to work?
Workaround - kldload linux and kldload linux64

sorry but am a little confused.
are the above parameters you passed to the executable via terminal and how did you do it?
More info here - https://www.freebsd.org/doc/handbook/linuxemu.html
I don't know if your code runs on FreeBSD 12 without linux compatibility.

thanks for the link.
as regarding working without linux compatibility, it should (since it did in OpenBSD) but unfortunately I am unable to take a deep look into it at the moment because I am unable to install Lazarus and FPC in FreeBSD using FPCUPDeluxe.
will keep you updated once am able to.

thanks once again.

trev

  • Full Member
  • ***
  • Posts: 198
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #39 on: July 12, 2019, 03:18:14 pm »
but unfortunately I am unable to take a deep look into it at the moment because I am unable to install Lazarus and FPC in FreeBSD using FPCUPDeluxe.

In FreeBSD 12.0, it's as simple as:

cd /usr/ports/editors/lazarus
make install

This will install Lazarus 2.0.0 and FPC 3.0.4.

If you do not have the /usr/ports directory installed, running "portsnap auto" as root will install it (you need at least 1G of disk space).
o Lazarus v2.1.0 r61775, FPC v3.3.1 r42640, macOS 10.14.6 (with sup update), Xcode 10.3
o Lazarus v2.1.0 r61574, FPC v3.3.1 r42318, FreeBSD 12.0 (Parallels VM)
o Lazarus v2.1.0 r61574, FPC v3.0.4, Ubuntu 18.04 (Parallels VM)

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #40 on: July 12, 2019, 03:56:06 pm »
but unfortunately I am unable to take a deep look into it at the moment because I am unable to install Lazarus and FPC in FreeBSD using FPCUPDeluxe.

In FreeBSD 12.0, it's as simple as:

cd /usr/ports/editors/lazarus
make install

This will install Lazarus 2.0.0 and FPC 3.0.4.

If you do not have the /usr/ports directory installed, running "portsnap auto" as root will install it (you need at least 1G of disk space).

Thanks for this info but unfortunately I need FPC 3.2.0 Fixes and Lazarus fixes.

julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #41 on: July 12, 2019, 05:17:18 pm »
but unfortunately I am unable to take a deep look into it at the moment because I am unable to install Lazarus and FPC in FreeBSD using FPCUPDeluxe.

In FreeBSD 12.0, it's as simple as:

cd /usr/ports/editors/lazarus
make install

This will install Lazarus 2.0.0 and FPC 3.0.4.

If you do not have the /usr/ports directory installed, running "portsnap auto" as root will install it (you need at least 1G of disk space).
Ok. Now real problem. Can you create simple console project in Lazarus and call libc (strlen, ...) function?
« Last Edit: July 12, 2019, 05:31:47 pm by julkas »
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #42 on: July 12, 2019, 05:33:43 pm »
Quote
Ok. Now real problem. Can you create simple console project in Lazarus and call libc function?

Ok, will do.
Currently on mobile at the moment.
« Last Edit: July 12, 2019, 05:40:49 pm by Xor-el »

Xor-el

  • Sr. Member
  • ****
  • Posts: 371
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #43 on: July 12, 2019, 06:31:19 pm »
Quote
Ok. Now real problem. Can you create simple console project in Lazarus and call libc (strlen, ...) function?

attached below is a simple Lazarus console program that calls strlen from libc to fetch the length of a string.


julkas

  • Sr. Member
  • ****
  • Posts: 382
  • KISS principle / Lazarus 2.0.0 / FPC 3.0.4
Re: FPC 3.2.0 or Higher on OpenBSD and Solaris
« Reply #44 on: July 12, 2019, 07:26:30 pm »
Quote
Ok. Now real problem. Can you create simple console project in Lazarus and call libc (strlen, ...) function?

attached below is a simple Lazarus console program that calls strlen from libc to fetch the length of a string.
Can you give kldstat and then dmesg on command line and post results? Thanks.
procedure mulu64(a, b: QWORD; out clo, chi: QWORD); assembler;
asm
  mov rax, a
  mov rdx, b
  mul rdx
  mov [clo], rax
  mov [chi], rdx
end;