Thread overview
[Issue 22581] DMD does not add necessary linker flags on Solaris
[Issue 22581] DMD not able to build itself on Solaris
Dec 09, 2021
Brian Callahan
Dec 17, 2022
Iain Buclaw
December 09, 2021
https://issues.dlang.org/show_bug.cgi?id=22581

jkruth@telecolumbus.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bcallah@openbsd.org,
                   |                            |ibuclaw@gdcproject.org

--
December 09, 2021
https://issues.dlang.org/show_bug.cgi?id=22581

jkruth@telecolumbus.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|DMD does not add necessary  |DMD not able to build
                   |linker flags on Solaris     |itself on Solaris

--
December 09, 2021
https://issues.dlang.org/show_bug.cgi?id=22581

--- Comment #1 from jkruth@telecolumbus.net ---
Sorry for double posting, but I have a small but important update:

1. I found that I had previously made some changes in druntime which might be
the cause for the initial failure.
2. I pulled in the latest updates to gdc, and repeated the procedure.

One of these two things fixed the initial issue.

This patch was also applied to the dmd.conf: https://github.com/dlang/dmd/pull/13409

Now the following error occurs:


gmake -C src -f posix.mak all
gmake[1]: Verzeichnis „/export/home/User/dlang/dmd/src“ wird betreten
posix.mak:42: ===== DEPRECATION NOTICE =====
posix.mak:43: ===== DEPRECATION: posix.mak is deprecated. Please use
src/build.d instead.
posix.mak:44: ==============================
/export/home/User/Documents/Gits/dmd/generated/solaris/release/64/dmd
-of../generated/build -g build.d
/usr/bin/ld:
/export/home/User/Documents/Gits/dmd/generated/solaris/release/64/../../../../../phobos/generated/solaris/release/64/libphobos2.a(socket_6a6_2c33.o):
undefined reference to symbol 'gethostbyaddr@@SUNW_0.7'
/usr/bin/ld: /lib/amd64/libnsl.so.1: error adding symbols: DSO missing from
command line
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
gmake[1]: *** [posix.mak:111: ../generated/build] Fehler 1
gmake[1]: Verzeichnis „/export/home/User/dlang/dmd/src“ wird verlassen

--
December 09, 2021
https://issues.dlang.org/show_bug.cgi?id=22581

--- Comment #2 from Brian Callahan <bcallah@openbsd.org> ---
If -lsocket and -lnsl are unconditionally required to link programs on Solaris, it might be better to place them in the DMD source code here where there are similar tweaks for both Linux and OpenBSD: https://github.com/dlang/dmd/blob/master/src/dmd/link.d#L750

Your PR at https://github.com/dlang/dmd/pull/13409 makes it too easy for users to accidentally destroy these needed changes.

There seems to be more work needed to fix the Solaris runtime; I'll work on it shortly.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=22581

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--
December 13
https://issues.dlang.org/show_bug.cgi?id=22581

--- Comment #3 from dlangBugzillaToGithub <robert.schadek@posteo.de> ---
THIS ISSUE HAS BEEN MOVED TO GITHUB

https://github.com/dlang/dmd/issues/18070

DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB

--