On Thu, Jul 19, 2012 at 10:13:01AM +0200, Sascha Hauer wrote: diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S > index ef4caff..422455d 100644 > --- a/arch/arm/lib/findbit.S > +++ b/arch/arm/lib/findbit.S > @@ -22,6 +22,7 @@ > * Purpose : Find a 'zero' bit > * Prototype: int find_first_zero_bit(void *addr, unsigned int maxbit); > */ > +.section .text._find_first_zero_bit_le > ENTRY(_find_first_zero_bit_le) > teq r1, #0 > beq 3f > @@ -43,6 +44,7 @@ ENDPROC(_find_first_zero_bit_le) > * Purpose : Find next 'zero' bit > * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset) > */ > +.section .text._find_next_zero_bit_le > ENTRY(_find_next_zero_bit_le) > teq r1, #0 > beq 3b > @@ -63,6 +65,7 @@ ENDPROC(_find_next_zero_bit_le) > * Purpose : Find a 'one' bit > * Prototype: int find_first_bit(const unsigned long *addr, unsigned int maxbit); > */ > +.section .text._find_first_bit_le > ENTRY(_find_first_bit_le) > teq r1, #0 > beq 3f The changes in this file are completely wrong. These functions use different jump labels (1b, 1f,...) to jump over function borders. The bad thing is that the compiler does not issue any warning, it only generates broken code. Will fix. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox