[Buildroot] [PATCH v3 2/2] ext-toolchain-wrapper: fix uboot/linux with hardfp

Yann E. MORIN yann.morin.1998 at free.fr
Sat Jul 20 10:36:23 UTC 2013


Spenser, All,

On 2013-07-19 18:31 -0500, Spenser Gilliland spake thusly:
> The linux kernel and uboot specify -msoft-float in order to prevent floating
> point code from being generated.  This causes a conflict when -mfloat-abi=hard
> or -mfloat-abi options are specified in the wrapper. This patch removes the
> -mfloat-abi option from the options generated by the wrapper only when -msoft-float, -mhard-float or -mfloat-abi are specified by the user.

Please, wrap your commit log at <80 chars.

> 
> Signed-off-by: Spenser Gilliland <spenser at gillilanding.com>

Tested-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Yet a few minor nits below.

Regards,
Yann E. MORIN.

> ---
>  .../toolchain-external/ext-toolchain-wrapper.c     | 37 +++++++++++++++++++---
>  1 file changed, 33 insertions(+), 4 deletions(-)
> 
> diff --git a/toolchain/toolchain-external/ext-toolchain-wrapper.c b/toolchain/toolchain-external/ext-toolchain-wrapper.c
> index dc473be..3b70610 100644
> --- a/toolchain/toolchain-external/ext-toolchain-wrapper.c
> +++ b/toolchain/toolchain-external/ext-toolchain-wrapper.c
[--SNIP--]
> @@ -61,6 +59,25 @@ static char *predef_args[] = {
>  #endif
>  };
>  
> +/* use_default_float_abi - determine if the user is trying to override the
> + * floating point abi.
> + *  return 0 if the user is attempting to override the float abi
> + *  otherwise return 1

I'd state it differently:

  use_default_float_abi - check whether we should pass our own float ABI
  flags, or use the ones provided on the command line
  Returns:
    0: do not add our -float-abi= flag
    1: do add our -mfloat-abi= flags

> + */
> +int use_default_float_abi(int argc, char **argv) {
> +	int arg;
> +	for (arg = 1; arg < argc; arg++) {
> +		if (strncmp(argv[arg],"-mfloat-abi=", sizeof("-mfloat-abi=")/sizeof(char)-1) == 0 ||

I think that we can assume that sizeof(char) == 1 everywhere Buildroot
is expected to run, no? ;-)

> +			strcmp(argv[arg],"-msoft-float") == 0 ||
> +			strcmp(argv[arg],"-mhard-float") == 0 ) {
> +			printf("DETECTED FLOAT ABI\n");
> +			return 0;
> +		}
> +	}
> +	

No spaces/tabs on empty lines.

Otherwise, loogs good, and most importantly, fixes my kernel build!
Hurray! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list