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
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc