[Click] element compilation error and solution

Frederic Van Quickenborne frederic.vanquickenborne at intec.ugent.be
Wed Sep 22 06:32:02 EDT 2004


Hi,

when I was adapting the ExtEtherSwitch element (ethernet switch with VLANs, 
if anybody is interested, let me know) to work with the click 1.4.1 
release, I encoutered the following error (using the Makefile written by 
Brecht Vermeulen to easily build kernel modules from your element source 
files):

nike1:/home/fvquicke/extetherswitch# make
c++ -Wp,-w -W -Wall -w  -I. -I/usr/src/linux/include 
-I/work/click/source/click-1.4.1/include -I/work/click/source/click-1.4.1 
-MD -DCLICK_LINUXMODULE -DCLICK_PACKAGE -DHAVE_IP6 -fno-exceptions 
-fno-rtti -fvtable-thunks  -O2 -c extetherswitch.cc -o extetherswitch.ko
In file included from /usr/src/linux/include/linux/skbuff.h:27,
                  from /work/click/source/click-1.4.1/include/click/glue.hh:27,
                  from 
/work/click/source/click-1.4.1/include/click/element.hh:4,
                  from extetherswitch.hh:3,
                  from extetherswitch.cc:19:
/usr/src/linux/include/linux/highmem.h: In function `void 
copy_highpage(page *, page *)':
/usr/src/linux/include/linux/highmem.h:128: ANSI C++ forbids implicit 
conversion from `void *' in assignment
/usr/src/linux/include/linux/highmem.h:129: ANSI C++ forbids implicit 
conversion from `void *' in assignment
make: *** [extetherswitch.ko] Error 1
(on Linux kernel 2.4.26)

Then I adapted the /usr/src/linux/include/linux/highmem.h file (at the end 
of the file):

static inline void copy_highpage(struct page *to, struct page *from)
{
         char *vfrom, *vto;

// added (char *) in following line
         vfrom = (char *)kmap_atomic(from, KM_USER0);
// added (char *) in following line
        vto = (char *)kmap_atomic(to, KM_USER1);
         copy_page(vto, vfrom);
         kunmap_atomic(vfrom, KM_USER0);
         kunmap_atomic(vto, KM_USER1);
}

Which solved my problem.

Maybe it help others with the same problem.

Many regards,
Frederic.



==================================================================
Frederic Van Quickenborne
Department of Information Technology (INTEC)
Ghent University - IMEC
Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium
tel.: +32 (0)9-264 9957; tel. secr.: +32 (0)9-264 9970
fax: +32 (0)9-264 9960
Frederic.VanQuickenborne at intec.ugent.be
http://www.ibcn.intec.ugent.be



More information about the click mailing list