Thread overview
[Issue 44] "naked" GCC attribute needed to properly support fibers on Windows
Mar 17, 2013
Benjamin Thaut
Mar 17, 2013
Iain Buclaw
Mar 17, 2013
Benjamin Thaut
[Issue 44] MinGW: Add support for D fibers.
Mar 17, 2013
Daniel Green
Mar 17, 2013
Daniel Green
March 17, 2013
http://gdcproject.org/bugzilla/show_bug.cgi?id=44

--- Comment #1 from Benjamin Thaut <code@benjamin-thaut.de> 2013-03-17 19:44:01 UTC ---
I meant "core.threads" instead of "core.traits"

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
March 17, 2013
http://gdcproject.org/bugzilla/show_bug.cgi?id=44

--- Comment #2 from Iain Buclaw <ibuclaw@gdcproject.org> 2013-03-17 19:48:06 UTC ---
Nope, someone just needs to implement a generic version for Windows.  We don't use IASM implementations.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
March 17, 2013
http://gdcproject.org/bugzilla/show_bug.cgi?id=44

--- Comment #3 from Benjamin Thaut <code@benjamin-thaut.de> 2013-03-17 19:54:51 UTC ---
What do you mean by "generic version" ? The fibers which are offered by the WinAPI are not a suiteable replacement.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
March 17, 2013
http://gdcproject.org/bugzilla/show_bug.cgi?id=44

Daniel Green <venix1@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |venix1@gmail.com
            Summary|"naked" GCC attribute       |MinGW: Add support for D
                   |needed to properly support  |fibers.
                   |fibers on Windows           |

--- Comment #4 from Daniel Green <venix1@gmail.com> 2013-03-17 21:18:48 UTC ---
GCC doesn't do naked outside of ARM, AVR, MCORE, RX and SPU. http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

There are two solutions to this that don't involve using the WinAPI.  The first is rewriting the fiber implementation to not need naked.

Or putting the switchContext function into an external file as done on some systems.

  version( AsmExternal )
    extern (C) void fiber_switchContext( void** oldp, void* newp );

Working fiber code for that function should be in the mingw repo.  It's just disabled as I never got around to externalizing it.  I won't get around to it until I finish getting GDC working with 4.8.0.

Going to update this title to properly reflect what needs to happen.

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.
March 17, 2013
http://gdcproject.org/bugzilla/show_bug.cgi?id=44

Daniel Green <venix1@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|gdc                         |libgdruntime

-- 
Configure issuemail: http://gdcproject.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all issue changes.