www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 19684] New: DMD 2.085.0-beta.1: DMD cannot find dmd.conf if

https://issues.dlang.org/show_bug.cgi?id=19684

          Issue ID: 19684
           Summary: DMD 2.085.0-beta.1: DMD cannot find dmd.conf if
                    invoked via symlink (OSX)
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: jrdemail2000-dlang yahoo.com

DMD cannot find its dmd.conf file when it is invoked via a symlink. The
dmd.conf file is in the same directory as the dmd executable. If DMD is invoked
via an absolute path then it finds the dmd.conf file. This is a change in
behavior from 2.084.0. I've tried this only on OSX.

Further explanation:

I install DMD by retrieving the tar.xz file and unpacking it. Then I symlink
the executable to ~/bin, which is in my path. This allows me to have multiple
dmd versions installed simultaneously. As an example, I symlinked:

   ~/bin/dmd -> ~/devtools/dmd2-2.085.0-beta.1/osx/bin/dmd

Now compiling a hello world app results in the following:

------------------
$ dmd helloworld.d
Error: cannot find source code for runtime library file 'object.d'
       dmd might not be correctly installed. Run 'dmd -man' for installation
instructions.
       config file: /etc/dmd.conf
Specify path to file 'object.d' with -I switch
------------------

It's not an issue with PATH or home directory expansion. Invoking via an
absolute path to the ~/bin/dmd symlink results in the same behavior. However,
using a direct path to the executable with no symlinks works fine:

------------------
$ ~/devtools/dmd2-2.085.0-beta.1/osx/bin/dmd helloworld.d
$ ./helloworld
Hello World!
------------------

I looked through recent PRs and saw one candidate:
https://github.com/dlang/dmd/pull/9261.

--
Feb 17 2019