diff options
author | Tudor Florea <tudor.florea@enea.com> | 2015-10-09 22:59:03 +0200 |
---|---|---|
committer | Tudor Florea <tudor.florea@enea.com> | 2015-10-09 22:59:03 +0200 |
commit | 972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch) | |
tree | 97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-support/libgcrypt | |
download | poky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz |
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-support/libgcrypt')
6 files changed, 469 insertions, 0 deletions
diff --git a/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch b/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch new file mode 100644 index 0000000000..82c93bd44d --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch | |||
@@ -0,0 +1,151 @@ | |||
1 | Add and use pkg-config for libgcrypt instead of -config scripts. | ||
2 | |||
3 | Upstream-Status: Rejected [upstream have indicated they don't want a pkg-config dependency] | ||
4 | |||
5 | RP 2014/5/22 | ||
6 | |||
7 | Index: libgcrypt-1.2.4/configure.ac | ||
8 | =================================================================== | ||
9 | --- libgcrypt-1.2.4.orig/configure.ac 2008-03-19 22:14:50.000000000 +0000 | ||
10 | +++ libgcrypt-1.2.4/configure.ac 2008-03-19 22:14:58.000000000 +0000 | ||
11 | @@ -807,6 +807,7 @@ | ||
12 | doc/Makefile | ||
13 | src/Makefile | ||
14 | src/gcrypt.h | ||
15 | +src/libgcrypt.pc | ||
16 | src/libgcrypt-config | ||
17 | tests/Makefile | ||
18 | w32-dll/Makefile | ||
19 | Index: libgcrypt-1.2.4/src/libgcrypt.pc.in | ||
20 | =================================================================== | ||
21 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
22 | +++ libgcrypt-1.2.4/src/libgcrypt.pc.in 2008-03-19 22:14:58.000000000 +0000 | ||
23 | @@ -0,0 +1,33 @@ | ||
24 | +# Process this file with autoconf to produce a pkg-config metadata file. | ||
25 | +# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation | ||
26 | +# Author: Simon Josefsson | ||
27 | +# | ||
28 | +# This file is free software; as a special exception the author gives | ||
29 | +# unlimited permission to copy and/or distribute it, with or without | ||
30 | +# modifications, as long as this notice is preserved. | ||
31 | +# | ||
32 | +# This file is distributed in the hope that it will be useful, but | ||
33 | +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
34 | +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
35 | + | ||
36 | +prefix=@prefix@ | ||
37 | +exec_prefix=@exec_prefix@ | ||
38 | +libdir=@libdir@ | ||
39 | +includedir=@includedir@ | ||
40 | + | ||
41 | +# API info | ||
42 | +api_version=@LIBGCRYPT_CONFIG_API_VERSION@ | ||
43 | +host=@LIBGCRYPT_CONFIG_HOST@ | ||
44 | + | ||
45 | +# Misc information. | ||
46 | +symmetric_ciphers=@LIBGCRYPT_CIPHERS@ | ||
47 | +asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@ | ||
48 | +digests=@LIBGCRYPT_DIGESTS@ | ||
49 | + | ||
50 | +Name: libgcrypt | ||
51 | +Description: GNU crypto library | ||
52 | +URL: http://www.gnupg.org | ||
53 | +Version: @VERSION@ | ||
54 | +Libs: -L${libdir} -lgcrypt | ||
55 | +Libs.private: -L${libdir} -lgpg-error | ||
56 | +Cflags: -I${includedir} | ||
57 | Index: libgcrypt-1.6.1/src/libgcrypt.m4 | ||
58 | =================================================================== | ||
59 | --- libgcrypt-1.6.1.orig/src/libgcrypt.m4 2013-12-16 17:44:32.000000000 +0000 | ||
60 | +++ libgcrypt-1.6.1/src/libgcrypt.m4 2014-05-13 21:25:37.478389833 +0000 | ||
61 | @@ -22,17 +22,7 @@ | ||
62 | dnl | ||
63 | AC_DEFUN([AM_PATH_LIBGCRYPT], | ||
64 | [ AC_REQUIRE([AC_CANONICAL_HOST]) | ||
65 | - AC_ARG_WITH(libgcrypt-prefix, | ||
66 | - AC_HELP_STRING([--with-libgcrypt-prefix=PFX], | ||
67 | - [prefix where LIBGCRYPT is installed (optional)]), | ||
68 | - libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") | ||
69 | - if test x$libgcrypt_config_prefix != x ; then | ||
70 | - if test x${LIBGCRYPT_CONFIG+set} != xset ; then | ||
71 | - LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config | ||
72 | - fi | ||
73 | - fi | ||
74 | |||
75 | - AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) | ||
76 | tmp=ifelse([$1], ,1:1.2.0,$1) | ||
77 | if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | ||
78 | req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` | ||
79 | @@ -42,48 +32,13 @@ | ||
80 | min_libgcrypt_version="$tmp" | ||
81 | fi | ||
82 | |||
83 | - AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) | ||
84 | - ok=no | ||
85 | - if test "$LIBGCRYPT_CONFIG" != "no" ; then | ||
86 | - req_major=`echo $min_libgcrypt_version | \ | ||
87 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` | ||
88 | - req_minor=`echo $min_libgcrypt_version | \ | ||
89 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` | ||
90 | - req_micro=`echo $min_libgcrypt_version | \ | ||
91 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` | ||
92 | - libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` | ||
93 | - major=`echo $libgcrypt_config_version | \ | ||
94 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` | ||
95 | - minor=`echo $libgcrypt_config_version | \ | ||
96 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` | ||
97 | - micro=`echo $libgcrypt_config_version | \ | ||
98 | - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` | ||
99 | - if test "$major" -gt "$req_major"; then | ||
100 | - ok=yes | ||
101 | - else | ||
102 | - if test "$major" -eq "$req_major"; then | ||
103 | - if test "$minor" -gt "$req_minor"; then | ||
104 | - ok=yes | ||
105 | - else | ||
106 | - if test "$minor" -eq "$req_minor"; then | ||
107 | - if test "$micro" -ge "$req_micro"; then | ||
108 | - ok=yes | ||
109 | - fi | ||
110 | - fi | ||
111 | - fi | ||
112 | - fi | ||
113 | - fi | ||
114 | - fi | ||
115 | - if test $ok = yes; then | ||
116 | - AC_MSG_RESULT([yes ($libgcrypt_config_version)]) | ||
117 | - else | ||
118 | - AC_MSG_RESULT(no) | ||
119 | - fi | ||
120 | + PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no]) | ||
121 | + | ||
122 | if test $ok = yes; then | ||
123 | # If we have a recent libgcrypt, we should also check that the | ||
124 | # API is compatible | ||
125 | if test "$req_libgcrypt_api" -gt 0 ; then | ||
126 | - tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` | ||
127 | + tmp=`$PKG_CONFIG --variable=api_version libgcrypt` | ||
128 | if test "$tmp" -gt 0 ; then | ||
129 | AC_MSG_CHECKING([LIBGCRYPT API version]) | ||
130 | if test "$req_libgcrypt_api" -eq "$tmp" ; then | ||
131 | @@ -96,10 +51,8 @@ | ||
132 | fi | ||
133 | fi | ||
134 | if test $ok = yes; then | ||
135 | - LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` | ||
136 | - LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` | ||
137 | ifelse([$2], , :, [$2]) | ||
138 | - libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` | ||
139 | + libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt` | ||
140 | if test x"$libgcrypt_config_host" != xnone ; then | ||
141 | if test x"$libgcrypt_config_host" != x"$host" ; then | ||
142 | AC_MSG_WARN([[ | ||
143 | @@ -113,8 +66,6 @@ | ||
144 | fi | ||
145 | fi | ||
146 | else | ||
147 | - LIBGCRYPT_CFLAGS="" | ||
148 | - LIBGCRYPT_LIBS="" | ||
149 | ifelse([$3], , :, [$3]) | ||
150 | fi | ||
151 | AC_SUBST(LIBGCRYPT_CFLAGS) | ||
diff --git a/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch b/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch new file mode 100644 index 0000000000..56c591f06e --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch | |||
@@ -0,0 +1,71 @@ | |||
1 | tests/bench-slope.c: workaround ICE failure on mips with '-O -g' | ||
2 | |||
3 | Hit a ICE and could reduce it to the following minimal example: | ||
4 | |||
5 | 1. Only the size of array assigned with 2 caused the issue: | ||
6 | $ cat > mipgcc-test.c << END | ||
7 | |||
8 | int main (int argc, char **argv) | ||
9 | { | ||
10 | char *pStrArry[ARRAY_SIZE_MAX] = {"hello"}; | ||
11 | int i = 0; | ||
12 | |||
13 | while(pStrArry[i] && i<ARRAY_SIZE_MAX) | ||
14 | { | ||
15 | printf("%s\n", pStrArry[i]); | ||
16 | i++; | ||
17 | } | ||
18 | |||
19 | return 0; | ||
20 | } | ||
21 | |||
22 | END | ||
23 | |||
24 | 2. Only -O1 and -g on mips caused the issue: | ||
25 | $ mips-poky-linux-gcc -O1 -g -o mipgcc-test mipgcc-test.c | ||
26 | mipgcc-test.c: In function 'main': | ||
27 | mipgcc-test.c:18:1: internal compiler error: in dwarf2out_var_location, at dwarf2out.c:20810 | ||
28 | } | ||
29 | ^ | ||
30 | Please submit a full bug report, | ||
31 | with preprocessed source if appropriate. | ||
32 | See <http://gcc.gnu.org/bugs.html> for instructions | ||
33 | |||
34 | 3. The quick workround is trying to enlarge the size of array with larger | ||
35 | than 2. | ||
36 | |||
37 | 4. File a bug to GNU, but it could not be reproduced on there environment. | ||
38 | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60643 | ||
39 | |||
40 | Upstream-Status: [oe specific] | ||
41 | |||
42 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
43 | --- | ||
44 | tests/bench-slope.c | 4 ++-- | ||
45 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
46 | |||
47 | diff --git a/tests/bench-slope.c b/tests/bench-slope.c | ||
48 | index bd05064..28c2438 100644 | ||
49 | --- a/tests/bench-slope.c | ||
50 | +++ b/tests/bench-slope.c | ||
51 | @@ -1197,7 +1197,7 @@ static struct bench_ops hash_ops = { | ||
52 | }; | ||
53 | |||
54 | |||
55 | -static struct bench_hash_mode hash_modes[] = { | ||
56 | +static struct bench_hash_mode hash_modes[3] = { | ||
57 | {"", &hash_ops}, | ||
58 | {0}, | ||
59 | }; | ||
60 | @@ -1349,7 +1349,7 @@ static struct bench_ops mac_ops = { | ||
61 | }; | ||
62 | |||
63 | |||
64 | -static struct bench_mac_mode mac_modes[] = { | ||
65 | +static struct bench_mac_mode mac_modes[3] = { | ||
66 | {"", &mac_ops}, | ||
67 | {0}, | ||
68 | }; | ||
69 | -- | ||
70 | 1.8.1.2 | ||
71 | |||
diff --git a/meta/recipes-support/libgcrypt/files/libgcrypt-1.6.1-make-arm-asm-fPIC-friendly.patch b/meta/recipes-support/libgcrypt/files/libgcrypt-1.6.1-make-arm-asm-fPIC-friendly.patch new file mode 100644 index 0000000000..340087279d --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/libgcrypt-1.6.1-make-arm-asm-fPIC-friendly.patch | |||
@@ -0,0 +1,169 @@ | |||
1 | Fix ARM assembly when building __PIC__ | ||
2 | |||
3 | * cipher/camellia-arm.S (GET_DATA_POINTER): New. | ||
4 | (_gcry_camellia_arm_encrypt_block): Use GET_DATA_POINTER. | ||
5 | (_gcry_camellia_arm_decrypt_block): Ditto. | ||
6 | * cipher/cast5-arm.S (GET_DATA_POINTER): New. | ||
7 | (_gcry_cast5_arm_encrypt_block, _gcry_cast5_arm_decrypt_block) | ||
8 | (_gcry_cast5_arm_enc_blk2, _gcry_cast5_arm_dec_blk2): Use | ||
9 | GET_DATA_POINTER. | ||
10 | * cipher/rijndael-arm.S (GET_DATA_POINTER): New. | ||
11 | (_gcry_aes_arm_encrypt_block, _gcry_aes_arm_decrypt_block): Use | ||
12 | GET_DATA_POINTER. | ||
13 | -- | ||
14 | |||
15 | Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi> | ||
16 | |||
17 | Upstream-Status: Backport | ||
18 | |||
19 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
20 | --- | ||
21 | cipher/camellia-arm.S | 17 +++++++++++++++-- | ||
22 | cipher/cast5-arm.S | 21 +++++++++++++++++---- | ||
23 | cipher/rijndael-arm.S | 17 +++++++++++++++-- | ||
24 | 3 files changed, 47 insertions(+), 8 deletions(-) | ||
25 | |||
26 | diff --git a/cipher/camellia-arm.S b/cipher/camellia-arm.S | ||
27 | index c30d194..cdeaf8b 100644 | ||
28 | --- a/cipher/camellia-arm.S | ||
29 | +++ b/cipher/camellia-arm.S | ||
30 | @@ -28,6 +28,19 @@ | ||
31 | .syntax unified | ||
32 | .arm | ||
33 | |||
34 | +#ifdef __PIC__ | ||
35 | +# define GET_DATA_POINTER(reg, name, rtmp) \ | ||
36 | + ldr reg, 1f; \ | ||
37 | + ldr rtmp, 2f; \ | ||
38 | + b 3f; \ | ||
39 | + 1: .word _GLOBAL_OFFSET_TABLE_-(3f+8); \ | ||
40 | + 2: .word name(GOT); \ | ||
41 | + 3: add reg, pc, reg; \ | ||
42 | + ldr reg, [reg, rtmp]; | ||
43 | +#else | ||
44 | +# define GET_DATA_POINTER(reg, name, rtmp) ldr reg, =name | ||
45 | +#endif | ||
46 | + | ||
47 | /* struct camellia_ctx: */ | ||
48 | #define key_table 0 | ||
49 | |||
50 | @@ -261,7 +274,7 @@ _gcry_camellia_arm_encrypt_block: | ||
51 | */ | ||
52 | push {%r1, %r4-%r11, %ip, %lr}; | ||
53 | |||
54 | - ldr RTAB1, =.Lcamellia_sp1110; | ||
55 | + GET_DATA_POINTER(RTAB1, .Lcamellia_sp1110, RTAB3); | ||
56 | mov RMASK, #0xff; | ||
57 | add RTAB3, RTAB1, #(2 * 4); | ||
58 | push {%r3}; | ||
59 | @@ -309,7 +322,7 @@ _gcry_camellia_arm_decrypt_block: | ||
60 | */ | ||
61 | push {%r1, %r4-%r11, %ip, %lr}; | ||
62 | |||
63 | - ldr RTAB1, =.Lcamellia_sp1110; | ||
64 | + GET_DATA_POINTER(RTAB1, .Lcamellia_sp1110, RTAB3); | ||
65 | mov RMASK, #0xff; | ||
66 | add RTAB3, RTAB1, #(2 * 4); | ||
67 | mov RMASK, RMASK, lsl#4 /* byte mask */ | ||
68 | diff --git a/cipher/cast5-arm.S b/cipher/cast5-arm.S | ||
69 | index ce7fa93..db96db4 100644 | ||
70 | --- a/cipher/cast5-arm.S | ||
71 | +++ b/cipher/cast5-arm.S | ||
72 | @@ -30,6 +30,19 @@ | ||
73 | |||
74 | .extern _gcry_cast5_s1to4; | ||
75 | |||
76 | +#ifdef __PIC__ | ||
77 | +# define GET_DATA_POINTER(reg, name, rtmp) \ | ||
78 | + ldr reg, 1f; \ | ||
79 | + ldr rtmp, 2f; \ | ||
80 | + b 3f; \ | ||
81 | + 1: .word _GLOBAL_OFFSET_TABLE_-(3f+8); \ | ||
82 | + 2: .word name(GOT); \ | ||
83 | + 3: add reg, pc, reg; \ | ||
84 | + ldr reg, [reg, rtmp]; | ||
85 | +#else | ||
86 | +# define GET_DATA_POINTER(reg, name, rtmp) ldr reg, =name | ||
87 | +#endif | ||
88 | + | ||
89 | /* structure of crypto context */ | ||
90 | #define Km 0 | ||
91 | #define Kr (Km + (16 * 4)) | ||
92 | @@ -260,7 +273,7 @@ _gcry_cast5_arm_encrypt_block: | ||
93 | */ | ||
94 | push {%r1, %r4-%r11, %ip, %lr}; | ||
95 | |||
96 | - ldr Rs1, =_gcry_cast5_s1to4; | ||
97 | + GET_DATA_POINTER(Rs1, _gcry_cast5_s1to4, Rs2); | ||
98 | mov RMASK, #(0xff << 2); | ||
99 | add Rs2, Rs1, #(0x100*4); | ||
100 | add Rs3, Rs1, #(0x100*4*2); | ||
101 | @@ -306,7 +319,7 @@ _gcry_cast5_arm_decrypt_block: | ||
102 | */ | ||
103 | push {%r1, %r4-%r11, %ip, %lr}; | ||
104 | |||
105 | - ldr Rs1, =_gcry_cast5_s1to4; | ||
106 | + GET_DATA_POINTER(Rs1, _gcry_cast5_s1to4, Rs2); | ||
107 | mov RMASK, #(0xff << 2); | ||
108 | add Rs2, Rs1, #(0x100 * 4); | ||
109 | add Rs3, Rs1, #(0x100 * 4 * 2); | ||
110 | @@ -500,7 +513,7 @@ _gcry_cast5_arm_enc_blk2: | ||
111 | */ | ||
112 | push {%lr}; | ||
113 | |||
114 | - ldr Rs1, =_gcry_cast5_s1to4; | ||
115 | + GET_DATA_POINTER(Rs1, _gcry_cast5_s1to4, Rs2); | ||
116 | mov RMASK, #(0xff << 2); | ||
117 | add Rs2, Rs1, #(0x100 * 4); | ||
118 | |||
119 | @@ -631,7 +644,7 @@ _gcry_cast5_arm_dec_blk2: | ||
120 | * [RR0, RL0], [RR1, RL1]: dst | ||
121 | */ | ||
122 | |||
123 | - ldr Rs1, =_gcry_cast5_s1to4; | ||
124 | + GET_DATA_POINTER(Rs1, _gcry_cast5_s1to4, Rs2); | ||
125 | mov RMASK, #(0xff << 2); | ||
126 | add Rs2, Rs1, #(0x100 * 4); | ||
127 | |||
128 | diff --git a/cipher/rijndael-arm.S b/cipher/rijndael-arm.S | ||
129 | index 22c350c..421c3b4 100644 | ||
130 | --- a/cipher/rijndael-arm.S | ||
131 | +++ b/cipher/rijndael-arm.S | ||
132 | @@ -28,6 +28,19 @@ | ||
133 | .syntax unified | ||
134 | .arm | ||
135 | |||
136 | +#ifdef __PIC__ | ||
137 | +# define GET_DATA_POINTER(reg, name, rtmp) \ | ||
138 | + ldr reg, 1f; \ | ||
139 | + ldr rtmp, 2f; \ | ||
140 | + b 3f; \ | ||
141 | + 1: .word _GLOBAL_OFFSET_TABLE_-(3f+8); \ | ||
142 | + 2: .word name(GOT); \ | ||
143 | + 3: add reg, pc, reg; \ | ||
144 | + ldr reg, [reg, rtmp]; | ||
145 | +#else | ||
146 | +# define GET_DATA_POINTER(reg, name, rtmp) ldr reg, =name | ||
147 | +#endif | ||
148 | + | ||
149 | /* register macros */ | ||
150 | #define CTX %r0 | ||
151 | #define RTAB %lr | ||
152 | @@ -249,7 +262,7 @@ _gcry_aes_arm_encrypt_block: | ||
153 | 2: | ||
154 | sub %sp, #16; | ||
155 | |||
156 | - ldr RTAB, =.LtableE0; | ||
157 | + GET_DATA_POINTER(RTAB, .LtableE0, RMASK); | ||
158 | |||
159 | str %r1, [%sp, #4]; /* dst */ | ||
160 | mov RMASK, #0xff; | ||
161 | @@ -503,7 +516,7 @@ _gcry_aes_arm_decrypt_block: | ||
162 | 2: | ||
163 | sub %sp, #16; | ||
164 | |||
165 | - ldr RTAB, =.LtableD0; | ||
166 | + GET_DATA_POINTER(RTAB, .LtableD0, RMASK); | ||
167 | |||
168 | mov RMASK, #0xff; | ||
169 | str %r1, [%sp, #4]; /* dst */ | ||
diff --git a/meta/recipes-support/libgcrypt/files/libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch b/meta/recipes-support/libgcrypt/files/libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch new file mode 100644 index 0000000000..a3e540369c --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | libgcrypt: fix building error with '-O2' in sysroot path | ||
4 | |||
5 | Characters like '-O2' or '-Ofast' will be replaced by '-O1' when compiling cipher. | ||
6 | If we are cross compiling libgcrypt and sysroot contains such characters, we would | ||
7 | get compile errors because the sysroot path has been modified. | ||
8 | |||
9 | Fix this by adding blank spaces before and after the original matching pattern in the | ||
10 | sed command. | ||
11 | |||
12 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
13 | --- | ||
14 | cipher/Makefile.am | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/cipher/Makefile.am b/cipher/Makefile.am | ||
18 | index 76cdc96..9a89792 100644 | ||
19 | --- a/cipher/Makefile.am | ||
20 | +++ b/cipher/Makefile.am | ||
21 | @@ -69,7 +69,7 @@ rfc2268.c \ | ||
22 | camellia.c camellia.h camellia-glue.c | ||
23 | |||
24 | if ENABLE_O_FLAG_MUNGING | ||
25 | -o_flag_munging = sed -e 's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g' | ||
26 | +o_flag_munging = sed -e 's/ -O\([2-9s][2-9s]*\) / -O1 /' -e 's/ -Ofast / -O1 /g' | ||
27 | else | ||
28 | o_flag_munging = cat | ||
29 | endif | ||
30 | -- | ||
31 | 1.7.9.5 | ||
32 | |||
diff --git a/meta/recipes-support/libgcrypt/libgcrypt.inc b/meta/recipes-support/libgcrypt/libgcrypt.inc new file mode 100644 index 0000000000..43e0291a7b --- /dev/null +++ b/meta/recipes-support/libgcrypt/libgcrypt.inc | |||
@@ -0,0 +1,40 @@ | |||
1 | SUMMARY = "General purpose cryptographic library based on the code from GnuPG" | ||
2 | HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" | ||
3 | BUGTRACKER = "https://bugs.g10code.com/gnupg/index" | ||
4 | SECTION = "libs" | ||
5 | |||
6 | # helper program gcryptrnd and getrandom are under GPL, rest LGPL | ||
7 | LICENSE = "GPLv2+ & LGPLv2.1+" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
9 | file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff" | ||
10 | |||
11 | DEPENDS = "libgpg-error libcap" | ||
12 | |||
13 | SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \ | ||
14 | file://add-pkgconfig-support.patch \ | ||
15 | file://libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ | ||
16 | file://fix-ICE-failure-on-mips-with-option-O-and-g.patch \ | ||
17 | " | ||
18 | |||
19 | BINCONFIG = "${bindir}/libgcrypt-config" | ||
20 | |||
21 | inherit autotools-brokensep texinfo binconfig-disabled pkgconfig | ||
22 | |||
23 | EXTRA_OECONF = "--disable-asm --with-capabilities" | ||
24 | |||
25 | do_configure_prepend () { | ||
26 | # Else this could be used in preference to the one in aclocal-copy | ||
27 | rm -f ${S}/m4/gpg-error.m4 | ||
28 | } | ||
29 | |||
30 | # libgcrypt.pc is added locally and thus installed here | ||
31 | do_install_append() { | ||
32 | install -d ${D}/${libdir}/pkgconfig | ||
33 | install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ | ||
34 | } | ||
35 | |||
36 | FILES_${PN}-dev += "${bindir}/dumpsexp ${bindir}/hmac256" | ||
37 | |||
38 | ARM_INSTRUCTION_SET = "arm" | ||
39 | |||
40 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb new file mode 100644 index 0000000000..903ed661ed --- /dev/null +++ b/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb | |||
@@ -0,0 +1,6 @@ | |||
1 | require libgcrypt.inc | ||
2 | |||
3 | SRC_URI += "file://libgcrypt-1.6.1-make-arm-asm-fPIC-friendly.patch" | ||
4 | |||
5 | SRC_URI[md5sum] = "d155aa1b06fa879175922ba28f6a6509" | ||
6 | SRC_URI[sha256sum] = "7c1007197bef49c3b8740cf6af8b4eb4eb74c7a69796ebcf555d928c287255de" | ||