[LARTC] Re: [LARTC} how can I compile tc
John Baker
johnnyb at marlboro.edu
Mon Mar 26 16:20:02 CEST 2007
The story here is that I'm am using instructions my predecessor left for
building a packet shapeing firewall and trying to update them for a new
box that needs some drivers in the newer kernel version. (I can go back,
use older versions and manually insert stuff but it makes more sense to
try the latest stuff first)
I need to build tc because it needs to be patched with
esfq-2.6.20/esfq-iproute2.patch.
So I built the Linux 2.6.20.3 with the necessary patches and left it in
/usr/src/linux-2.6.20.3 with a /usr/src/linux symlink pointing to it. I
didn't do anything after setting it up.
The git version unfortunatly won't compile either. I get this:
../include/linux/types.h:166: error: syntax error before ‘__kernel_daddr_t’
../include/linux/types.h:166: warning: no semicolon at end of struct or
union
../include/linux/types.h:167: warning: type defaults to ‘int’ in
declaration of ‘f_tinode’
../include/linux/types.h:167: warning: data definition has no type or
storage class
../include/linux/types.h:170: error: syntax error before ‘}’ token
make[1]: *** [ll_map.o] Error 1
make[1]: Leaving directory `/usr/src/iproute2/lib'
make: *** [all] Error 2
I'm going to see if I can get iproute 2.6.19 working with this. It
seemed to compile once but without the proper patches. If not, I'll have
to move back to the 2.6.15 versions that are already prove.
Unless you have some other suggestion for hte above error.
thanks for you help either way.
John
Andy Furniss wrote:
> John Baker wrote:
>> Ok, I tried it out but for some reason it doesn't take for the
>> compile process. This is, after export
>> KERNEL_INCLUDE=/usr/src/linux/include/ if I run export this declare
>> -x KERNEL_INCLUDE="/usr/src/linux/include/" is there. But when I run
>> make in iproute2 I still get the /usr/include/linux/ip.h:93:2: error:
>> #error "Endian problem - this didn't happen" error.
>>
>> I tried to circumvent this by moving the /usr/include/linux directory
>> to /usr/include/linux.old and then making /usr/include/linux a soft
>> link pointing to /usr/src/linux/include and got a different set of
>> errors as follows.
>
> You shouldn't have to do this - maybe just maybe playing with symlinks
> can help build some old out of tree stuff, but you shouldn't need to
> do it here.
>
> I don't know what distros do nowadays (use LFS myself), but the very
> existance of /usr/src/linux link to tree is depreciated.
>
> Why do you need to build a new tc - unless you need the latest
> features your distro should already have it & I think it should work
> with a new kernel.
>
> If you really need it, I assume you have built your own 2.6.20.3?
>
> Where is it, what did you do? If after configuring/building it you
> cleaned with make mrproper that will be too clean to build against -
> make clean should be OK.
>
>
>
>> The first time I tried this I forgot to run make clean after trying
>> to compile it against the original /usr/include/linux/ and it
>> actually got past the initial endian error and died trying to compile
>> tc. When I ran make clean and tried I go the above error.
>
> I would expect tc to fail - you need the git version.
>
> Generally if I have the tar and fail a build I just delete and start
> again - not saying that will help in this case.
>
> If your distro has git already installed great - if not you can get it
> from here
>
> http://kernel.org/pub/software/scm/git/git-1.5.0.5.tar.bz2
>
> install where you want - see INSTALL
>
> to get the iproute2 git do -
>
> git clone
> git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
>
> (as one line) and it will get the latest iproute2 tree for you.
>
>
> Andy
--
John Baker
Network Systems Administrator
Marlboro College
Phone: 451-7551 off campus; 551 on campus
More information about the LARTC
mailing list