[vlc-devel] Re: compile error with undefined symbol IPV6_V6ONLY

frahm at irsamc.ups-tlse.fr frahm at irsamc.ups-tlse.fr
Sun Feb 12 23:44:52 CET 2006


Thank you very much for the information. I now understand things better. 

On 12 Feb, Rémi Denis-Courmont wrote:
> Le Jeudi 9 Février 2006 09:50, frahm at irsamc.ups-tlse.fr a écrit :
>> Concerning the compile error, I suppose I encountered this problem
>> because I did not activate ipv6-functionality in my Linux kernel.
> 
> No. The kernel configuration does not influence the C library headers. 
> IPV6_V6ONLY is defined from <netinet/in.h>, and you definitely don't 
> need local IPv6 support for that. That is fortunate because we can't 
> yet assume IPv6 support on compilation hosts.
> 
> It is incorrect not to set the IPV6_V6ONLY flag to 1, as it will break 
> later assumptions made in the networking code. We currently assume that 
> V6ONLY is always on on OSes that do not define it (mostly Windows, 
> though it doesn't have the wrapper). Linux definitely has the V6ONLY 
> flag set to zero by default, which would break later assuption in the 
> networking code. So if there is the problem is on our side, I'd rather 
> disable IPv6 support for that range of broken platforms.

I do not think that you need to worry about that. I have now verified
with another more recent Linux system and there IPV6_V6ONLY seems to be
set to the value of "26". The same value can also be found in recent kernel 
headers (in "include/linux/in6.h" of recent kernel trees).
> 
> How old is your C library ? IPV6_V6ONLY has been in glibc for ages.
> 
My C library is glibc-2.3.2. This is not very recent but not that old, 
~3 years. This is more recent than for example on Redhat 7.3 systems
which are based on glibc-2.2.x and comparable to Redhat 9.0. Actually my
base Linux system is much older (Suse 6.3, initially with a Kernel
2.2.13 and glibc-2.1.3). However I have upgraded the important software
packages, I have compiled some time ago glibc-2.3.2, and I am using a
recent 2.6-Kernel and gcc-3.3.6 (I have found many compile-problemes
with gcc-3.4 or gcc-4.0 for existing free software). Maybe the problem
is not the version of glibc itself but of the kernel headers I used when
compiling glibc. A that time a used headers of the kernel 2.4.20 and
according to the glibc-doc it is okay to use "older" headers because
there would be no problem with more recent kernels. However using recent
kernel headers when compiling glibc could imply that glibc does not work
with older kernels.

I have verified on a system with a more recent glibc (3.3.5) and indeed
I have found there the macro IPV6_V6ONLY=26 in bits/in.h which is
afterwards included in netinet/in.h. I have both files with my actual
headers but indeed without this macro. I think I will simply insert the
apropriate define in my version of "bits/in.h" hoping that this will be
okay. 


I believe in view of my "old" and "special" system there is not much to
worry about. However, there are still Redhat 7.3 systems out which work
very well on certain older maschines (better than 8.0 or 9.0 or even
Fedora).


Greetings, Klaus Frahm.

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html



More information about the vlc-devel mailing list