www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D and FreeBSD

reply Jona Joachim <jaj13 web.de> writes:
Hi!
I'm very new to D and I appreciate it very much.
It's what C++ should have been in the first place IMHO.

I'm a FreeBSD user so I'd like to see the D programming language evolve on
this OS, too.
When I saw that wxD 0.07 was released I decided to give it a try and
ported it to FreeBSD. It wasn't really difficult.
I built it using GDC exclusively as DMD is not available in the FreeBSD
ports.
Do you think there are any concerns about building the sources with GDC
instead of DMD? All test programs seamed to work fine. The only warning I
got during the build process was:

gdc: unrecognized option `-version=__WXGTK__'

Furthermore I'd like to know if the DMD license allows me to write a
FreeBSD port of DMD which installs the Linux binary distribution and runs
it under the FreeBSD Linux compatibility layer. The port would fetch the
distfiles automatically from the Digital Mars FTP server and install them
locally.
Is this in accordance with:
"The Software is copyrighted and comes with a single user license,
and may not be redistributed. If you wish to obtain a redistribution license,
please contact Digital Mars."

If not, is it ok if the user fetches the distfiles manually and the port
installs the binaries?

Do you think Digital Mars would provide FreeBSD binaries if there is
enough interest from the FreeBSD users?

Best regards,
Jona
Aug 30 2006
next sibling parent Kyle Furlong <kylefurlong gmail.com> writes:
Jona Joachim wrote:
 Hi!
 I'm very new to D and I appreciate it very much.
 It's what C++ should have been in the first place IMHO.
 
 I'm a FreeBSD user so I'd like to see the D programming language evolve on
 this OS, too.
 When I saw that wxD 0.07 was released I decided to give it a try and
 ported it to FreeBSD. It wasn't really difficult.
 I built it using GDC exclusively as DMD is not available in the FreeBSD
 ports.
 Do you think there are any concerns about building the sources with GDC
 instead of DMD? All test programs seamed to work fine. The only warning I
 got during the build process was:
 
 gdc: unrecognized option `-version=__WXGTK__'
 
 Furthermore I'd like to know if the DMD license allows me to write a
 FreeBSD port of DMD which installs the Linux binary distribution and runs
 it under the FreeBSD Linux compatibility layer. The port would fetch the
 distfiles automatically from the Digital Mars FTP server and install them
 locally.
 Is this in accordance with:
 "The Software is copyrighted and comes with a single user license,
 
 and may not be redistributed. If you wish to obtain a redistribution license,
 
 please contact Digital Mars."
 
 If not, is it ok if the user fetches the distfiles manually and the port
 installs the binaries?
 
 Do you think Digital Mars would provide FreeBSD binaries if there is
 enough interest from the FreeBSD users?
 
 Best regards,
 Jona

While I don't know the legality for certain, I'm sure such an effort would be most welcome! :-D -- Kyle Furlong // Physics Undergrad, UCSB "D is going wherever the D community wants it to go." - Walter Bright
Aug 30 2006
prev sibling next sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

 When I saw that wxD 0.07 was released I decided to give it a try and
 ported it to FreeBSD. It wasn't really difficult.
 I built it using GDC exclusively as DMD is not available in the FreeBSD
 ports.

GDC is the preferred compiler for wxD, so that should be just fine.
 Do you think there are any concerns about building the sources with GDC
 instead of DMD? All test programs seamed to work fine. The only warning I
 got during the build process was:
 
 gdc: unrecognized option `-version=__WXGTK__'

It should have worked out of the box, using GNU Make ? ("gmake") Anyway, -version is the wrong syntax for gdc - it uses -fversion So you need to either modify the above, or use "gdmd" instead... DMD uses DMC syntax, and GDC uses GCC syntax and they're different. gdmd -version=__WXGTK__ gdc -fversion=__WXGTK__ Wonder why it didn't include the config. `uname` == "FreeBSD", yes ?
 Furthermore I'd like to know if the DMD license allows me to write a
 FreeBSD port of DMD which installs the Linux binary distribution and runs
 it under the FreeBSD Linux compatibility layer. The port would fetch the
 distfiles automatically from the Digital Mars FTP server and install them
 locally.

We did this for the Gentoo ebuild, as long as the distfile isn't stored anywhere it should comply with the non-distribute license ? But Walter would know for certain. --anders
Aug 30 2006
next sibling parent Walter Bright <newshound digitalmars.com> writes:
Anders F Björklund wrote:
 We did this for the Gentoo ebuild, as long as the distfile isn't
 stored anywhere it should comply with the non-distribute license ?

That's correct.
Aug 30 2006
prev sibling parent reply Jona Joachim <jaj13 web.de> writes:
On Wed, 30 Aug 2006 18:21:59 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:

 Do you think there are any concerns about building the sources with GDC
 instead of DMD? All test programs seamed to work fine. The only warning I
 got during the build process was:
 
 gdc: unrecognized option `-version=__WXGTK__'

