May 08
https://issues.dlang.org/show_bug.cgi?id=24545

          Issue ID: 24545
           Summary: Problems with m32 mode on Linux
           Product: D
           Version: D2
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: erikas.aubade@gmail.com

Created attachment 1913
  --> https://issues.dlang.org/attachment.cgi?id=1913&action=edit
Minimal example to cause a segfault with bindbc. Execute with dub run --single
sdlcrash.d --compiler=dmd --arch=x86

There seems to be some sort of weirdness with the output generated by DMD in m32 mode.

I initially stumbled on the problem while trying to use bindbc-sdl in dynamic mode--attempting to load the DLL causes a segfault. I've attached a minimal testcase to illustrate this, and can be executed with

dub run --single sdlcrash.d --compiler=dmd --arch=x86

This problem doesn't happen in x86_64 mode, or with LDC or GDC in x86 mode. Furthermore, it generates some linker warnings about relocations in read-only sections and creating DT_TEXTREL in a PIE. These warnings seem to be generated with code I feed the compiler, even a trivial hello world--which I'm attaching. The hello world example does not segfault, however.

--