digitalmars.D.learn - Building from source on FreeBSD
- psychoticRabbit (23/24) Feb 19 2018 So I finally got around to building from source.
- Jonathan M Davis (8/32) Feb 19 2018 I've never been able to figure this problem out, so I've I always just
- psychoticRabbit (12/19) Feb 19 2018 Thanks for the quick response.
- Seb (3/13) Feb 19 2018 FYI: https://github.com/dlang/tools/pull/316
- Jonathan M Davis (7/23) Feb 19 2018 It looks like that might actually fix the tools build for FreeBSD on my
- psychoticRabbit (8/15) Feb 19 2018 ok... so I decided to dig into it a little further.
- Diederik de Groot (6/15) Feb 21 2018 Removing the pragma(lib, "curl") seems to fix the issue on DFly
- psychoticRabbit (7/11) Feb 21 2018 something to do with this perhaps?
So I finally got around to building from source. I have builds working just fine on a variety of linux machines, it's just a FreeBSD problem I'm having. So, on FreeBSD, I can build the dmd directory, and the phobos directory ok. When building tools directory, most tools get built ok, but the build process stops during something to do with curl.. ------------------------------------gmake -f posix.mak -j8 (yeah on FreeBSD use gmake not make). .. ... (bunch of stuff builds ok.. then this next line) /usr/bin/ld: cannot find -lcurl cc: error: linker command failed with exit code 1 (use -v to see invocation) Error: linker exited with status 1 gmake: *** [posix.mak:77: generated/freebsd/64/dget] Error 1 gmake: *** Waiting for unfinished jobs.... ---------------------------- Yes, I do have the FreeBSD curl package installed - curl-7.56.0 Yes, curl is in the path> which curl -> /usr/local/bin/curl So I can only assume my FreeBSD machine is missing some curl related library/package?? Any help would be appreciated.
Feb 19 2018
On Monday, February 19, 2018 11:43:26 psychoticRabbit via Digitalmars-d- learn wrote:So I finally got around to building from source. I have builds working just fine on a variety of linux machines, it's just a FreeBSD problem I'm having. So, on FreeBSD, I can build the dmd directory, and the phobos directory ok. When building tools directory, most tools get built ok, but the build process stops during something to do with curl.. ------------------------------------I've never been able to figure this problem out, so I've I always just edited the makefile so that the two programs in CURL_TOOLS aren't built. IIRC, if you use -v to see the full linker command, it's even actually linking to the curl library that's there but somehow not succeeding. It's all quite weird. It's been a while since I dug into it though. - Jonathan M Davisgmake -f posix.mak -j8 (yeah on FreeBSD use gmake not make). .. ... (bunch of stuff builds ok.. then this next line) /usr/bin/ld: cannot find -lcurl cc: error: linker command failed with exit code 1 (use -v to see invocation) Error: linker exited with status 1 gmake: *** [posix.mak:77: generated/freebsd/64/dget] Error 1 gmake: *** Waiting for unfinished jobs.... ---------------------------- Yes, I do have the FreeBSD curl package installed - curl-7.56.0 Yes, curl is in the path> which curl -> /usr/local/bin/curl So I can only assume my FreeBSD machine is missing some curl related library/package?? Any help would be appreciated.
Feb 19 2018
On Monday, 19 February 2018 at 12:01:31 UTC, Jonathan M Davis wrote:I've never been able to figure this problem out, so I've I always just edited the makefile so that the two programs in CURL_TOOLS aren't built. IIRC, if you use -v to see the full linker command, it's even actually linking to the curl library that's there but somehow not succeeding. It's all quite weird. It's been a while since I dug into it though. - Jonathan M DavisThanks for the quick response. So I took your advice and just commented out (as per below), and now it all builds fine - AFAICT ;-) -FROM 61:all: $(TOOLS) $(CURL_TOOLS) $(ROOT)/dustmite 76:$(TOOLS) $(DOC_TOOLS) $(CURL_TOOLS) $(TEST_TOOLS): $(ROOT)/%: %.d -TO 61:all: $(TOOLS) $(ROOT)/dustmite 76:$(TOOLS) $(DOC_TOOLS) $(TEST_TOOLS): $(ROOT)/%: %.d
Feb 19 2018
On Monday, 19 February 2018 at 12:01:31 UTC, Jonathan M Davis wrote:On Monday, February 19, 2018 11:43:26 psychoticRabbit via Digitalmars-d- learn wrote:FYI: https://github.com/dlang/tools/pull/316[...]I've never been able to figure this problem out, so I've I always just edited the makefile so that the two programs in CURL_TOOLS aren't built. IIRC, if you use -v to see the full linker command, it's even actually linking to the curl library that's there but somehow not succeeding. It's all quite weird. It's been a while since I dug into it though. - Jonathan M Davis
Feb 19 2018
On Monday, February 19, 2018 14:41:21 Seb via Digitalmars-d-learn wrote:On Monday, 19 February 2018 at 12:01:31 UTC, Jonathan M Davis wrote:It looks like that might actually fix the tools build for FreeBSD on my machine if the bit that he currently has versioned for DragonFly is used for FreeBSD as well (and it probably needs to be there for every BSD). I've never understood why the tools repo builds fine for releases but has never built properly for me locally. - Jonathan M DavisOn Monday, February 19, 2018 11:43:26 psychoticRabbit via Digitalmars-d- learn wrote:FYI: https://github.com/dlang/tools/pull/316[...]I've never been able to figure this problem out, so I've I always just edited the makefile so that the two programs in CURL_TOOLS aren't built. IIRC, if you use -v to see the full linker command, it's even actually linking to the curl library that's there but somehow not succeeding. It's all quite weird. It's been a while since I dug into it though. - Jonathan M Davis
Feb 19 2018
On Monday, 19 February 2018 at 12:01:31 UTC, Jonathan M Davis wrote:I've never been able to figure this problem out, so I've I always just edited the makefile so that the two programs in CURL_TOOLS aren't built. IIRC, if you use -v to see the full linker command, it's even actually linking to the curl library that's there but somehow not succeeding. It's all quite weird. It's been a while since I dug into it though. - Jonathan M Davisok... so I decided to dig into it a little further. seems the problem relates to a single line, in dget.d pragma(lib, "curl"); I just commented out the one line in dget.d, and it all seems to build ok (including dget). So no need to comment out tools in posix.mak anymore.
Feb 19 2018
On Tuesday, 20 February 2018 at 03:59:06 UTC, psychoticRabbit wrote:On Monday, 19 February 2018 at 12:01:31 UTC, Jonathan M Davis wrote:Removing the pragma(lib, "curl") seems to fix the issue on DFly (and FreeBSD). Updated the pull request. I guess pragma(lib, xxx) needs a little bit of attention to see what causes it not to work.....ok... so I decided to dig into it a little further. seems the problem relates to a single line, in dget.d pragma(lib, "curl"); I just commented out the one line in dget.d, and it all seems to build ok (including dget). So no need to comment out tools in posix.mak anymore.
Feb 21 2018
On Wednesday, 21 February 2018 at 11:41:18 UTC, Diederik de Groot wrote:Removing the pragma(lib, "curl") seems to fix the issue on DFly (and FreeBSD). Updated the pull request. I guess pragma(lib, xxx) needs a little bit of attention to see what causes it not to work.something to do with this perhaps? https://stackoverflow.com/questions/23214697/trouble-with-curl-and-pragma in any case, that line doesn't even need to be there AFAICT. dget builds and works just fine with it commented out. I've commented it out on my linux builds too.
Feb 21 2018