Mailing List Archive

profiles
Hi folks,

With the somewhat recent introduction of support for a wide variety of
SGI machines under gentoo, expanding to include all of Indy/Indigo2,
Origin, Octane, Indigo2 Impact (ip28), and O2, I've noticed more than
just a handful of new users have had problems when getting to the kernel
compile phase of the install. The problem is that on systems that only
run 64-bit kernels, you need a mips64-unknown-linux-gnu toolchain to
build the kernel. Since the userland is all 32-bit, the native
toolchain isn't good enough to compile the kernel. However, we do
provide a proper toolchain via the gcc-mips64 ebuild. Furthermore,
binutils supports mips64 by default, but symlinks must exist such that
we have mips64-unknown-linux-gnu-ld -> ld, etc. Both of these are
automatically provided during emerge system if you use the correct
profile, which is default-linux/mips/mips64/2005.0 currently.

The problem is that all of our stages ship with
default-linux/mips/2005.0 as the default profile, which does *not*
provide gcc-mips64 and the binutils symlinks. Therefore if a user
didn't know any better and didn't change their profile appropriately,
they would be stuck while trying to build their kernel because the
native 32-bit toolchain in the userland will just spit out errors and
die when compiling the kernel. Of course, this is easily fixed by
emerging gcc-mips64 and running "binutils-config --mips", which will set
up a proper toolchain. However, by that time, the user is discouraged a
bit and inevitably finds our irc channel and whines that Gentoo is broken.

Now, I have a few ideas for getting around this. Obviously whatever is
decided should be added to the documentation, but here are some ideas:

A) Do nothing...document in the handbook that if your machine is 64-bit,
you *must* select the mips64 sub-profile. (I don't like this because
some folks may be confused as to why everything still works just fine
with the mips profile, and/or they will just skim over that and keep going)

B) Similar to A, except ship stages without the profile set. That way,
folks really are stuck until they set the proper profile. (I don't like
this because they could still be confused and set the mips profile)

C) Make default-linux/mips/ provide all the 64-bit stuff and get rid of
the mips64 sub-profile, since all of the SGI machines we support can run
64-bit kernels if you so choose (ip22 is the only system that supports a
32-bit kernel at this time).

D) (Kumba's idea here...) Have machine specific profiles, e.g.
default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could be
really useful because it would allow us to do some other machine
specific voodoo in the profile).

Any thoughts?

-Steve
--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
I'd prefer Kumba's machine specific profiles. Of course, that's the one
that's the biggest PITA to implement/update.

Curtis Phillips
Winemaker
Salmon Leap Consulting

On Aug 30, 2005, at 8:18 AM, Stephen P. Becker wrote:

> Hi folks,
>
> With the somewhat recent introduction of support for a wide variety of
> SGI machines under gentoo, expanding to include all of Indy/Indigo2,
> Origin, Octane, Indigo2 Impact (ip28), and O2, I've noticed more than
> just a handful of new users have had problems when getting to the
> kernel compile phase of the install. The problem is that on systems
> that only run 64-bit kernels, you need a mips64-unknown-linux-gnu
> toolchain to build the kernel. Since the userland is all 32-bit, the
> native toolchain isn't good enough to compile the kernel. However, we
> do provide a proper toolchain via the gcc-mips64 ebuild. Furthermore,
> binutils supports mips64 by default, but symlinks must exist such that
> we have mips64-unknown-linux-gnu-ld -> ld, etc. Both of these are
> automatically provided during emerge system if you use the correct
> profile, which is default-linux/mips/mips64/2005.0 currently.
>
> The problem is that all of our stages ship with
> default-linux/mips/2005.0 as the default profile, which does *not*
> provide gcc-mips64 and the binutils symlinks. Therefore if a user
> didn't know any better and didn't change their profile appropriately,
> they would be stuck while trying to build their kernel because the
> native 32-bit toolchain in the userland will just spit out errors and
> die when compiling the kernel. Of course, this is easily fixed by
> emerging gcc-mips64 and running "binutils-config --mips", which will
> set up a proper toolchain. However, by that time, the user is
> discouraged a bit and inevitably finds our irc channel and whines that
> Gentoo is broken.
>
> Now, I have a few ideas for getting around this. Obviously whatever
> is decided should be added to the documentation, but here are some
> ideas:
>
> A) Do nothing...document in the handbook that if your machine is
> 64-bit, you *must* select the mips64 sub-profile. (I don't like this
> because some folks may be confused as to why everything still works
> just fine with the mips profile, and/or they will just skim over that
> and keep going)
>
> B) Similar to A, except ship stages without the profile set. That
> way, folks really are stuck until they set the proper profile. (I
> don't like this because they could still be confused and set the mips
> profile)
>
> C) Make default-linux/mips/ provide all the 64-bit stuff and get rid
> of the mips64 sub-profile, since all of the SGI machines we support
> can run 64-bit kernels if you so choose (ip22 is the only system that
> supports a 32-bit kernel at this time).
>
> D) (Kumba's idea here...) Have machine specific profiles, e.g.
> default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could be
> really useful because it would allow us to do some other machine
> specific voodoo in the profile).
>
> Any thoughts?
>
> -Steve
> --
> gentoo-mips@gentoo.org mailing list
>

