[Click] Compile issues on RHEL 6.4 (2.6.32)

Eddie Kohler ekohler at gmail.com
Fri Mar 1 23:47:25 EST 2013


Hi Keith,

I got a look at this. There were a couple problems with that kernel
that our rewriting, etc. tools could not handle. I were able to fix
them and get a pretty clean automatic compilation. These patches are
committed. However, an installation attempt fails with "out of
memory". I haven't debugged further. Have you gotten further?

BTW, I didn't realize you were downloading the current tarball from
github. You did get the latest commit, but I'd strongly advise you to
install git, which will make it easier to update.
Eddie


On Sat, Feb 23, 2013 at 2:14 PM, Keith Schoenefeld
<keith at schoenefeld.org> wrote:
> I should have said "I grabbed the latest tarball from github".  More
> specifically, I downloaded the tarball provided at the URI
> "https://github.com/kohler/click/tarball/master".  Since the directory
> name created when I extracted the tarball (kohler-click-6aa1787)
> matches the latest commit, I assumed this matched what I could obtain
> using git clone.  Should I install git and run a git clone just to be
> sure?
>
> -- KS
>
> On Sat, Feb 23, 2013 at 12:25 PM, Eddie Kohler <ekohler at gmail.com> wrote:
>> Just to double check for a misunderstanding: You don't grab a tarball
>> from git. Are you using the click-2.0.1 release, or the current git
>> sources, which you can obtain by `git clone` from github.com?
>>
>>
>> On Sat, Feb 23, 2013 at 1:11 PM, Keith Schoenefeld
>> <keith at schoenefeld.org> wrote:
>>> - My understanding is that CentOS is built using the source RPMS for
>>> RHEL, so CentOS 6.x would be as close to identical as possible with
>>> RHEL 6.x.
>>> - I used the stock compiler that comes with RHEL 6.4
>>> - I grabbed the latest tarball from git and used that, yes.
>>>
>>> I will point out that in the last 30 minutes I realized that when I
>>> tried to insmod click.ko (with stock click 2.0.1, which I did finally
>>> get to compile) without first running insmod proclikefs.ks -- once I
>>> did things in the right order it seems to be working (I'm finalizing a
>>> config right now to test).  That said, the compile issues for the
>>> current git versions still exist, and I'd much rather be running up to
>>> date code than stock 2.0.1.  Thanks for the quick response.
>>>
>>> -- KS
>>>
>>> On Sat, Feb 23, 2013 at 11:34 AM, Eddie Kohler <ekohler at gmail.com> wrote:
>>>> Hi Keith, sorry for the errors.
>>>>
>>>> Some questions, since I don't have RHEL to test.
>>>> —Is there a Fedora/Centos version that corresponds?
>>>> —Specific compiler version?
>>>> —Most importantly, have you tried with current git?
>>>>
>>>> Eddie
>>>>
>>>>
>>>> On Fri, Feb 22, 2013 at 11:41 PM, Keith Schoenefeld
>>>> <keith at schoenefeld.org> wrote:
>>>>> I'm running RHEL 6.4 with a RedHat kernel.  I've worked through
>>>>> various compile issues working on the 2.0.1 release code, including
>>>>> having to recompile the kernel from source with NR_CPUS set to 8
>>>>> instead of 4096, adding the NETREG line to fixincludes.pl, etc.  I
>>>>> have 2.0.1 compiling now with no issues, but once I install and run
>>>>> insmod click.ko I get the error "insmod: error inserting 'click.ko':
>>>>> -1 Cannot allocate memory".  I tried running strip -g as suggested in
>>>>> another post, but then I get "insmod: error inserting 'click.ko': -1
>>>>> Unknown symbol in module".  I've also tried using the latest git
>>>>> repository.  Using the following configure command:
>>>>>
>>>>> ./configure --prefix=/opt/click-kohler-6aa1787 --disable-userlevel
>>>>> --enable-multithread
>>>>>
>>>>> I end up with the following errors (I ran make once to compile
>>>>> everything that would compile, then again to just get the list of
>>>>> errors):
>>>>>
>>>>>
>>>>> # make linuxmodule
>>>>> make[1]: Entering directory `/root/kohler-click-6aa1787/linuxmodule'
>>>>> make -C /lib/modules/2.6.32-358.el6.click.x86_64/build
>>>>> M=/root/kohler-click-6aa1787/linuxmodule  modules
>>>>> make[2]: Entering directory `/usr/src/kernels/2.6.32-358.el6.click.x86_64'
>>>>>   CXX [M] tohost.o
>>>>> In file included from
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/linux/tcp.h:186,
>>>>>                  from
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/linux/ipv6.h:220,
>>>>>                  from
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/ip.h:344,
>>>>>                  from
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/xfrm.h:23,
>>>>>                  from
>>>>> /root/kohler-click-6aa1787/linuxmodule/../elements/linuxmodule/tohost.cc:28:
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:
>>>>> In function ‘void inet_csk_clear_xmit_timer(sock*, int)’:
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:208:
>>>>> error: ‘DEBUG_HASH’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:208:
>>>>> error: ‘DEBUG_HASH2’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:208:
>>>>> error: too many initializers for ‘_ddebug’
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:
>>>>> In function ‘void inet_csk_reset_xmit_timer(sock*, int, long unsigned
>>>>> int, long unsigned int)’:
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:224:
>>>>> error: ‘DEBUG_HASH’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:224:
>>>>> error: ‘DEBUG_HASH2’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:224:
>>>>> error: too many initializers for ‘_ddebug’
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:241:
>>>>> error: ‘DEBUG_HASH’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:241:
>>>>> error: ‘DEBUG_HASH2’ was not declared in this scope
>>>>> /root/kohler-click-6aa1787/include/click-linuxmodule/include0/net/inet_connection_sock.h:241:
>>>>> error: too many initializers for ‘_ddebug’
>>>>>   CREATE /root/kohler-click-6aa1787/linuxmodule/ksyms.c
>>>>> nm: 'tohost.o': No such file
>>>>>   CC [M] ksyms.o
>>>>>   LD [M]  /root/kohler-click-6aa1787/linuxmodule/click.o
>>>>> ld: /root/kohler-click-6aa1787/linuxmodule/tohost.o: No such file: No
>>>>> such file or directory
>>>>> make[3]: *** [/root/kohler-click-6aa1787/linuxmodule/click.o] Error 1
>>>>> make[2]: *** [_module_/root/kohler-click-6aa1787/linuxmodule] Error 2
>>>>> make[2]: Leaving directory `/usr/src/kernels/2.6.32-358.el6.click.x86_64'
>>>>> make[1]: *** [all] Error 2
>>>>> make[1]: Leaving directory `/root/kohler-click-6aa1787/linuxmodule'
>>>>> make: *** [linuxmodule] Error 2
>>>>>
>>>>> I'm not sure where to go with the DEBUG_HASH, DEBUG_HASH2, etc. errors
>>>>> and google hasn't helped me at all.  Does anyone have any
>>>>> recommendations for getting this working?
>>>>>
>>>>> -- KS
>>>>>
>>>>> _______________________________________________
>>>>> click mailing list
>>>>> click at amsterdam.lcs.mit.edu
>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list