error importing std.intrinsic on linux Digital Mars D Compiler v2.008

Guillaume Chatelet chatelet.guillaume at gmail.com
Sat Oct 30 01:06:21 PDT 2010


I'm trying to build the following helloworld on Linux Gentoo :

> import std.stdio;

void main ()

{

    writefln("hello world !!");

}


invoking 'dmd hello.d -v' gives

> parse     hello

semantic  hello

import    object        (/opt/dmd/src/phobos/object.d)

import    std.stdio     (/opt/dmd/src/phobos/std/stdio.d)

import    std.c.stdio   (/opt/dmd/src/phobos/std/c/stdio.d)

import    std.c.stddef  (/opt/dmd/src/phobos/std/c/stddef.d)

import    std.c.stdarg  (/opt/dmd/src/phobos/std/c/stdarg.d)

import    std.format    (/opt/dmd/src/phobos/std/format.d)

import    std.stdarg    (/opt/dmd/src/phobos/std/stdarg.d)

import    std.utf       (/opt/dmd/src/phobos/std/utf.d)

import    std.contracts (/opt/dmd/src/phobos/std/contracts.d)

import    std.conv      (/opt/dmd/src/phobos/std/conv.d)

/opt/dmd/src/phobos/std/conv.d(1468): number is not representable

import    std.string    (/opt/dmd/src/phobos/std/string.d)

import    std.c.stdlib  (/opt/dmd/src/phobos/std/c/stdlib.d)

import    std.c.string  (/opt/dmd/src/phobos/std/c/string.d)

import    std.uni       (/opt/dmd/src/phobos/std/uni.d)

import    std.array     (/opt/dmd/src/phobos/std/array.d)

import    std.ctype     (/opt/dmd/src/phobos/std/ctype.d)

import    std.typetuple (/opt/dmd/src/phobos/std/typetuple.d)

import    std.traits    (/opt/dmd/src/phobos/std/traits.d)

import    std.math      (/opt/dmd/src/phobos/std/math.d)

/opt/dmd/src/phobos/std/math.d(703): number is not representable

import    std.c.math    (/opt/dmd/src/phobos/std/c/math.d)

import    std.system    (/opt/dmd/src/phobos/std/system.d)

import    std.gc        (/opt/dmd/src/phobos/std/gc.d)

import    gcstats       (/opt/dmd/src/phobos/gcstats.d)

import    std.file      (/opt/dmd/src/phobos/std/file.d)

import    std.path      (/opt/dmd/src/phobos/std/path.d)

import    std.c.linux.linux     (/opt/dmd/src/phobos/std/c/linux/linux.d)

import    std.c.linux.linuxextern
> (/opt/dmd/src/phobos/std/c/linux/linuxextern.d)

import    std.c.linux.pthread   (/opt/dmd/src/phobos/std/c/linux/pthread.d)

import    std.intrinsic (/opt/dmd/src/phobos/std/intrinsic.d)

/opt/dmd/src/phobos/std/c/linux/linux.d(444): Error: Integer constant
> expression expected instead of _SIGSET_NWORDS

/opt/dmd/src/phobos/std/c/linux/linux.d(444): Error: Integer constant
> expression expected instead of _SIGSET_NWORDS

/opt/dmd/src/phobos/std/c/linux/linux.d(444): Error: Integer constant
> expression expected instead of _SIGSET_NWORDS

/opt/dmd/src/phobos/std/c/linux/linux.d(444): Error: Integer constant
> expression expected instead of _SIGSET_NWORDS

import    std.outofmemory       (/opt/dmd/src/phobos/std/outofmemory.d)

import    std.regexp    (/opt/dmd/src/phobos/std/regexp.d)

import    std.outbuffer (/opt/dmd/src/phobos/std/outbuffer.d)

import    std.bitmanip  (/opt/dmd/src/phobos/std/bitmanip.d)

import    std.metastrings       (/opt/dmd/src/phobos/std/metastrings.d)


DMD version is v2.008, gentoo ebuild is dev-lang/dmd-bin-2.008-r1

The relevant lines in linux.d file are, l.444 is 'uint[_SIGSET_NWORDS]
__val;'

> extern (C)

{

    /* from <pwd.h>

     */


>     struct passwd

    {

        char *pw_name;

        char *pw_passwd;

        uid_t pw_uid;

        gid_t pw_gid;

        char *pw_gecos;

        char *pw_dir;

        char *pw_shell;

    }


>     const size_t _SIGSET_NWORDS = 1024 / (8 * uint.sizeof);

    struct sigset_t

    {

        uint[_SIGSET_NWORDS] __val;

    }


>     int getpwnam_r(const(char)*, passwd*, void*, size_t, passwd**);

    passwd* getpwnam(in char*);

    passwd* getpwuid(uid_t);

    int getpwuid_r(uid_t, passwd*, char*, size_t, passwd**);

    int kill(pid_t, int);

    int sem_close(sem_t*);

    int sigemptyset(sigset_t*);

    int sigfillset(sigset_t*);

    int sigismember(sigset_t*, int);

    int sigsuspend(sigset_t*);

}


My linux kernel version is 2.6.35-gentoo-r10, the _SIGSET_NWORDS constant is
defined in '/usr/include/bits/sigset.h' and value is

> # define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))


Is it serious doc ?

Guillaume Chatelet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-bugs/attachments/20101030/8a84298f/attachment-0001.html>


More information about the Digitalmars-d-bugs mailing list