--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Curtis Phillips _top posted_:
> I'd prefer Kumba's machine specific profiles. Of course, that's the one
> that's the biggest PITA to implement/update.
>
> Curtis Phillips
> Winemaker
> Salmon Leap Consulting
>
> On Aug 30, 2005, at 8:18 AM, Stephen P. Becker wrote:
>
>> D) (Kumba's idea here...) Have machine specific profiles, e.g.
>> default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could be
>> really useful because it would allow us to do some other machine
>> specific voodoo in the profile).
>>
>> Any thoughts?

I was thinking that perhaps we could also split it into Endianness, for CHOST
voodoo, and anything else that's endianness-sensitive.

So the profiles would become;
> /usr/profiles/default-linux/mips:
> |- be -- Big Endian Systems
> | |- n32 \__ Profile for any 64-bit voodoo
> | |- n64 /
> | |- ip22 -- SGI Indy, Indigo2 (R4k), Challenge S w/ o32
> | | |= n32 -- importing the ../n32 voodoo
> | | |- n64 -- importing the ../n64 voodoo
> | | '- 2.4 -- with kernel 2.6 stuff masked (for R4600)
> | |
> | |- ip27 -- SGI Origin 200/2000 w/ o32
> | | |- n32 -- importing the ../n32 voodoo
> | | '- n64 -- importing the ../n64 voodoo
> | |
> | |- ip28 -- SGI Indigo2 Impact (R10000)
> | | |- n32 -- as above
> | | '- n64
> | |
> | |- ip30 -- SGI Octane/Octane 2
> | | |- n32
> | | '- n64
> | |
> | '- ip32 -- SGI O2
> | |- r10k -- For R10k-based O2s, if support existed.
> | | |- n32
> | | '- n64
> | |- n32
> | '- n64
> '- le -- Little Endian
> |- n32
> |- n64
> |- cobalt
> | |- n32
> | '- n64
> '- amdalchemy

The above is just an idea. The main reason for splitting 'le' and 'be' is so
that the CHOST can be set correctly (mips{,64}-unknown-linux-gnu on be,
mips{,64}el-unknown-linux-gnu on le). As for how to handle µClibc, not sure
there. I'm guessing it'd be another profile like n32, just to s/gnu/uclibc/
in the CHOST -- certainly it will be that way whilst it's o32 only.

Anyways, those are my thoughts. :-)
- --
: ____ _ Stuart Longland (a.k.a Redhatter)
:/ \ ___ ___ __| |__ __ __ Gentoo Linux/MIPS Cobalt and Docs
:- ( ) \ / \ ; \(__ __)/ \ / \ Developer
: \ // O _| / /\ \ | | | /\ | /\ |
: / / \ /__| / \ \ | | | \/ | \/ |
:(___/ \____/|_; |_| \_/ \__/ \__/ http://dev.gentoo.org/~redhatter

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDFl4ouarJ1mMmSrkRAiDCAJ42KOIXnKwRBvvojDdexE07NF9BIACePZVz
bwMsxOxp1aIv5jPfWyAsnV8=
=3zEt
-----END PGP SIGNATURE-----
--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Curtis Phillips _top posted_:
> I'd prefer Kumba's machine specific profiles. Of course, that's the one
> that's the biggest PITA to implement/update.
>
> Curtis Phillips
> Winemaker
> Salmon Leap Consulting
>
> On Aug 30, 2005, at 8:18 AM, Stephen P. Becker wrote:
>
>> D) (Kumba's idea here...) Have machine specific profiles, e.g.
>> default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could be
>> really useful because it would allow us to do some other machine
>> specific voodoo in the profile).
>>
>> Any thoughts?

I was thinking that perhaps we could also split it into Endianness, for CHOST
voodoo, and anything else that's endianness-sensitive.

