Josh Saddler schrieb:
> Well, on the Gentoo-specific side of things, you're probably looking for the
> Gentoo Developer Handbook[1]. Or you might try project-specific[2] information
> for whichever arch-specific toolchain you will be working with (they can be
> funny beasts between different arches).
I looked at these links (have done before in case of the Devbook, but
could not find answers, only new places to ask my question.
The toolchain is arch-specific? I suspected this, but you confirmed it
and for me this is one more reason for a guide to the toolchain! Perhaps
it should be part of the Gentoo Handbook, since this is already arch
specific?
> As far as things to think about when updating your toolchain, look in the forums
> for threads by robmoss, a retired Gentoo toolchain maintainer. Also search for
> early stage 1/3 guides (early 2005 and older) for more input from users and
> developers about the toolchain upgrade/downgrade process.
I did two stage 1/3 installations and read a lot about the proposed
proper "rebuild your system" instructions: emerge -e system && emerge -e
system && emerge -e world && emerge -e world (I read also the
explanation from BobP, why he proposes this - circular deps and stuff).
robmoss was even adding a run of the bootstrap.sh before these
instructions in [1]. He does not explain why he would run this command
chain. His post is from 2004, so I do not now, if it is still a good
advice. I have read different statements, saying that this is absolutly
overkill and adds nothing in functionality, speed and stability (e.g.
here [2]), because gcc will build itself 3 times during one build
process (3-stage bootstrap, does it do this with every emerge or only
when you bootstrap?).
I would like to have something official about this AND some explanation
why to do it this way.
> I think the Gentoo base project folks might be able to give you some more good
> links on related documentation available elsewhere, as they maintain gcc et al.
> Anything else, like how autotools magic works (or doesn't), you should probably
> check out the relevant gnu.org pages.
Yes, I can try my luck on gnu.org, but since the toolchain is so central
for Gentoo (source based) and it's users (even if they do not know it),
I think a guide from Gentoo would be a good thing, because it could
point out everything special to Gentoo.
> If you can put together a doc that's more Gentoo specific (ideally, less having
> to do with Linux in general, IMHO), I'm sure it'd be welcomed. Otherwise, you
> might consider submitting it to the knowledge base[3] for review.
Thought already about submitting this to the knowledge base and read the
first posts on the kb mailing list, but I think this topic is to general
for kb. As far as I understood the kb is something like "You have this
error, than do this.". Correct me, if I'm wrong.
I would like to put together a doc for Gentoo, but I think I do not now
nearly enough for this task (that's the reason I asked for this guide in
the first place). I have thought about a structure, but I cannot fill it
with meaningful content:
0) Introduction
Binaries vs. scripts? Why binaries? What are libs and what is dynamic
linking vs. static linking (this is important for rebuilding your
system)? Why is Gentoo source based? Why is this so cool compared to
binary based?
1) What is the toolchain aka how to build binaries?
Generic
A group of programs, which create from source code binaries and install
them on your computer.
List of programs and a short description:
gcc
binutils
glibc
linux-headers
...
Put these programs in the correct order for the build process. If you
create a general binary, than first you use foo to do bar... Since this
is different from package to package, a "wrapper" would be cool and
tada, here comes portage (point to the next chapter).
Helper programs
Why are they needed
Arch-Specific
Why is the toolchain different from arch to arch?
List of arch specific programs
2) How does Gentoo handle the Toolchain?
Short discription of portage (ebuild (the script), emerge, ebuilds (the
build instructions), eclasses, USE-flags, ...). Perhaps something about
the new alternatives to emerge (or was it portage)?
What about compilation options (CHOST, CFLAGS and CXXFLAGS)? What to do,
if you want to change these? Not a complete list of options (that's
gnu.org for), but the general way, how Gentoo handles these, sane
compilation options. What to do, if you change these and why could this
be critical for your system? How to rebuild your system (twice? world?)?
3) How does Portage handle updates of Toolchain packages?
Difference between minor and major updates, is there a general way to
handle this or is it a special case from major update to major update,
so that you cannot give general instructions.
Should you rebuild your complete system (world) after a major update?
What do gain from this? What if I do not rebuild it? What to do, if you
do not need to rebuild world, but only some special packages (e.g. some
libs) to prevent breaking part of your system?
Major updates and changing of compilation options create similar
problems, yes or no? If yes, can they be handled in the same way?
Well, these are the questions I'm pondering. What do you all think?
I read the linux-from-scratch guide for some answers about toolchain
handling and building of binaries, but this just increased my hunger for
a Gentoo guide on this topic.
Regards,
Marc
[1]
http://forums.gentoo.org/viewtopic-p-1368747.html#1368747 [2]
http://www.mail-archive.com/gentoo-user%40lists.gentoo.org/msg36343.html --
gentoo-doc@gentoo.org mailing list