summaryrefslogtreecommitdiff
blob: bc43f7e079a5491f9df16040693852b729eac22a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
From c7dda2667b15cb9cf44856bd0d8efc9321eca354 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyfox@gentoo.org>
Date: Mon, 16 Oct 2017 10:27:32 +0100
Subject: Fix link failure on big-endian platforms.

On powerpc64 tests failed as:

```
    Failed 2/2 subtests
    ===(       2;0  0/?  0/?  0/? )=========================================Can't load '.../Digest-GOST-0.06/blib/arch/auto/Digest/GOST/GOST.so' for
    module Digest::GOST: .../Digest-GOST-0.06/blib/arch/auto/Digest/GOST/GOST.so: undefined symbol: rhash_u32_swap_copy at /usr/lib64/perl5/5.24.3/powerpc64-linux/DynaLoader.pm line 193.
```

rhash_u32_swap_copy() is a function local to this package.
Seems to be used only for big-endian case.

The fix is to add missing 'src/byte_order.c' file.

All tests pass with patch applied.

Bug: https://bugs.gentoo.org/608214
Bug: https://rt.cpan.org/Public/Bug/Display.html?id=120092
Bug: https://github.com/gray/digest-gost/pull/1
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
 GOST.xs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/GOST.xs b/GOST.xs
index 1dfd33c..4ea6f35 100644
--- a/GOST.xs
+++ b/GOST.xs
@@ -6,6 +6,7 @@
 #include "ppport.h"
 
 #include "src/gost.c"
+#include "src/byte_order.c"
 
 static int
 hex_encode (char *dest, const unsigned char *src, int len) {
-- 
2.14.2