So the profiles would become;
> /usr/profiles/default-linux/mips:
> |- be -- Big Endian Systems
> | |- n32 \__ Profile for any 64-bit voodoo
> | |- n64 /
> | |- ip22 -- SGI Indy, Indigo2 (R4k), Challenge S w/ o32
> | | |= n32 -- importing the ../n32 voodoo
> | | |- n64 -- importing the ../n64 voodoo
> | | '- 2.4 -- with kernel 2.6 stuff masked (for R4600)
> | |
> | |- ip27 -- SGI Origin 200/2000 w/ o32
> | | |- n32 -- importing the ../n32 voodoo
> | | '- n64 -- importing the ../n64 voodoo
> | |
> | |- ip28 -- SGI Indigo2 Impact (R10000)
> | | |- n32 -- as above
> | | '- n64
> | |
> | |- ip30 -- SGI Octane/Octane 2
> | | |- n32
> | | '- n64
> | |
> | '- ip32 -- SGI O2
> | |- r10k -- For R10k-based O2s, if support existed.
> | | |- n32
> | | '- n64
> | |- n32
> | '- n64
> '- le -- Little Endian
> |- n32
> |- n64
> |- cobalt
> | |- n32
> | '- n64
> '- amdalchemy

The above is just an idea. The main reason for splitting 'le' and 'be' is so
that the CHOST can be set correctly (mips{,64}-unknown-linux-gnu on be,
mips{,64}el-unknown-linux-gnu on le). As for how to handle µClibc, not sure
there. I'm guessing it'd be another profile like n32, just to s/gnu/uclibc/
in the CHOST -- certainly it will be that way whilst it's o32 only.

Anyways, those are my thoughts. :-)
- --
: ____ _ Stuart Longland (a.k.a Redhatter)
:/ \ ___ ___ __| |__ __ __ Gentoo Linux/MIPS Cobalt and Docs
:- ( ) \ / \ ; \(__ __)/ \ / \ Developer
: \ // O _| / /\ \ | | | /\ | /\ |
: / / \ /__| / \ \ | | | \/ | \/ |
:(___/ \____/|_; |_| \_/ \__/ \__/ http://dev.gentoo.org/~redhatter

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDFl4ouarJ1mMmSrkRAiDCAJ42KOIXnKwRBvvojDdexE07NF9BIACePZVz
bwMsxOxp1aIv5jPfWyAsnV8=
=3zEt
-----END PGP SIGNATURE-----
--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
Stuart Longland wrote:

>So the profiles would become;
>
>
>>/usr/profiles/default-linux/mips:
>>|- be -- Big Endian Systems
>>| |- n32 \__ Profile for any 64-bit voodoo
>>| |- n64 /
>>| |- ip22 -- SGI Indy, Indigo2 (R4k), Challenge S w/ o32
>>| | |= n32 -- importing the ../n32 voodoo
>>| | |- n64 -- importing the ../n64 voodoo
>>| | '- 2.4 -- with kernel 2.6 stuff masked (for R4600)
>>| |
>>
Profiles don't do multiple inheritance. You'll either end up duplicating
n32/n64 in all the relevant subprofiles, in which case why bother with
be/n32, or the ip22/n32 profile won't inherit from ip22/, which kinda
defeats the point, no?
--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
Stephen P. Becker wrote:

> A) Do nothing...document in the handbook that if your machine is
> 64-bit, you *must* select the mips64 sub-profile. (I don't like this
> because some folks may be confused as to why everything still works
> just fine with the mips profile, and/or they will just skim over that
> and keep going)
>
> B) Similar to A, except ship stages without the profile set. That
> way, folks really are stuck until they set the proper profile. (I
> don't like this because they could still be confused and set the mips
> profile)
>
> C) Make default-linux/mips/ provide all the 64-bit stuff and get rid
> of the mips64 sub-profile, since all of the SGI machines we support
> can run 64-bit kernels if you so choose (ip22 is the only system that
> supports a 32-bit kernel at this time).
>
> D) (Kumba's idea here...) Have machine specific profiles, e.g.
> default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could
> be really useful because it would allow us to do some other machine
> specific voodoo in the profile).


I quite like D here. Removes any confusion as to what profile you want,
and could then be combined with B so that people don't end up with the
wrong profile set anyway.
--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
Stephen Bennett wrote:
> Stuart Longland wrote:
>
>> So the profiles would become;
>>
>>
>>> /usr/profiles/default-linux/mips:
>>> |- be -- Big Endian Systems
>>> | |- n32 \__ Profile for any 64-bit voodoo
>>> | |- n64 /
>>> | |- ip22 -- SGI Indy, Indigo2 (R4k), Challenge S w/ o32
>>> | | |= n32 -- importing the ../n32 voodoo
>>> | | |- n64 -- importing the ../n64 voodoo
>>> | | '- 2.4 -- with kernel 2.6 stuff masked (for R4600)
>>> | |
>>>
> Profiles don't do multiple inheritance. You'll either end up duplicating
> n32/n64 in all the relevant subprofiles, in which case why bother with
> be/n32, or the ip22/n32 profile won't inherit from ip22/, which kinda
> defeats the point, no?

