Thread overview
problem compiling dli : undefined reference to `errno'
May 19, 2003
Giles Constant
May 19, 2003
Walter
May 20, 2003
Giles Constant
May 20, 2003
Giles Constant
May 20, 2003
Walter
May 21, 2003
Giles Constant
May 21, 2003
John Reimer
May 22, 2003
Walter
May 23, 2003
Mark T
May 23, 2003
Walter
May 19, 2003
Hi there,

Is this a problem with gcc3.2, or with the dli sources?  I've heard there's problems in libc with gcc3.2 relating to errno, but didn't really understand the thread :-)

gilescpc2# make
make -C phobos
make[1]: Entering directory `/usr/local/src/dli-0.1.2/phobos'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/local/src/dli-0.1.2/phobos'
./dli test.d -unittest
phobos/libphobos.so: undefined reference to `errno'
collect2: ld returned 1 exit status
./test hello arguments
make: ./test: Command not found
make: *** [testfoo] Error 127
gilescpc2# uname -a
Linux gilescpc2.d1.hyperlink-interactive.co.uk 2.5.66 #8 Tue Apr 8 11:19:18
BST 2003 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux
gilescpc2# gcc --version
gcc (GCC) 3.2.2
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Thanks for any help,

Giles

May 19, 2003
Since errno is implemented as a macro on many C compiler systems, referencing "errno" from D code will rarely work. Therefore, use instead the function getErrno() which is defined in phobos/errno.c, which essentially translates the macro into something usable by D.


May 20, 2003
Walter wrote:

> Since errno is implemented as a macro on many C compiler systems, referencing "errno" from D code will rarely work. Therefore, use instead the function getErrno() which is defined in phobos/errno.c, which essentially translates the macro into something usable by D.

**I** didn't use errno! :-)  It doesn't appear in the source either.. it appears to be a linker error when compiling with dli itself - even if I try to compile "hello_world.d" without referencing 'errno' at all, it pops up with a complaint about errno.  See the original comment - I got the error immediately after typing "make" within the dli sources.

May 20, 2003
I wrote:

> **I** didn't use errno! :-)  It doesn't appear in the source either.. it
> appears to be a linker error when compiling with dli itself - even if I
> try to compile "hello_world.d" without referencing 'errno' at all, it pops
> up
> with a complaint about errno.  See the original comment - I got the error
> immediately after typing "make" within the dli sources.

eg:

gilescpc2# cat hello_world.d
import string;

int main(char[][] args)
{
   printf("Hello world!\n");
   return 0;
}

gilescpc2# ./dli hello_world.d
phobos/libphobos.so: undefined reference to `errno'
collect2: ld returned 1 exit status
gilescpc2# pwd
/usr/local/src/dli-0.1.2

May 20, 2003
I suggest switching to the DMD linux version.


May 21, 2003
ah.. now i'm getting results.. thanks :-)

Quick question - how does one build it from source?  There don't appear to be any makefiles or anything.  I'd be interested in creating a gentoo package out of it.

Walter wrote:

> I suggest switching to the DMD linux version.

May 21, 2003
Giles Constant wrote:
> ah.. now i'm getting results.. thanks :-)
> 
> Quick question - how does one build it from source?  There don't appear to
> be any makefiles or anything.  I'd be interested in creating a gentoo
> package out of it.
> 


So far as I know, Walter has released DMD Linux in binary form only (except for the front end?).  I think a gentoo ebuild would be great too, but it would have to be a binary only package (which is completely feasible).

A future Redhat RPM and Gentoo ebuild (and perhaps other distribution packages) would be a great form of publicity for the D language, I think.  I really hope this happens soon.

By the way, has anyone tried DMD Linux on FreeBSD yet (using the linux compatibility layer)?

Later,

John

May 22, 2003
"John Reimer" <jjreimer@telus.net> wrote in message news:bag9mn$2lio$1@digitaldaemon.com...
> So far as I know, Walter has released DMD Linux in binary form only
> (except for the front end?).

That's correct.

> A future Redhat RPM and Gentoo ebuild (and perhaps other distribution packages) would be a great form of publicity for the D language, I think.  I really hope this happens soon.

I  fully support the D community integrating D in with GCC!

> By the way, has anyone tried DMD Linux on FreeBSD yet (using the linux
> compatibility layer)?

Not yet that I know of.


May 23, 2003
In article <baj0m1$2e0e$1@digitaldaemon.com>, Walter says...
>
>
>"John Reimer" <jjreimer@telus.net> wrote in message news:bag9mn$2lio$1@digitaldaemon.com...
>> So far as I know, Walter has released DMD Linux in binary form only
>> (except for the front end?).
>
>That's correct.
>
>> A future Redhat RPM and Gentoo ebuild (and perhaps other distribution packages) would be a great form of publicity for the D language, I think.  I really hope this happens soon.
>
>I  fully support the D community integrating D in with GCC!

I think he really met packaging up your binary etc as a RPM for ease of
installation.
RPM is one of the standard install techniques for Linux, it is separate from GCC
etc.  For an Alpha/Beta product I'm not sure if this is necessary, I found DMD
linux to be very easy to get working.
If someday in the future, you sell a commercial DMD Linux distribution you would
really need to address this. I'm sure many of the smart folks in this forum
would be glad to give their assistance with this.






May 23, 2003
"Mark T" <Mark_member@pathlink.com> wrote in message news:baldfn$2lag$1@digitaldaemon.com...
> I think he really met packaging up your binary etc as a RPM for ease of
> installation.
> RPM is one of the standard install techniques for Linux, it is separate
from GCC
> etc.  For an Alpha/Beta product I'm not sure if this is necessary, I found
DMD
> linux to be very easy to get working.
> If someday in the future, you sell a commercial DMD Linux distribution you
would
> really need to address this. I'm sure many of the smart folks in this
forum
> would be glad to give their assistance with this.

Ok, I see.