[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [issues] Building eglibc on systems with recent linux kernels



It seems I found the answer. I found that an even newer version of linux (2.6.22)
restores back the missing definitions.

Regarding --with-headers it was an oversight of my part. The build in the old host happened with linux-2.6.22 after all. (The build with 2.6.19 happened with
much older eglibc versions)

Thanks,
Edmar


Edmar Wienskoski-RA8797 wrote:
I use to build eglibc with no problems, but recently the same build
does not work anymore.
Perhaps someone can tell me if this is a known problem or how to work around it.

Problem:
The file sysdeps/unix/sysv/linux/ifaddrs.c gives me several undefined symbols.
One of them is IFLA_RTA

Normally this symbol is defined in /usr/include/linux/rtnetlink.h
But with newer versions of linux, IFLA_RTA does not exist anymore.

I have being able to build eglibc with the following configuration options
--enable-kernel=2.6.19 --with-headers=<..>
Note that linux 2.6.19 does not defines IFLA_RTA, but it happened that
the machine I used to do the cross-build had a 2.6.9 kernel.

Once the host was upgraded the build start failing.

So,
1) The --enable-kernel option is used to checked against internal minimum version,
and assumes everything newer is ok. (i.e. it assumes that linux headers
are always backwards compatible). Is this desirable ? Is this a known problem ?

2) It seems that the system headers are used even though I specified --with-headers=<..>
I had the impression this option would prevent /usr/include to be used.
I checked that --with-headers=<.../include/linux/rtnetlink.h> does *not* have IFLA_RTA defined, but yet the build is successful in hosts with old kernels...
Am I misunderstanding these options ?

Thanks
Edmar