That's a fly in the ointment, yes. I spose that means removing the
toplevel n32 and n64 profiles. This does mean duplication of files,
which is probably it's biggest downside -- but it gives us the greatest
flexibility IMHO.

In fact, there's an idea for profiles... why not have multiple
inheritance? It'd be something to bring up with the portage devs I
think, but it may have some useful features.

Certainly though, at the very least, we should split according to
endianness and userland. That way, CHOST and other vars can be set
correctly.
--
____ _ Stuart Longland (a.k.a Redhatter)
/ _ \ ___ ___ __| |__ __ __ Gentoo Linux/MIPS Cobalt and Docs
- (_) \ / \ ; \(__ __)/ \ / \ Developer
\ // O _| / /\ \ | | | /\ | /\ |
/ / \ /__| / \ \ | | | \/ | \/ |
(___/ \____/|_; |_| \_/ \__/ \__/ http://dev.gentoo.org/~redhatter
Re: profiles [ In reply to ]
Stuart Longland wrote:

> In fact, there's an idea for profiles... why not have multiple
> inheritance? It'd be something to bring up with the portage devs I
> think, but it may have some useful features.

Not going to happen in the current round of development. AIUI
though, profiles are being redone for the rewrite, and multiple
inheritance will very likely be in that.

--
gentoo-mips@gentoo.org mailing list
Re: profiles [ In reply to ]
Stephen P. Becker wrote:
> Hi folks,
>
> With the somewhat recent introduction of support for a wide variety of
> SGI machines under gentoo, expanding to include all of Indy/Indigo2,
> Origin, Octane, Indigo2 Impact (ip28), and O2, I've noticed more than
> just a handful of new users have had problems when getting to the kernel
> compile phase of the install. The problem is that on systems that only
> run 64-bit kernels, you need a mips64-unknown-linux-gnu toolchain to
> build the kernel. Since the userland is all 32-bit, the native
> toolchain isn't good enough to compile the kernel. However, we do
> provide a proper toolchain via the gcc-mips64 ebuild. Furthermore,
> binutils supports mips64 by default, but symlinks must exist such that
> we have mips64-unknown-linux-gnu-ld -> ld, etc. Both of these are
> automatically provided during emerge system if you use the correct
> profile, which is default-linux/mips/mips64/2005.0 currently.
>
> The problem is that all of our stages ship with
> default-linux/mips/2005.0 as the default profile, which does *not*
> provide gcc-mips64 and the binutils symlinks. Therefore if a user
> didn't know any better and didn't change their profile appropriately,
> they would be stuck while trying to build their kernel because the
> native 32-bit toolchain in the userland will just spit out errors and
> die when compiling the kernel. Of course, this is easily fixed by
> emerging gcc-mips64 and running "binutils-config --mips", which will set
> up a proper toolchain. However, by that time, the user is discouraged a
> bit and inevitably finds our irc channel and whines that Gentoo is broken.
>
> Now, I have a few ideas for getting around this. Obviously whatever is
> decided should be added to the documentation, but here are some ideas:
>
> A) Do nothing...document in the handbook that if your machine is 64-bit,
> you *must* select the mips64 sub-profile. (I don't like this because
> some folks may be confused as to why everything still works just fine
> with the mips profile, and/or they will just skim over that and keep going)
>
> B) Similar to A, except ship stages without the profile set. That way,
> folks really are stuck until they set the proper profile. (I don't like
> this because they could still be confused and set the mips profile)
>
> C) Make default-linux/mips/ provide all the 64-bit stuff and get rid of
> the mips64 sub-profile, since all of the SGI machines we support can run
> 64-bit kernels if you so choose (ip22 is the only system that supports a
> 32-bit kernel at this time).
>
> D) (Kumba's idea here...) Have machine specific profiles, e.g.
> default-linux/mips/ip22, default-linux/mips/ip32, etc. (This could be
> really useful because it would allow us to do some other machine
> specific voodoo in the profile).
>
> Any thoughts?
>
> -Steve


So people have an idea of what's being proposed in regards to Item #D, Attached
to this message are two text files. The first shows the current profile setup
as of today. The second file shows the proposed reorganization, starting with
2005.1, of the profiles.

The upside to re-organizing under machine-specific categorization is better
control for us developers, and easier to follow layout for the users. Downside
is, it requires more upkeep on our end (although that upkeep should be
relatively trivial, and it's unoptimized; an optimized version will likely be
simpler.).

And as a sidenote, the proposed variant lacks the multilib layout until we
figure out where it goes.


--Kumba

--
Gentoo/MIPS Team Lead
Gentoo Foundation Board of Trustees

"Such is oft the course of deeds that move the wheels of the world: small hands
do them because they must, while the eyes of the great are elsewhere." --Elrond