datetime fails with undefined reference
Jonathan M Davis
jmdavisProg at gmx.com
Fri Feb 18 13:36:53 PST 2011
On Friday, February 18, 2011 12:29:40 Kai Meyer wrote:
> == Quote from Jonathan M Davis (jmdavisProg at gmx.com)'s article
>
> > On Friday, February 18, 2011 10:12:09 Kai Meyer wrote:
> > > Great news! Worked like a champ. Is there documentation somewhere that
> > > I missed? I would love to be able to answer these questions on my own.
> > > I've been stumped on this one for a week :(
> >
> > That should be in the dmd.conf in dmd.2.052.zip. If you're using an old
> > dmd.conf, that would be the problem. Actually, I wouldn't have expected
> > and old dmd.conf to work at all, since the directory structure for the
> > lib folder(s) was changed due to the addition of 64-bit. So, I don't
> > know what the deal with your setup is. Regardless, make sure that your
> > current dmd.conf is either the most up-to-date on or at least based on
> > it. Otherwise, you're going to be running into issues.
> > - Jonathan M Davis
>
> Ok, my dmd.conf that came with the download does not have it in there. The
> package doesn't claim ownership to /etc/dmd.conf. I removed the rpm
> package, deleted the old dmd.conf, and installed the rpm again, but the
> dmd.conf that was generated is exactly the same:
> [kai at worky ~]$ cat /etc/dmd.conf
>
> [Environment]
>
> DFLAGS= -I/usr/include/d/dmd/phobos -I/usr/include/d/dmd/druntime/import
> -L-L/usr/lib
>
>
> Should I just simply add "-L-lrt" to the dmd.conf for now? Or just put it
> in my make file?
>
> Why does the rpm not claim ownership of the config file?:
> [kai at worky ~]$ rpm -qf /etc/dmd.conf
> file /etc/dmd.conf is not owned by any package
> [kai at worky ~]$ rpm -ql dmd | grep dmd.conf
> /usr/share/man/man5/dmd.conf.5.gz
>
> Thanks for the fast replies!
If you just use the zip file, you're fine. I don't know what the state of the rpm
is. I just always use the zip file. It's nice and self contained. All you have to
do is make sure that /path/to/dmd2/linux/bin is on your PATH.
The current dmd.conf should look like this:
=======
[Environment]
DFLAGS=-I%@P%/../../src/phobos -I%@P%/../../src/druntime/import -L-
L%@P%/../lib32 -L-L%@P%/../lib64 -L--no-warn-search-mismatch -L--export-dynamic
-L-lrt
=======
If the pieces get moved elsewhere (such as installing libphobos2.a in a /usr/lib
or something similar), then the paths would have to be updated though. Also,
according to the online docs:
====
dmd will look for the initialization file dmd.conf in the following sequence of
directories:
1. current working directory
2. directory specified by the HOME environment variable
3. directory dmd resides in
4. /etc/
======
So, maybe you need to just put the correct dmd.conf in one of the first three
spots. Or you could just edit /etc/dmd.conf. I don't know what exactly the rpm
does, so I don't know what it does with dmd.conf. But you have several options.
Really, -L-lrt _should_ be in dmd.conf since core.time and std.datetime require
it, but ultimately what matters is that it be in your DFLAGS so that dmd uses it
when compiling.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list