It should have worked out of the box, using GNU Make ? ("gmake") Anyway, -version is the wrong syntax for gdc - it uses -fversion So you need to either modify the above, or use "gdmd" instead...

Unfortunately it doesn't work out of the box. There are always small changes that have to be made when porting to FreeBSD. For example FreeBSD people tend to add version numbers to executables so that you can install multiple versions of a software in parallel. wx-config becomes wxgtk2-2.6-config. The good part is that you don't really have to worry about this: if you don't define the WX_CONFIG variable it will be defined automatically by the ports framework if you tell it that you plan to use wxWidgets. Furthermore the FreeBSD port of gdc doesn't come with gdmd. That's why I had to set DMD=gdc. I will change the syntax of the parameters. Also there is no command called arch in FreeBSD so ARCH=$(shell (arch 2>/dev/null || echo i386) | sed -e s/i.86/x86/ ) becomes ARCH=$(shell (uname -m) | sed -e s/i.86/x86/ ) A lot of small changes like these have to be made.
 DMD uses DMC syntax, and GDC uses GCC syntax and they're different.
 gdmd -version=__WXGTK__
 gdc -fversion=__WXGTK__
 
 Wonder why it didn't include the config. `uname` == "FreeBSD", yes ?

Yes, uname returns "FreeBSD". config.`uname` is included in the Samples directory but not in the wx directory. Jona
Aug 30 2006
next sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

It should have worked out of the box, using GNU Make ? ("gmake")

Unfortunately it doesn't work out of the box. There are always small changes that have to be made when porting to FreeBSD.

Yeah, isn't that always the case ? :-) (well, I tried my best...) Need to get around to setting up that FreeBSD environment some day.
 For example FreeBSD people tend to add version numbers to executables so
 that you can install multiple versions of a software in parallel.
 wx-config becomes wxgtk2-2.6-config. The good part is that you don't
 really have to worry about this: if you don't define the WX_CONFIG
 variable it will be defined automatically by the ports framework if you
 tell it that you plan to use wxWidgets.

That is why I introduced the WX_CONFIG parameter, so that any platforms that deviate from the standard wxWidgets name ("wx-config") can set it. I have several wx configs, and wx-config is a symlink to the one I use ?
 Furthermore the FreeBSD port of gdc doesn't come with gdmd. That's why I
 had to set DMD=gdc. I will change the syntax of the parameters.

OK, so the FreeBSD port sounds broken (it should ship the gdmd wrapper) Still, for my Makefiles to work - you should use DMD=gdmd or DC=gdc...
 Also there is no command called arch in FreeBSD so
 ARCH=$(shell (arch 2>/dev/null || echo i386) | sed -e s/i.86/x86/ )
 becomes
 ARCH=$(shell (uname -m) | sed -e s/i.86/x86/ )

Yeah, this why I did that || song-and-dance routine in the first place. You see, `uname -m` returns "Power Macintosh" (!) here so it is useless. I think I will go with `arch 2>/dev/null || uname -m || echo i386`
 A lot of small changes like these have to be made.

Thankful for any patches you have, I do want wxD to work on FreeBSD too. http://sourceforge.net/tracker/?atid=729441&group_id=133831&func=browse --anders
Aug 30 2006
parent reply Jona Joachim <jaj13 web.de> writes:
On Thu, 31 Aug 2006 09:28:51 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:
 
It should have worked out of the box, using GNU Make ? ("gmake")

Unfortunately it doesn't work out of the box. There are always small changes that have to be made when porting to FreeBSD.

