diff mbox series

[scarthgap] gcc-target.inc: Add RPROVIDES to resolve gcc-symlinks & lib32-gcc-symlinks file conflicts

Message ID 20240919102241.178655-1-Deepthi.Hemraj@windriver.com
State Rejected
Delegated to: Steve Sakoman
Headers show
Series [scarthgap] gcc-target.inc: Add RPROVIDES to resolve gcc-symlinks & lib32-gcc-symlinks file conflicts | expand

Commit Message

Hemraj, Deepthi Sept. 19, 2024, 10:22 a.m. UTC
From: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>

Enabling multilib support and adding both lib32-gcc-symlinks and gcc-symlinks
to the image installation results in a conflict between
gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32.
Following error occurs because of the conflict:
"file /usr/bin/gcc conflicts between attempted installs of gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32"

The conflict occurs because both packages try to install files in the same location,
causing installation errors during the build process.

By using the RPROVIDES, gcc package can satisfy the dependencies for both `gcc-symlinks` and `lib32-gcc-symlinks`.
This prevents the conflict, while ensuring that both 32-bit and 64-bit symlink packages can co-exist.

Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
---
 meta/recipes-devtools/gcc/gcc-target.inc | 1 +
 1 file changed, 1 insertion(+)

Comments

Richard Purdie Sept. 19, 2024, 10:30 a.m. UTC | #1
On Thu, 2024-09-19 at 03:22 -0700, Hemraj, Deepthi via lists.openembedded.org wrote:
> From: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
> 
> Enabling multilib support and adding both lib32-gcc-symlinks and gcc-symlinks
> to the image installation results in a conflict between
> gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32.
> Following error occurs because of the conflict:
> "file /usr/bin/gcc conflicts between attempted installs of gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32"
> 
> The conflict occurs because both packages try to install files in the same location,
> causing installation errors during the build process.
> 
> By using the RPROVIDES, gcc package can satisfy the dependencies for both `gcc-symlinks` and `lib32-gcc-symlinks`.
> This prevents the conflict, while ensuring that both 32-bit and 64-bit symlink packages can co-exist.
> 
> Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
> ---
>  meta/recipes-devtools/gcc/gcc-target.inc | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
> index 7dac3ef422..f31ea15740 100644
> --- a/meta/recipes-devtools/gcc/gcc-target.inc
> +++ b/meta/recipes-devtools/gcc/gcc-target.inc
> @@ -27,6 +27,7 @@ EXTRA_OECONF:append:x86-64:class-target = " ${@get_gcc_x86_64_arch_setting(bb, d
>  export gcc_cv_objdump = "${TARGET_PREFIX}objdump"
>  
>  EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
> +RPROVIDES:${PN} += "gcc-symlinks lib32-gcc-symlinks"
>  
>  PACKAGES = "\
>      ${PN} ${PN}-plugins ${PN}-symlinks \
> 

This isn't correct. What if my multilib was "lib64" or something else?
This definitely can't be hardcoded like that.

Cheers,

Richard
Randy MacLeod Sept. 19, 2024, 9:56 p.m. UTC | #2
On 2024-09-19 6:30 a.m., Richard Purdie wrote:
> On Thu, 2024-09-19 at 03:22 -0700, Hemraj, Deepthi via lists.openembedded.org wrote:
>> From: Deepthi Hemraj<Deepthi.Hemraj@windriver.com>
>>
>> Enabling multilib support and adding both lib32-gcc-symlinks and gcc-symlinks
>> to the image installation results in a conflict between
>> gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32.
>> Following error occurs because of the conflict:
>> "file /usr/bin/gcc conflicts between attempted installs of gcc-symlinks-13.3.0-r0.corei7_64 and lib32-gcc-symlinks-13.3.0-r0.corei7_32"
>>
>> The conflict occurs because both packages try to install files in the same location,
>> causing installation errors during the build process.
>>
>> By using the RPROVIDES, gcc package can satisfy the dependencies for both `gcc-symlinks` and `lib32-gcc-symlinks`.
>> This prevents the conflict, while ensuring that both 32-bit and 64-bit symlink packages can co-exist.
>>
>> Signed-off-by: Deepthi Hemraj<Deepthi.Hemraj@windriver.com>
>> ---
>>   meta/recipes-devtools/gcc/gcc-target.inc | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
>> index 7dac3ef422..f31ea15740 100644
>> --- a/meta/recipes-devtools/gcc/gcc-target.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-target.inc
>> @@ -27,6 +27,7 @@ EXTRA_OECONF:append:x86-64:class-target = " ${@get_gcc_x86_64_arch_setting(bb, d
>>   export gcc_cv_objdump = "${TARGET_PREFIX}objdump"
>>   
>>   EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
>> +RPROVIDES:${PN} += "gcc-symlinks lib32-gcc-symlinks"
>>   
>>   PACKAGES = "\
>>       ${PN} ${PN}-plugins ${PN}-symlinks \
>>
> This isn't correct. What if my multilib was "lib64" or something else?
> This definitely can't be hardcoded like that.


I should have caught that when Deepthi showed me the draft.

Also, please submit to the master branch first, then backport to scarthgap
if the commit is merged to master.

../Randy


>
> Cheers,
>
> Richard
diff mbox series

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
index 7dac3ef422..f31ea15740 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -27,6 +27,7 @@  EXTRA_OECONF:append:x86-64:class-target = " ${@get_gcc_x86_64_arch_setting(bb, d
 export gcc_cv_objdump = "${TARGET_PREFIX}objdump"
 
 EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
+RPROVIDES:${PN} += "gcc-symlinks lib32-gcc-symlinks"
 
 PACKAGES = "\
     ${PN} ${PN}-plugins ${PN}-symlinks \