Skip to contentSkip to conversation

latent_entropy: fix ARM build error on earlier gcc

PATCH In review Kees Cook 2 participants 3 messages Dec 16, 2016 Gcc plugins

lore
Share & tools
lore

Kees Cook

author
#0 lore raw

PATCH 1/1 latent_entropy: fix ARM build error on earlier gcc

This fixes build errors seen on gcc-4.9.3 or gcc-5.3.1 for an ARM:

arm-soc/init/initramfs.c: In function 'error':
arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
}
^
(insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])

        (rotatert:SI (reg:SI 116 [ local_entropy.243 ])
            (const_int -30 [0xffffffffffffffe2]))) -1
     (nil))

Patch from PaX Team <[email protected]>

---
 scripts/gcc-plugins/latent_entropy_plugin.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
scripts/gcc-plugins/latent_entropy_plugin.c +2 -2
index ff1939b804ae..eb1964084ccd 100644
@@ -328,9 +328,9 @@ static enum tree_code get_op(tree *rhs)
 			op = LROTATE_EXPR;
 			/*
 			 * This code limits the value of random_const to
-			 * the size of a wide int for the rotation
+			 * the size of a long for the rotation
 			 */
-			random_const &= HOST_BITS_PER_WIDE_INT - 1;
+			random_const %= TYPE_PRECISION(long_unsigned_type_node);
 			break;
 		}
 
Signature · 6 lines
2.7.4


-- 
Kees Cook
Nexus Security
#1 lore raw
Quoted 11 lines · Kees Cook

This fixes build errors seen on gcc-4.9.3 or gcc-5.3.1 for an ARM:

arm-soc/init/initramfs.c: In function 'error':
arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
}
^
(insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])

        (rotatert:SI (reg:SI 116 [ local_entropy.243 ])
            (const_int -30 [0xffffffffffffffe2]))) -1
     (nil))
Quoted 5 lines

Patch from PaX Team <[email protected]>

Cc [email protected] perhaps?
author
#2 lore raw
Quoted 13 lines · PaX Team
Quoted 11 lines · Kees Cook

This fixes build errors seen on gcc-4.9.3 or gcc-5.3.1 for an ARM:

arm-soc/init/initramfs.c: In function 'error':
arm-soc/init/initramfs.c:50:1: error: unrecognizable insn:
}
^
(insn 26 25 27 5 (set (reg:SI 111 [ local_entropy.243 ])

        (rotatert:SI (reg:SI 116 [ local_entropy.243 ])
            (const_int -30 [0xffffffffffffffe2]))) -1
     (nil))
Quoted 7 lines
Quoted 5 lines

Patch from PaX Team <[email protected]>

Cc [email protected] perhaps?

Ah yes, good catch.

-Kees

Signature · 2 lines
Kees Cook
Nexus Security