Skip to Content.
Sympa Menu

sm-grimoire-bugs - [SM-Grimoire-Bugs] [Bug 15166] gcc -> gmp -> g++ -> gcc circular dependency

sm-grimoire-bugs AT lists.ibiblio.org

Subject: SourceMage Grimoire Bug List

List archive

Chronological Thread  
  • From: bugzilla-daemon AT bugs.sourcemage.org
  • To: sm-grimoire-bugs AT lists.ibiblio.org
  • Subject: [SM-Grimoire-Bugs] [Bug 15166] gcc -> gmp -> g++ -> gcc circular dependency
  • Date: 6 Sep 2009 21:02:00 -0000

http://bugs.sourcemage.org/show_bug.cgi?id=15166


Remko van der Vossen <wich AT sourcemage.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |wich AT sourcemage.org




--- Comment #10 from Remko van der Vossen <wich AT sourcemage.org> 2009-09-06
16:01:56 ---
This issue is now solved for switches of archspecs with commits:
018decc3a6288830fa982c3a8f1605f21c2c02cd
a2650fdda362f3c3ed1bcc52c3cfa9ff40644d7d
39e31cffff9f26c0146fe2907a419bef9b4f5695
559706c70a4bced2368bc8a27b66c74a27f23986

When switching archspecs the proper way to update is first recompile gmp and
mpfr with the new archspec and then recompiling gcc and g++. If on the other
hand gcc is recompiled with the new archspec while gmp and mpfr are still
built
with the old archspec you will be left with a non-working compiler.

gmp, mpfr and gcc now save the archspec they were built with in an EXPORTed
${SPELL}_BUILD_ARCH variables. gcc checks the BUILD_ARCHs of gmp and mpfr, if
either is different that the currently selected archspec, then they are
force_depended. I force_depended both even if just one of the two has a
different archspec just to be on the safe side, this may be overkill, but I'd
rather it just works now, we can finetune later. g++ does the same, but
aditionally also force_depends gcc if gcc was built with a different archspec
than the currently selected one.

I set the ${SPELL}_BUILD_ARCH variable in FINAL, the reasoning for doing this
in FINAL is that I don't want the variable inadvertently changed when the
spell
is cast, but aborted before actual installation of the spell on the system. I
guess even FINAL does not guarantee this to work, but I think it's our best
bet.

It might be good if in the future sorcery would store the build_arch for each
spell in tablet in a special place. But that is a separate issue.

This does not solve the circular dependency issue completely, the if spell_ok
g++ around the optional dependency on g++ of gmp mitigates this, but
personally
I think this is only a workaround and not a proper fix. The user will not
realize that gmp has an optional dependency on g++ and will probably not
recast
it until some version bump happens. This should be properly fixed with either
the use of triggers, or, better yet, through some generic mechanism for
handling circular deps in sorcery.

--
Configure bugmail: http://bugs.sourcemage.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



  • [SM-Grimoire-Bugs] [Bug 15166] gcc -> gmp -> g++ -> gcc circular dependency, bugzilla-daemon, 09/06/2009

Archive powered by MHonArc 2.6.24.

Top of Page