[ipxe-devel] [PATCH 1/1] build: Fix building with gcc 8.2

Michael Brown mcb30 at ipxe.org
Sun Aug 26 21:47:25 UTC 2018


On 26/08/18 11:45, Heinrich Schuchardt wrote:
> diff --git a/src/include/errno.h b/src/include/errno.h
> index e80bf9ca..0294a990 100644
> --- a/src/include/errno.h
> +++ b/src/include/errno.h
> @@ -262,10 +262,10 @@ static inline void eplatform_discard ( int dummy __unused, ... ) {}
>   		  ".align 8\n\t"					\
>   		  "\n1:\n\t"						\
>   		  ".long ( 4f - 1b )\n\t"				\
> -		  ".long %a0\n\t"					\
> +		  ".long %0\n\t"					\
>   		  ".long ( 2f - 1b )\n\t"				\
>   		  ".long ( 3f - 1b )\n\t"				\
> -		  ".long %a1\n\t"					\
> +		  ".long %1\n\t"					\
>   		  "\n2:\t.asciz \"" __einfo_desc ( einfo ) "\"\n\t"	\
>   		  "\n3:\t.asciz \"" __FILE__ "\"\n\t"			\
>   		  ".align 8\n\t"					\

This patch results in an incorrect assembler expression for the standard 
x86 build, e.g.

    .long  $1216

instead of the needed

    .long  1216

You can observe the effects using "make bin/errors" and examining the 
resulting file.  With your patch, all error numbers and line numbers are 
zero.

I'm happy to ditch ARM gcc 4.8 support if it makes it cleaner to support 
current versions of gcc, but the patch must still work for the x86 build.

Michael



More information about the ipxe-devel mailing list