Simon Wright <[email protected]> writes: > On 3 Jun 2015, at 10:55, Simon Wright <[email protected]> wrote: > >> On 2 Jun 2015, at 23:42, Stephen Leake <[email protected]> >> wrote: >> >>> Simon Wright <[email protected]> writes: >> >>>> Looking good so far; I’ve made a basic-ada module, and exceptions get >>>> handled just fine in spite of Mac not having sjlj. If this is what you >>>> mean. >>> >>> You only need sjlj if exceptions cross an Ada/C boundary. I just need to >>> nail down where that happens in my code.
I've reproduced my problem on Windows; I was waiting to also do it on Linux before I posted. On Windows with zcx, I get a crash on any exception, at the point the exception is raised. Crossing an Ada/C boundary is not required. With sjlj, there is no exception. So apparently zcx requires some initialization that either adainit doesn't do, or sjlj undoes, or something. > How can I provoke an exception to check out whether there’s a problem > on Mac? Just put in a syntax error. > Changes in attached patches: > * I modified ada-wisi.el to handle dll naming & file extension > * the code at the end of emacs_module_h.ads.gp failed, because ‘Size > isn’t static so can’t be used to define a constant ; Yes, I checked that in before I actually compiled it; sorry. > I just commented-out the emacs_env_25_byte_size definition and its > uses. GNAT GPL 2014, FSF GCC 4.9.1. > I couldn’t easily use the makefile, Which one? ada-mode.stephe-3/Makefile, or ada-mode.stephe-3/build/wisi/Makefile. They are the same as far as building the ada_grammar dynlib; build/wisi also runs all the tests. What was the problem? I'm guessing the same sjlj issue I ran into on Linux. > so edited the generated GPR and C source, see attached mac_* files. > With these, gprbuild worked fine and produced an SAL .dylib without > fuss (I’d set up environment variables in the shell pro tem): What is an "SAL"? Apparently Library_Interface works on Mac (I haven't tried it on Linux yet). When I try that on Windows, I get "can't load the specified module" (I really hate that message; why doesn't it have the module file name in it!?!). It also leaves libgnat dynamically linked, so we'd have to distribute that if we do a binary release. That leaves us with a naming convention difference between Windows and Mac, but I can put the "lib" back on Windows if we stay with this approach. -- -- Stephe _______________________________________________ Emacs-ada-mode mailing list [email protected] http://host114.hostmonster.com/mailman/listinfo/emacs-ada-mode_stephe-leake.org
