Skip to content

Installing package dmd clobbers the functionality of package gcc-gdc #62463

Description

@Rambutan001

An existing installation of package gcc-gdc, the GNU D compiler gdc, malfunctions as specified below if the package dmd, the Digital Mars D compiler is subsequently installed.

Both compilers rely upon source includes for template instantiation. When dmd is installed, it places these in /usr/include/d/ whereas gdc has them placed in a gcc-gdc specific location. However, once dmd's include files are installed, gdc finds that location by default and uses it in place of its own.

This would not be a problem, excepting that the versions of D are not the same for dmd as gdc, the last following the latest gcc version from Void. So dmd has D version 2.113 whereas gdc has 2.108 at the time of writing.

This mismatch leads to linkage errors using gdc due unsatisfied dependencies at the time of writing. On the other hand dmd is fine, as it is unaware of the gdc installation.

The offending dmd include files in /usr/include/d/ are attributed to the package libphobos-2 that an installation of dmd also installs, (phobos being the D language standard library). A naive removal of the dmd package leaves libphobos-2 still installed, including its problematic include files.

Note1
The binary libraries of the two compilers do not interact as they even have different names.

Note2
It is not unusual to install both compilers, as dmd can be used to translate C header files into D which gdc currently does not.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions