[ENBD] enbd build issues

Peter T. Breuer enbd@lists.community.tummy.com
Fri, 17 Jan 2003 17:50:50 +0100 (MET)


"A month of sundays ago Ihar Viarheichyk wrote:"
> Hello. I compiled nbd-2.4.31 for 2.4.18 kernel with gcc-2.96 without
> problems, except some warnings.

OK. You do know that 2.4.31 is the development code, not the stable
code? The stable version is 2.4.30.

> I have looked at Makefile, and found code:
> ifeq ($(KERNELMAJOR),2.4)
>         ln -s linux-2.2.10 $@
> 	^^^^^^^^^^^^^^^^^^
> else
> 	ifeq ($(KERNELMAJOR),2.2)
> 		ln -s linux-2.2.10 $@
> 	else
> 		ln -s linux-2.0.36 $@
> 	endif
> endif
> 
> Is it desired behaviour to use linux-2.2.10 for 2.4 kernel? 

Yes, it's correct.

> What other linux-x.y.z (2.4.18, 2.5.12 etc) are used for? It is not

They are just snapshots of the code of the time against particular kernel
versions. 

> mentioned in INSTALL. Compiling enbd with linux-2.4.18 instead 2.2.10
> failed.
> 
> I also tried to build nbd with gcc-3.2.2. It produces a lot of errors like:
> 
> ....
> /home/igor/install/nbd-2.4.31/nbd/enbd-server.c:3331: dereferencing
> pointer to incomplete type

Thanks for the report.

That would require investigation. What is the type that they were
complaining about? There is no a priori reason why a type should be
defined for one version of gcc and not defined for another.

On my version, the line is

   self->child[i] = pid;

and if self is of undefined type, then that's "struct nbd_server",
which is certainly defined or it wouldn't have compiled under your
other gcc.


Peter