Please support VectorLinux!

Author Topic: Help ... syscall was removed, then ???  (Read 2791 times)

Kocil

  • Member
  • *
  • Posts: 96
  • Eko M. Budi
Help ... syscall was removed, then ???
« on: July 17, 2007, 10:47:28 pm »
Hi all.

I've been trying to compile some kernel related packages (libcap, progreiserfs, ...).
All failed with the same culprit, the source code use "_syscall2" macro.
In the old kernel (2.4.x in Slackware 11), that macro was defined in /usr/include/asm/unistd.h,
but in the new kernel (2.6.21.5 Slackware 12), it is not there anymore.

The API changed announcement is here http://lwn.net/Articles/2.6-kernel-api/.

But ... how to fix the error is still a mistery for me.
I've been googling for 1 week for this problem, no luck.
Please help ...

Thanks


« Last Edit: July 17, 2007, 10:51:14 pm by Kocil »

easuter

  • Global Moderator
  • Vectorian
  • *****
  • Posts: 2160
Re: Help ... syscall was removed, then ???
« Reply #1 on: July 18, 2007, 11:52:35 am »
Kocil, if I remember correctly, one of the changes from 2.4 to 2.6 was that the headers had to be sanitized before being installed to /usr/include. I've made a sanitized 2.6 kernel headers package for the repo a while ago, so this should solve your problem.

Code: [Select]
slapt-get --install kernel-headers
Or get it here: http://vectorlinux.osuosl.org/veclinux-5.8/extra/kernel/kernel-headers-2.6.18.5-i586-4vl58.tlz

There is indeed a file called unistd.h in that package that will be installed to /usr/include.  :)

Kocil

  • Member
  • *
  • Posts: 96
  • Eko M. Budi
Re: Help ... syscall was removed, then ???
« Reply #2 on: July 20, 2007, 12:01:01 am »
Thanks easuter.

That will solve the problem, because kernel 2.6.18.x is OK.
However, it does not help for the newer kernel.
The _syscall macros have removed since 2.6.19.