[GCC] arm: Fix inclusion of arm-mlib.h header more than once (pr108505).

Message ID 0848d46d-cf28-4b97-bdb8-fda36ee53fea@AZ-NEU-EX04.Arm.com
State Not Applicable
Headers
Series [GCC] arm: Fix inclusion of arm-mlib.h header more than once (pr108505). |

Checks

Context Check Description
snail/gcc-patch-check fail Git am fail log

Commit Message

Srinath Parvathaneni Jan. 24, 2023, 9:55 a.m. UTC
  Hello,

The patch fixes the build issue for arm-none-eabi target configured with
--with-multilib-list=aprofile,rmprofile, in which case the header file
arm/arm-mlib.h is being included more than once and the toolchain build
is failing (PR108505).

Regression tested on arm-none-eabi target and found no regressions.

Ok for master?

Regards,
Srinath.

gcc/ChangeLog:

2023-01-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

        PR target/108505
        * config.gcc (tm_file): Move the variable out of loop.


###############     Attachment also inlined for ease of reply    ###############
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 771bd35e803b47e79c0a62eab8f4845e9bbf96ef..d828223c16d3076da0ab6582dfaf59ad657ea438 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -4350,7 +4350,6 @@ case "${target}" in
 					case ${arm_multilib} in
 					aprofile|rmprofile)
 						tmake_profile_file="arm/t-multilib"
-						tm_file="$tm_file arm/arm-mlib.h"
 						;;
 					@*)
 						ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
@@ -4389,6 +4388,7 @@ case "${target}" in
 				# through to the multilib selector
 				with_float="soft"
 				tmake_file="${tmake_file} ${tmake_profile_file}"
+				tm_file="$tm_file arm/arm-mlib.h"
 				TM_MULTILIB_CONFIG="$with_multilib_list"
 			fi
 		fi
  

Comments

Kyrylo Tkachov Jan. 24, 2023, 9:56 a.m. UTC | #1
> -----Original Message-----
> From: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
> Sent: Tuesday, January 24, 2023 9:55 AM
> To: gcc-patches@gcc.gnu.org
> Cc: nd <nd@arm.com>; Richard Earnshaw <Richard.Earnshaw@arm.com>;
> Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>
> Subject: [PATCH][GCC] arm: Fix inclusion of arm-mlib.h header more than
> once (pr108505).
> 
> Hello,
> 
> The patch fixes the build issue for arm-none-eabi target configured with
> --with-multilib-list=aprofile,rmprofile, in which case the header file
> arm/arm-mlib.h is being included more than once and the toolchain build
> is failing (PR108505).
> 
> Regression tested on arm-none-eabi target and found no regressions.
> 
> Ok for master?
> 

Ok.
Thanks,
Kyrill

> Regards,
> Srinath.
> 
> gcc/ChangeLog:
> 
> 2023-01-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
> 
>         PR target/108505
>         * config.gcc (tm_file): Move the variable out of loop.
> 
> 
> ###############     Attachment also inlined for ease of reply
> ###############
> 
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index
> 771bd35e803b47e79c0a62eab8f4845e9bbf96ef..d828223c16d3076da0ab658
> 2dfaf59ad657ea438 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -4350,7 +4350,6 @@ case "${target}" in
>  					case ${arm_multilib} in
>  					aprofile|rmprofile)
>  						tmake_profile_file="arm/t-
> multilib"
> -						tm_file="$tm_file arm/arm-
> mlib.h"
>  						;;
>  					@*)
>  						ml=`echo "X$arm_multilib" |
> sed '1s,^X@,,'`
> @@ -4389,6 +4388,7 @@ case "${target}" in
>  				# through to the multilib selector
>  				with_float="soft"
>  				tmake_file="${tmake_file}
> ${tmake_profile_file}"
> +				tm_file="$tm_file arm/arm-mlib.h"
>  				TM_MULTILIB_CONFIG="$with_multilib_list"
>  			fi
>  		fi
> 
>
  
Richard Earnshaw Jan. 24, 2023, 10:48 a.m. UTC | #2
On 24/01/2023 09:55, Srinath Parvathaneni via Gcc-patches wrote:
> Hello,
> 
> The patch fixes the build issue for arm-none-eabi target configured with
> --with-multilib-list=aprofile,rmprofile, in which case the header file
> arm/arm-mlib.h is being included more than once and the toolchain build
> is failing (PR108505).
> 
> Regression tested on arm-none-eabi target and found no regressions.
> 
> Ok for master?
> 
> Regards,
> Srinath.
> 
> gcc/ChangeLog:
> 
> 2023-01-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
> 
>          PR target/108505
>          * config.gcc (tm_file): Move the variable out of loop.
> 
> 
> ###############     Attachment also inlined for ease of reply    ###############
> 
>

A more robust fix would be:


> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index 771bd35e803b47e79c0a62eab8f4845e9bbf96ef..d828223c16d3076da0ab6582dfaf59ad657ea438 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -4350,7 +4350,6 @@ case "${target}" in
>   					case ${arm_multilib} in
>   					aprofile|rmprofile)
>   						tmake_profile_file="arm/t-multilib"
> -						tm_file="$tm_file arm/arm-mlib.h"
						tm_mlib_file="arm/arm-mlib.h"
>   						;;
>   					@*)
>   						ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
> @@ -4389,6 +4388,7 @@ case "${target}" in
>   				# through to the multilib selector
>   				with_float="soft"
>   				tmake_file="${tmake_file} ${tmake_profile_file}"
> +				tm_file="$tm_file arm/arm-mlib.h"
				tm_file="$tm_file $tm_mlib_file"

>   				TM_MULTILIB_CONFIG="$with_multilib_list"
>   			fi
>   		fi
> 
> 
> 

Then if we ever need to add additional alternative multilib variants we 
can control the selection separately.

R.
  

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 771bd35e803b47e79c0a62eab8f4845e9bbf96ef..d828223c16d3076da0ab6582dfaf59ad657ea438 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -4350,7 +4350,6 @@  case "${target}" in
 					case ${arm_multilib} in
 					aprofile|rmprofile)
 						tmake_profile_file="arm/t-multilib"
-						tm_file="$tm_file arm/arm-mlib.h"
 						;;
 					@*)
 						ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
@@ -4389,6 +4388,7 @@  case "${target}" in
 				# through to the multilib selector
 				with_float="soft"
 				tmake_file="${tmake_file} ${tmake_profile_file}"
+				tm_file="$tm_file arm/arm-mlib.h"
 				TM_MULTILIB_CONFIG="$with_multilib_list"
 			fi
 		fi