Yeah, isn't that always the case ? :-) (well, I tried my best...) Need to get around to setting up that FreeBSD environment some day.

That can be dangerous, perhaps you will like it so much that you will stick with it ;)
 For example FreeBSD people tend to add version numbers to executables so
 that you can install multiple versions of a software in parallel.
 wx-config becomes wxgtk2-2.6-config. The good part is that you don't
 really have to worry about this: if you don't define the WX_CONFIG
 variable it will be defined automatically by the ports framework if you
 tell it that you plan to use wxWidgets.

That is why I introduced the WX_CONFIG parameter, so that any platforms that deviate from the standard wxWidgets name ("wx-config") can set it.

Perhaps you should check if WX_CONFIG is set and only set it if it is not already set because the way it is now you overwrite the WX_CONFIG variable. Perhaps you could do the same for the MAKE variable.
 I have several wx configs, and wx-config is a symlink to the one I use ?

I always had a symlink from sdl11-config to sdl-config but I nearly forgot some patches when porting SGE because of this so I decided to remove the symlink.
 Furthermore the FreeBSD port of gdc doesn't come with gdmd. That's why I
 had to set DMD=gdc. I will change the syntax of the parameters.

OK, so the FreeBSD port sounds broken (it should ship the gdmd wrapper)

I checked again to be sure. It only installs the gdc and cc1d binaries.
 A lot of small changes like these have to be made.

Thankful for any patches you have, I do want wxD to work on FreeBSD too. http://sourceforge.net/tracker/?atid=729441&group_id=133831&func=browse

I put my FreeBSD specific patches here: http://webplaza.pt.lu/~mpjjjjsj/files/wxD/patch-wxd-Makefile http://webplaza.pt.lu/~mpjjjjsj/files/wxD/patch-wxd-wx-Makefile http://webplaza.pt.lu/~mpjjjjsj/files/wxD/patch-wxd-wxc-Makefile Here is also the Makefile of the port in case you're interested: http://webplaza.pt.lu/~mpjjjjsj/files/wxD/Makefile Strangely I have to rename the GNUmakefiles to Makefile because gmake doesn't find them otherwise when run from the port. Perhaps it is called with -f Makefile, I don't know. Furthermore $(INSTALL) -p *.d $(libdir)/d/wx/ doesn't work: install -p *.d /var/tmp/wxd/lib/d/wx/ install: wrong number or types of arguments usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode] [-o owner] file1 file2 install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode] [-o owner] file1 ... fileN directory install -d [-v] [-g group] [-m mode] [-o owner] directory ... I tried $(INSTALL) -p `ls -1 | grep -v Makefile` $(libdir)/d/wx/ but it returns the same error. Jona
Aug 31 2006
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

Need to get around to setting up that FreeBSD environment some day.

That can be dangerous, perhaps you will like it so much that you will stick with it ;)

Nah - thanks to the wonders of virtualization, I can have it all ! :-)
That is why I introduced the WX_CONFIG parameter, so that any platforms
that deviate from the standard wxWidgets name ("wx-config") can set it.

Perhaps you should check if WX_CONFIG is set and only set it if it is not already set because the way it is now you overwrite the WX_CONFIG variable. Perhaps you could do the same for the MAKE variable.

I'll try to come up with something clever, but it'll require /bin/sh For some reason FreeBSD comes with the drain-bamaged csh by default, and that won't do. It doesn't have to be bash, but something usable...
OK, so the FreeBSD port sounds broken (it should ship the gdmd wrapper)

I checked again to be sure. It only installs the gdc and cc1d binaries.

The tarball from http://dgcc.sourceforge.net is OK, so it's a Port bug.
 Strangely I have to rename the GNUmakefiles to Makefile because gmake
 doesn't find them otherwise when run from the port. Perhaps it is called
 with -f Makefile, I don't know.

Probably because it is calling "make" and not "gmake" ? (MAKE=gmake) They are called GNUmakefile so that Digital Mars Make will miss them.
 Furthermore
 $(INSTALL) -p *.d $(libdir)/d/wx/
 doesn't work:

