What not to be doing - syscall()

Thiago Macieira thiago.macieira at kdemail.net
Wed Dec 24 05:08:20 GMT 2003

Daniel Stone wrote:
>This is a pretty good example of what *not* to do. syscall() is not
>portable across architectures (it caused a recent FTBFS[1] on
>mips/mipsel for Debian packages). To do this, use sysinfo(&info)


your changes introduced a new FTBFS in kdeutils/ksim/systeminfo.cpp. The 
following patch causes this:

 #ifdef __linux__
   sysinfo system;
-  if (syscall(SYS_sysinfo, &system) < 0) {
-    fprintf(stderr, "Error calling syscall()\n");
+  if (sysinfo(&system) < 0) {
+    fprintf(stderr, "Error calling sysinfo()\n");

The construct is obviously wrong because "sysinfo" cannot be at the same time 
a type identifier and a function. Prefixing the type identifier with "struct" 
fixes the problem.

I am attaching the patch I have committed to CVS.
  Thiago Macieira  -  Registered Linux user #65028
   thiagom (AT) mail (dot) com
    ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ksim-systeminfo.diff
Type: text/x-diff
Size: 547 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031224/e77f4dcd/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: signature
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031224/e77f4dcd/attachment.sig>

More information about the kde-core-devel mailing list