digitalmars.D - FreeBSD compile issue
- Tyler (30/30) Mar 27 2014 Hi,
- Martin Nowak (6/35) Mar 27 2014 Can you check, whether dmd is explicitly linking with -pthread?
- Joakim (4/22) Mar 27 2014 That is a very old FreeBSD release. dmd from ports doesn't even
Hi,
I need to compile a D program in FreeBSD. I've followed the
FreeBSD instructions. So far, dmd is creating the obj file, but
there appears to be a problem with the linker. The error messages
are very cryptic. I was hoping someone might have an idea what
they mean and what I'm doing wrong here.
<CODE>
$ more hello.d
import std.stdio;
int main(string[] args)
{
writefln("Hello World\n");
return 0;
}
$ uname -a
14:37:25 UTC 2009
root logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
$
$
$ dmd hello.d
/home/jordantk/dmd2/freebsd/bin32/../lib32/libphobos2.a(thread_105_713.o)(.text.thre
d_entryPoint+0xf3):
In function `thread_entryPoint':
: undefined reference to `__pthread_cleanup_push_imp'
/home/jordantk/dmd2/freebsd/bin32/../lib32/libphobos2.a(thread_105_713.o)(.text.threa
_entryPoint+0x17b):
In function `thread_entryPoint':
: undefined reference to `__pthread_cleanup_pop_imp'
--- errorlevel 1
$
</CODE>
Mar 27 2014
On 03/27/2014 03:29 PM, Tyler wrote:
Hi,
I need to compile a D program in FreeBSD. I've followed the FreeBSD
instructions. So far, dmd is creating the obj file, but there appears to
be a problem with the linker. The error messages are very cryptic. I was
hoping someone might have an idea what they mean and what I'm doing
wrong here.
<CODE>
$ more hello.d
import std.stdio;
int main(string[] args)
{
writefln("Hello World\n");
return 0;
}
$ uname -a
UTC 2009 root logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
$
$
$ dmd hello.d
/home/jordantk/dmd2/freebsd/bin32/../lib32/libphobos2.a(thread_105_713.o)(.text.thread_entryPoint+0xf3):
In function `thread_entryPoint':
: undefined reference to `__pthread_cleanup_push_imp'
/home/jordantk/dmd2/freebsd/bin32/../lib32/libphobos2.a(thread_105_713.o)(.text.thread_entryPoint+0x17b):
In function `thread_entryPoint':
: undefined reference to `__pthread_cleanup_pop_imp'
--- errorlevel 1
$
</CODE>
Can you check, whether dmd is explicitly linking with -pthread?
It might an issue of libkse vs. libthr?
https://github.com/freebsd/freebsd/blob/0680c1f5fe159bba69a242568af0db7d7dc15a79/lib/libthr/thread/thr_clean.c#L49
We're building the binary releases on FreeBSD 8.4, so upgrading might
help too.
Mar 27 2014
On Thursday, 27 March 2014 at 14:29:25 UTC, Tyler wrote:
Hi,
I need to compile a D program in FreeBSD. I've followed the
FreeBSD instructions. So far, dmd is creating the obj file, but
there appears to be a problem with the linker. The error
messages are very cryptic. I was hoping someone might have an
idea what they mean and what I'm doing wrong here.
<CODE>
$ more hello.d
import std.stdio;
int main(string[] args)
{
writefln("Hello World\n");
return 0;
}
$ uname -a
14:37:25 UTC 2009
root logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
That is a very old FreeBSD release. dmd from ports doesn't even
compile for anything less than FreeBSD 8. I suggest you at least
upgrade to 7-stable, better another release branch completely.
Mar 27 2014
Thanks for the info. The issue is a FreeBSD 6.2 system that unfortunately can't be upgraded. Do you think it will run if it's compiled on an x86 FreeBSD 8.4 system and moved to the 6.2 system? -Tyler On Thursday, 27 March 2014 at 18:16:18 UTC, Joakim wrote:On Thursday, 27 March 2014 at 14:29:25 UTC, Tyler wrote:Hi, I need to compile a D program in FreeBSD. I've followed the FreeBSD instructions. So far, dmd is creating the obj file, but there appears to be a problem with the linker. The error messages are very cryptic. I was hoping someone might have an idea what they mean and what I'm doing wrong here. <CODE> $ more hello.d import std.stdio; int main(string[] args) { writefln("Hello World\n"); return 0; } $ uname -a 14:37:25 UTC 2009 root logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386That is a very old FreeBSD release. dmd from ports doesn't even compile for anything less than FreeBSD 8. I suggest you at least upgrade to 7-stable, better another release branch completely.
Mar 31 2014
On Monday, 31 March 2014 at 12:02:43 UTC, Tyler wrote:Thanks for the info. The issue is a FreeBSD 6.2 system that unfortunately can't be upgraded. Do you think it will run if it's compiled on an x86 FreeBSD 8.4 system and moved to the 6.2 system?No idea, all I know is that dmd in ports was disabled on FreeBSD/7 years ago: http://svnweb.freebsd.org/ports?view=revision&revision=267685 Maybe you can patch dmd or whatever else is necessary to get it working on older FreeBSD versions.
Apr 01 2014









Martin Nowak <code dawg.eu> 