This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ct-ng build fails with 'make[1]: *** [configure-binutils] Error 1'


Godmar,
All,

On Wednesday 09 September 2009 15:31:40 Godmar Back wrote:
> > I thought that "Minimum supported kernel version" was explicit enough.
> > What would you suggest instead (keep it short)?
> That's not the confusing part, though this label could, perhaps, be
> made more clear by saying "Minimum supported target kernel version" to
> make clear it's the target that's being talked about.

Well, the C library is expected to run on the target, so it's implicit
we're talking about the kernel for the target. Would something like
"Minimum kernel version supported by C library" be better?

> The more confusing issue IMO is one level below that one, where it says:
> Let ./configure decide
> Same as kernel headers (default)
> Specific kernel version

> None of these three options imply that support for all kernels is
> provided.

Because it does *not* add support for *all* kernel.

> For the first one, the Help doesn't say, btw, *how* 
> configure makes that decision. The label "Let ./configure decide" did
> not make me look in the Help to learn that this provides support for
> all kernels. Perhaps change to "Support all compatible kernels" or
> something like that?

The help text gives _some_ examples of what minimum versions will be
supported. Excerpt:

--8<--
Let ./configure decide what minimum kernel version glibc/eglibc
will be able to run against.

This will include legacy compatibility code for older kernels in 
the C library, thus ensuring that it will run on a large number
of old kernels.

The minimum kernel version supported will be dependent upon the
target you build for. For example:
  alpha*-*-linux-gnu      Requires Linux 2.6.9 for NPTL
  sh[34]-*-linux-gnu      Requires Linux 2.6.11
  powerpc*                Requires Linux 2.4.19
  arm*-*-linux-*gnueabi   Requires Linux 2.6.16
--8<--

./configure uses some kind of "black-magic" to determine what the minimum
kernel version is required for a specific combination, and acts accordingly.

And I would say that if you don't know what to choose, read the help entries.
If you still don't know, google for it. And if you still don't know, keep
the default.

Now, if you read the help entry for the default choice, you'll read something
along the lines of:

--8<--
If enabled, crosstool-ng will use the chosen version of kernel
headers for the glibc minimum kernel version supported, which is
what gets passed to "--enable-kernel=" when configuring glibc.
--8<--

If that does not sounds clear to you, then head straight for the glibc
documentation:
  http://www.gnu.org/software/libc/manual/html_mono/libc.html

Appendix C "Installing the GNU C Library", chapter C.1 "Configuring and
compiling GNU Libc" states:

--8<--
â--enable-kernel=versionâ
    This option is currently only useful on GNU/Linux systems. The version
    parameter should have the form X.Y.Z and describes the smallest version
    of the Linux kernel the generated library is expected to support. The
    higher the version number is, the less compatibility code is added, and
    the faster the code gets.
--8<--

(I confess that they are not telling what the default for this option is.)

And finally, reading the help entry for "Specific kernel version" says:

--8<--
If you want to be able to statically link programs with your
toolchain's C library, make sure this kernel version is lower than
all kernels you wish to support to avoid "FATAL: kernel too old"
errors.  The higher the version you specify, the less legacy code
will be built into libc.
--8<--

Which should hint you about the message you had...

Sorry if I sound harsh, but building a toolchain is really a complex matter
and crosstool-NG (or any other builder for that matter) does not prevent
the user from having at least some knowledge of what he/she is doing, and
do his/her homework prior to yelling about wolves...

> The third option "Specific kernel version" makes it sound as though
> only this version is supported. Perhaps change to: "Choose minimum
> target kernel version"?

OK for "Enter minimum suported kernel version below", then?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| --==< ^_^ >==-- `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
`------------------------------^-------^------------------^--------------------'



--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]