Summary:ASTERISK-08493: Can't compile with debian unstable due to genksyms not found
Reporter:mmenaz (mmenaz)Labels:
Date Opened:2007-01-05 08:44:35.000-0600Date Closed:2011-06-07 14:03:09
Versions:Frequency of
Description:I've installed kernel headers, sources, created the linux and linux-2.6 links.
I get asterisk and zaptel through svn branches/1.4
Asterisk compiles fine, while zaptel not (I just need ztdummy):

meucci:/usr/src/zaptel-1.4# make
make[1]: Entering directory `/usr/src/zaptel-1.4'
make -C /lib/modules/2.6.18-3-k7/build SUBDIRS=/usr/src/zaptel-1.4 modules
make[2]: Entering directory `/usr/src/linux-source-2.6.18'
 WARNING: Symbol version dump /usr/src/linux-source-2.6.18/Module.symvers
          is missing; modules will have no dependencies and modversions.
 CC [M]  /usr/src/zaptel-1.4/zaptel.o
/usr/src/zaptel-1.4/zaptel.c:226: warning: ?fcstab? defined but not used
/bin/sh: scripts/genksyms/genksyms: No such file or directory
make[3]: *** [/usr/src/zaptel-1.4/zaptel.o] Error 1
make[2]: *** [_module_/usr/src/zaptel-1.4] Error 2
make[2]: Leaving directory `/usr/src/linux-source-2.6.18'
make[1]: *** [linux26] Error 2
make[1]: Leaving directory `/usr/src/zaptel-1.4'
make: *** [all] Error 2

The file is present in the system, but probably in a different location:
meucci:/usr/src/zaptel-1.4# find / -name genksyms

my kernel is "vanilla" debian:
meucci:/usr/src/zaptel-1.4# uname -r

meucci:/usr/src# ls -l
total 43794
drwxr-sr-x 25 root src      1576 2007-01-05 09:34 asterisk-1.4
drwxr-sr-x  8 root src       728 2006-12-31 11:49 asterisk-gui
drwxr-sr-x  3 root src      1152 2006-12-31 07:06 libpri-1.4
lrwxrwxrwx  1 root src        19 2007-01-05 14:13 linux -> linux-source-2.6.18
lrwxrwxrwx  1 root src        19 2007-01-05 14:13 linux-2.6 -> linux-source-2.6.18
drwxr-xr-x  3 root root       72 2006-12-30 04:46 linux-kbuild-2.6.18
drwxr-xr-x 19 root root      792 2007-01-04 20:33 linux-source-2.6.18
-rw-r--r--  1 root root 41876732 2006-12-10 18:30 linux-source-2.6.18.tar.bz2
drwxr-sr-x 11 root src      3904 2007-01-05 15:16 zaptel-1.4

Comments:By: Serge Vecher (serge-v) 2007-01-05 08:51:46.000-0600

can't you just create a symlink pointing to /usr/src/linux-source-2.6.18/scripts/genksyms?

By: mmenaz (mmenaz) 2007-01-05 14:10:29.000-0600

The problem is not find a workaround, but the make code to be able to use debian location of sources / executables.
In any case, if I do the link:
ln -s /usr/src/linux-kbuild-2.6.18/scripts/genksyms/genksyms /usr/src/linux-kbuild-2.6.18/scripts/mod//genksyms

then I've another compilation error:
 Building modules, stage 2.
/bin/sh: scripts/mod/modpost: No such file or directory
make[3]: *** [__modpost] Error 127
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/linux-source-2.6.18'
make[1]: *** [linux26] Error 2
make[1]: Leaving directory `/usr/src/zaptel-1.4'
make: *** [all] Error 2

The problem is that the script looks for executable files under the SOURCE linux directory, while, at least debian, puts them under a linux-kbuild-2.6.18 directory.
in fact:
meucci:~# find / -name modpost
So, except the workaround of create another link (and then another...?), and have to update them everytime I update the kernel, I would like the makefile be able to consider debian's file location (I don't know if unique to debian and derivates, that are many distro, in any case, and with ubuntu one of the most used).
Thanks a lot

By: Jason Parker (jparker) 2007-01-05 15:38:50.000-0600

This is a bug in the debian kernel.  We don't provide or use genksyms.  The kernel Makefile (I believe) is what calls this.  Please report upstream to debian maintainers.  Closing.