Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] circular dependency gcc when adding d use flag
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
equaeghe
l33t
l33t


Joined: 22 Feb 2005
Posts: 659

PostPosted: Mon Mar 10, 2025 11:40 am    Post subject: [solved] circular dependency gcc when adding d use flag Reply with quote

I want to compile a package that requires gcc to be emerged with the d use flag active. It the offers to install all stable versions of gcc with that use flag instead of only the most recent one, which is the one I have installed. When I mask older gcc versions, I get a circular dependency message, without an indication that is clear enough for me what is actually going wrong. Does someone know how to get out of this?

Without masking gcc versions:
Code:
# emerge -v --tree onedrive                                                                                                                                                                                   
                                                                                                                                                                                                                                           
These are the packages that would be merged, in reverse order:
                                                                                                                     
Calculating dependencies... done!
Dependency resolution took 30.38 s (backtrack: 3/20).

[ebuild  N    ~] net-misc/onedrive-2.4.25-r1::joecool-overlay  USE="libnotify -debug" 1,308 KiB
[ebuild   R    ]  sys-devel/gcc-14.2.1_p20241221:14::gentoo  USE="(cxx) d* (default-stack-clash-protection) (default-znow) fortran lto (multilib) nls openmp pgo (pie) sanitize ssp zstd -ada -cet (-custom-cflags) -debug -doc (-fixed-point) -go -graphite -hardened (-ieee-long-double) -jit (-libssp) -modula2 -objc -objc++ -objc-gc (-pch) -rust -systemtap -test (-time64) -valgrind -vanilla -vtv" 0 KiB
[ebuild  NS    ]   sys-devel/gcc-13.3.1_p20241220:13::gentoo [14.2.1_p20241221:14::gentoo] USE="(cxx) d* (default-stack-clash-protection) (default-znow) fortran lto (multilib) nls openmp pgo (pie) sanitize ssp zstd -ada -cet (-custom-cflags) -debug -doc (-fixed-point) -go -graphite -hardened (-ieee-long-double) -jit (-libssp) -modula2 -objc -objc++ -objc-gc (-pch) -systemtap -test -valgrind -vanilla -vtv (-rust%) (-time64%)" 82,573 KiB
[ebuild  NS    ]    sys-devel/gcc-12.4.1_p20241219:12::gentoo [14.2.1_p20241221:14::gentoo] USE="(cxx) d* (default-stack-clash-protection) (default-znow) fortran lto (multilib) nls openmp pgo (pie) sanitize ssp zstd -ada -cet (-custom-cflags) -debug -doc (-fixed-point) -go -graphite -hardened (-ieee-long-double) -jit (-libssp) -objc -objc++ -objc-gc (-pch) -systemtap -test -valgrind -vanilla -vtv (-modula2%) (-rust%) (-time64%)" 78,065 KiB
[ebuild  NS    ]     sys-devel/gcc-11.5.0:11::gentoo [14.2.1_p20241221:14::gentoo] USE="(cxx) d* fortran lto (multilib) nls openmp pgo (pie) sanitize ssp zstd -ada -cet (-custom-cflags) -debug -doc (-fixed-point) -go -graphite -hardened -jit (-libssp) -objc -objc++ -objc-gc (-pch) -systemtap -test -valgrind -vanilla -vtv (-default-stack-clash-protection%*) (-default-znow%*) (-ieee-long-double%) (-modula2%) (-rust%) (-time64%)" 80,487 KiB

Total: 5 packages (1 new, 3 in new slots, 1 reinstall), Size of downloads: 242,431 KiB


When masking all but the last stable gcc branch:
Code:
# emerge -v --tree onedrive                                                     
                                                                                                                                                                                                                                            These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
Dependency resolution took 15.17 s (backtrack: 1/20).



[ebuild  N    ~] net-misc/onedrive-2.4.25-r1::joecool-overlay  USE="libnotify -debug" 1,308 KiB
[nomerge       ] x11-plugins/syncthingtray-1.7.2::Case_Of  USE="kde qml qt6 systemd webengine -script -static-libs"
[nomerge       ]  dev-qt/qtwebengine-6.8.2-r1:6/6.8.2::gentoo  USE="alsa geolocation jumbo-build opengl pulseaudio qml screencast system-icu vaapi vulkan widgets -accessibility -bindist -custom-cflags -designer -kerberos -pdfium -test -webdriver"                                                 
[nomerge       ]   net-libs/nodejs-22.13.1:0/22::gentoo  USE="icu npm snapshot ssl system-icu system-ssl -corepack -debug -doc -inspector (-lto) -pax-kernel -test" CPU_FLAGS_X86="sse2"
[ebuild   R    ]    sys-devel/gcc-14.2.1_p20241221:14::gentoo  USE="(cxx) d* (default-stack-clash-protection) (default-znow) fortran lto (multilib) nls openmp pgo (pie) sanitize ssp zstd -ada -cet (-custom-cflags) -debug -doc (-fixed-point) -go -graphite -hardened (-ieee-long-double) -jit (-libssp) -modula2 -objc -objc++ -objc-gc (-pch) -rust -systemtap -test (-time64) -valgrind -vanilla -vtv" 0 KiB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 1,308 KiB

 * Error: circular dependencies:

(sys-devel/gcc-14.2.1_p20241221:14/14::gentoo, ebuild scheduled for merge) depends on
 (sys-devel/gcc-14.2.1_p20241221:14/14::gentoo, ebuild scheduled for merge) (buildtime)

 * Note that circular dependencies can often be avoided by temporarily
 * disabling USE flags that trigger optional dependencies.


Last edited by equaeghe on Mon Mar 10, 2025 7:36 pm; edited 1 time in total
Back to top
View user's profile Send private message
grknight
Retired Dev
Retired Dev


Joined: 20 Feb 2015
Posts: 2053

PostPosted: Mon Mar 10, 2025 12:36 pm    Post subject: Reply with quote

>=gcc-12 d support is written in D and there is no current bootstrap besides using gcc:11.

Unfortunately, portage's dependency system gets confused by how the slots are handled.
Undo the masks, then set this to straighten it out:
/etc/portage/package.use/gcc-d:
sys-devel/gcc:11 d
>=sys-devel/gcc-14 d

Also, remove any other USE settings for d in make.conf or package.use.
Then do emerge --oneshot sys-devel/gcc:14
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31531
Location: here

PostPosted: Mon Mar 10, 2025 1:24 pm    Post subject: Reply with quote

Moved from Kernel & Hardware to Portage & Programming.
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
equaeghe
l33t
l33t


Joined: 22 Feb 2005
Posts: 659

PostPosted: Mon Mar 10, 2025 7:36 pm    Post subject: Reply with quote

grknight wrote:
>=gcc-12 d support is written in D and there is no current bootstrap besides using gcc:11.

[…]
Undo the masks, then set this to straighten it out:
/etc/portage/package.use/gcc-d:
sys-devel/gcc:11 d
>=sys-devel/gcc-14 d

Also, remove any other USE settings for d in make.conf or package.use.
Then do emerge --oneshot sys-devel/gcc:14

Thanks, while inconvenient, it makes sense; gcc-11 is being emerged right now and then gcc-14 will hopefully follow without any issues.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum