On Tuesday, 2 July 2019 at 17:29:51 UTC, guiguidu60 wrote:
On Tuesday, 2 July 2019 at 17:14:23 UTC, Les De Ridder wrote:
On Tuesday, 2 July 2019 at 16:56:52 UTC, guiguidu60 wrote:
On Tuesday, 2 July 2019 at 16:44:12 UTC, Les De Ridder wrote:
On Tuesday, 2 July 2019 at 14:49:49 UTC, guiguidu60 wrote:
[...]

What file manager are you using?

Could you perhaps upload an example binary that gets detected wrong?

I'm on Debian 10, with Nautilus (v3.30.5) as file explorer.
You can download the helloworld program with this link: https://mega.nz/#!rY1QWIhK!lKyIX192OEfKM8MsZ_WW_QNryl39yCQebkXts2qn7E0

As I suspected, it's because it's a PIE executable, so this issue is
not specific to D.

Going down the rabbit hole:
https://bugzilla.gnome.org/show_bug.cgi?id=737849
https://bugs.freedesktop.org/show_bug.cgi?id=97226
https://gitlab.freedesktop.org/xdg/shared-mime-info/issues/11

Ahh ok, thanks !
The bug is old... how can I develop D applications without having to suffer this bug ?

Currently you can't, AFAICT.

Many Linux distros these days make PIE the default for Clang/GCC,
because PIE allows for more ASLR, a common modern security hardening
measure.

Because D uses the C compiler to link your application, this default
will be passed down to the linker. Because of the order in which D
passes args down to the linker, there doesn't seem to be a way to
override this (unless you link manually, e.g. by appending `-no-pie` to
the clang/gcc command you get with `dmd -v <sources>`).

It might make sense to change dmd's behaviour so it explicitly passes `-no-pie` to the C compiler when it's not being called with `-fPIC`.

In any case, the bug is still not D's fault and will also occur with
e.g. C programs compiled without `-no-pie` (and probably most
executables in /usr/bin!).

Reply via email to