It requires GNU Install, so you need "coreutils" and a INSTALL=ginstall (I must confess that I didn't test installing it, just building Samples) Should probably have written explicity that it requires the GNU tools, even if we do support the Digital Mars tools as well out of kindness. --anders
Aug 31 2006
parent reply Jona Joachim <jaj13 web.de> writes:
On Thu, 31 Aug 2006 17:28:35 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:
 Perhaps you should check if WX_CONFIG is set and only set it if it is not
 already set because the way it is now you overwrite the WX_CONFIG
 variable. Perhaps you could do the same for the MAKE variable.

I'll try to come up with something clever, but it'll require /bin/sh For some reason FreeBSD comes with the drain-bamaged csh by default, and that won't do. It doesn't have to be bash, but something usable...

sh is part of the FreeBSD base system so that will be fine. What's wrong with csh?
 Strangely I have to rename the GNUmakefiles to Makefile because gmake
 doesn't find them otherwise when run from the port. Perhaps it is
 called with -f Makefile, I don't know.

Probably because it is calling "make" and not "gmake" ? (MAKE=gmake)

It actually calls gmake. In the port Makefile you can read USE_GMAKE=yes I even put MAKE=gmake in the patches which is not a good idea since it will only find gmake if it's in the path. The port sets this variable automatically if you define USE_GMAKE.
 Furthermore
 $(INSTALL) -p *.d $(libdir)/d/wx/
 doesn't work:

It requires GNU Install, so you need "coreutils" and a INSTALL=ginstall (I must confess that I didn't test installing it, just building Samples)

Ok, I'll try that Jona
Aug 31 2006
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

For some reason FreeBSD comes with the drain-bamaged csh by default,
and that won't do. It doesn't have to be bash, but something usable...

What's wrong with csh?

Error redirects don't work it seems ? I recall a lot of fighting with tcsh in Mac OS X 10.2, that all went away with Mac OS X 10.3 and bash
 It actually calls gmake. In the port Makefile you can read USE_GMAKE=yes
 I even put MAKE=gmake in the patches which is not a good idea since it
 will only find gmake if it's in the path. The port sets this
 variable automatically if you define USE_GMAKE.

I'll try your Port, and will follow up by email / on the wxD pages. The code and programs work fine, it's just a little Make juggling... --anders
Aug 31 2006
next sibling parent reply Jona Joachim <jaj13 web.de> writes:
On Thu, 31 Aug 2006 20:27:37 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:
 
For some reason FreeBSD comes with the drain-bamaged csh by default,
and that won't do. It doesn't have to be bash, but something usable...

What's wrong with csh?

Error redirects don't work it seems ? I recall a lot of fighting with tcsh in Mac OS X 10.2, that all went away with Mac OS X 10.3 and bash
 It actually calls gmake. In the port Makefile you can read USE_GMAKE=yes
 I even put MAKE=gmake in the patches which is not a good idea since it
 will only find gmake if it's in the path. The port sets this
 variable automatically if you define USE_GMAKE.

I'll try your Port, and will follow up by email / on the wxD pages. The code and programs work fine, it's just a little Make juggling...

Yes. I also know why install failed. There's no need for ginstall, BSD install handles it fine but you forgot $(INSTALL) -d $(libdir)/d/wx/ Jona
Aug 31 2006
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

The code and programs work fine, it's just a little Make juggling...

Yes. I also know why install failed. There's no need for ginstall, BSD install handles it fine but you forgot $(INSTALL) -d $(libdir)/d/wx/

Thanks, silly typo there... (fixed, but it's the files that were wrong) ---anders
Aug 31 2006
prev sibling parent reply Jona Joachim <jaj13 web.de> writes:
On Thu, 31 Aug 2006 20:27:37 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:
 
For some reason FreeBSD comes with the drain-bamaged csh by default,
and that won't do. It doesn't have to be bash, but something usable...

What's wrong with csh?

Error redirects don't work it seems ? I recall a lot of fighting with tcsh in Mac OS X 10.2, that all went away with Mac OS X 10.3 and bash
 It actually calls gmake. In the port Makefile you can read USE_GMAKE=yes
 I even put MAKE=gmake in the patches which is not a good idea since it
 will only find gmake if it's in the path. The port sets this
 variable automatically if you define USE_GMAKE.

I'll try your Port, and will follow up by email / on the wxD pages. The code and programs work fine, it's just a little Make juggling... --anders

I corrected some stuff. The port should now build and install correctly. Here is a gzipped tarball of the port: http://webplaza.pt.lu/~mpjjjjsj/files/wxd.tar.gz Here is an i386 binary package: http://webplaza.pt.lu/~mpjjjjsj/files/wxd-0.07.tbz
Aug 31 2006
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

 I corrected some stuff. The port should now build and install correctly.
 
 Here is a gzipped tarball of the port:
 http://webplaza.pt.lu/~mpjjjjsj/files/wxd.tar.gz

Thanks for the files. The patches and the workarounds should not be needed with wxD 0.08 (wonder about the DESTDIR changes though, those shouldn't really be necessary, will have to investigate it) But I'll make sure to test a Port on the PC-BSD before release... As it is now, wxD is in a Alpha release and only supports static linking of the wx libraries. With the Beta release, that'll change. Also - had a contribution for wXAUI, so that's going into 0.08 too. --anders
Aug 31 2006
parent reply Jona Joachim <jaj13 web.de> writes:
On Fri, 01 Sep 2006 00:29:57 +0200, Anders F Björklund wrote:

 Jona Joachim wrote:
 
 I corrected some stuff. The port should now build and install correctly.
 
 Here is a gzipped tarball of the port:
 http://webplaza.pt.lu/~mpjjjjsj/files/wxd.tar.gz

Thanks for the files. The patches and the workarounds should not be needed with wxD 0.08 (wonder about the DESTDIR changes though, those shouldn't really be necessary, will have to investigate it)

There was a big discussion recently about the implementation of DESTDIR on the FreeBSD ports mailing list. The current implementation is problematic in some situations [1] and it's not trivial to implement it right. Contributors were told to wait a bit until they make their ports DESTDIR aware [2]. I have one more question concerning unicode support in wxWidgets/wxD. When I built the wxD samples using the non-unicode version of wxWidgets I got errors concerning encoding when I tried the HTML example programs. I tried to build it using the unicode version and all errors went away. I just have to specify WX_UNICODE= yes in the port's Makefile to use the unicode version. This changes WX_CONFIG from wxgtk2-2.6-config to wxgtk2u-2.6-config. Do you think wxD should use the unicode version per default or do you think the user should choose if he wants to use unicode or not? [1] http://docs.freebsd.org/cgi/mid.cgi?20060814234414.GA57035 [2] http://docs.freebsd.org/cgi/mid.cgi?44E35E5A.1090306
Aug 31 2006
parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

Thanks for the files. The patches and the workarounds should not
be needed with wxD 0.08 (wonder about the DESTDIR changes though,
those shouldn't really be necessary, will have to investigate it)

There was a big discussion recently about the implementation of DESTDIR on the FreeBSD ports mailing list. The current implementation is problematic in some situations [1] and it's not trivial to implement it right. Contributors were told to wait a bit until they make their ports DESTDIR aware [2].

Strange that FreeBSD haven't got their act together about DESTDIR/prefix but wxD uses the GNU packaging standard and will install to $(DESTDIR). http://www.gnu.org/prep/standards/html_node/DESTDIR.html It also happens to work out of the box with RPM, which is what I use... (well, "will use eventually" as you saw with the directory typo :-) )
 Do you think wxD should use the unicode version per default or do you
 think the user should choose if he wants to use unicode or not?

That's up to the wxWidgets library, but wxD should work with both... As I understand wx, "ANSI" means UTF-8 but "Unicode" means UTF-16/32 (default is currently "ANSI" for Win/Mac, but "Unicode" for Linux ?) --anders
Aug 31 2006
prev sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jona Joachim wrote:

It should have worked out of the box, using GNU Make ? ("gmake")

Unfortunately it doesn't work out of the box. There are always small changes that have to be made when porting to FreeBSD.

It works on FreeBSD 6.1 (with upstream GDC 0.19 binary) now: gmake MAKE=gmake WX_CONFIG=/usr/X11R6/bin/wxgtk2u-2.6-config I will add these FreeBSD quirks to documentation for wxD 0.08, but all samples (except the new Launcher) seem to be working ? --anders PS. There were some bugs with include paths to GL/gl.h etc, but I've filed those separately and they're all fixed... I used PC-BSD 1.2 (http://www.pcbsd.org) for my testing, if you prefer Live-CDs there's also http://freesbie.org/
Aug 31 2006
prev sibling parent reply Walter Bright <newshound digitalmars.com> writes:
Jona Joachim wrote:
 Do you think there are any concerns about building the sources with GDC
 instead of DMD? All test programs seamed to work fine. The only warning I
 got during the build process was:
 
 gdc: unrecognized option `-version=__WXGTK__'

If there are any problems using GDC, please report them to the D.gnu newsgroup here or d.D.bugs.
 Furthermore I'd like to know if the DMD license allows me to write a
 FreeBSD port of DMD which installs the Linux binary distribution and runs
 it under the FreeBSD Linux compatibility layer. The port would fetch the
 distfiles automatically from the Digital Mars FTP server and install them
 locally.
 Is this in accordance with:
 "The Software is copyrighted and comes with a single user license,
 
 and may not be redistributed. If you wish to obtain a redistribution license,
 
 please contact Digital Mars."

Yes, it's ok.
 If not, is it ok if the user fetches the distfiles manually and the port
 installs the binaries?
 
 Do you think Digital Mars would provide FreeBSD binaries if there is
 enough interest from the FreeBSD users?

I would, but I'm stretched pretty thin <g>.
Aug 30 2006
next sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Walter Bright wrote:

 gdc: unrecognized option `-version=__WXGTK__'

If there are any problems using GDC, please report them to the D.gnu newsgroup here or d.D.bugs.

Also, for problems with wxD - please report at: http://sourceforge.net/tracker/?group_id=133831 --anders
Aug 30 2006
prev sibling parent reply Jona Joachim <jaj13 web.de> writes:
On Wed, 30 Aug 2006 11:30:36 -0700, Walter Bright wrote:

 Jona Joachim wrote:
 Do you think there are any concerns about building the sources with GDC
 instead of DMD? All test programs seamed to work fine. The only warning I
 got during the build process was:
 
 gdc: unrecognized option `-version=__WXGTK__'

If there are any problems using GDC, please report them to the D.gnu newsgroup here or d.D.bugs.
 Furthermore I'd like to know if the DMD license allows me to write a
 FreeBSD port of DMD which installs the Linux binary distribution and runs
 it under the FreeBSD Linux compatibility layer. The port would fetch the
 distfiles automatically from the Digital Mars FTP server and install them
 locally.
 Is this in accordance with:
 "The Software is copyrighted and comes with a single user license,
 
 and may not be redistributed. If you wish to obtain a redistribution license,
 
 please contact Digital Mars."

Yes, it's ok.

I missed something obvious: The Linux version of DMD still produces Linux ELF binaries. I don't think the FreeBSD version of ld can link Linux object files.
Aug 30 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
Jona Joachim wrote:
 The Linux version of DMD still produces Linux ELF binaries. I don't think
 the FreeBSD version of ld can link Linux object files.

So there's a pile of work to be done to support FreeBSD. Sigh - why does everyone have to invent their own omf?
Aug 31 2006
parent Jona Joachim <jaj13 web.de> writes:
On Thu, 31 Aug 2006 10:55:44 -0700, Walter Bright wrote:

 Jona Joachim wrote:
 The Linux version of DMD still produces Linux ELF binaries. I don't think
 the FreeBSD version of ld can link Linux object files.

So there's a pile of work to be done to support FreeBSD. Sigh - why does everyone have to invent their own omf?

Yeah, it's really not making things easy. Personally I have no idea how much different the FreeBSD ABI is from the Linux one. I don't have the knowledge and skills to write a compiler either. I only know of a document which explains how FreeBSD loads Linux binaries [1] but this won't help you very much. However if some day you have some spare time and decide to port DMD to FreeBSD I am sure that the FreeBSD community will give you all necessary details if you ask. About 2 weeks ago somebody wrote on the FreeBSD questions mailing list that he had talked to a RealPlayer developer and she told him that they would love to provide native FreeBSD binaries if some FreeBSD experts assist them. Less than 12h later somebody volunteered to help out. [1]: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-advanced.html http://www.freebsd.org/cgi/getmsg.cgi?fetch=1697235+0+/usr/local/www/db/text/1999/freebsd-chat/19990607.freebsd-chat
Aug 31 2006