From 88c194fd78c0c0ca9729fe3671dcf3ebc9a36ddb Mon Sep 17 00:00:00 2001 From: Scott Wegner Date: Wed, 8 Aug 2007 17:51:43 -0500 Subject: [svn-r14056] Purpose: Take advantage of new H5_HAVE_SIGLONGJMP flag in H5detect.c Description: Visual Studio does not have the function siglongjmp. Therefore, we have created a new configure flag H5_HAVE_SIGLONGJMP that tests for this. We use this within H5detect.c. Tested: VS.NET h5committest --- release_docs/INSTALL_Windows.txt | 16 +++------------- src/H5detect.c | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/release_docs/INSTALL_Windows.txt b/release_docs/INSTALL_Windows.txt index 5994cb2..84eec13 100644 --- a/release_docs/INSTALL_Windows.txt +++ b/release_docs/INSTALL_Windows.txt @@ -1916,21 +1916,12 @@ To generate your own H5tinit.c, follow the steps below. 1. Open the solution typegen.sln from the folder .\windows\misc\typgen. - 2. Edit the code - - Open the source file H5detect.c, and remove or comment the line: - - siglongjmp(jbuf_g, 1); - - This function is unsupported on Windows, and will cause Visual Studio - 2005 to crash. - - 3. Build H5tinit.exe + 2. Build H5tinit.exe Make sure your configuration is set to Debug, and build the project. This will generate H5tinit.exe in the .\src folder. - 4. Create H5tinit.c + 3. Create H5tinit.c From a command prompt, go to the .\src directory and issue the command: .\H5tinit.exe > H5tinit.c @@ -1940,8 +1931,7 @@ To generate your own H5tinit.c, follow the steps below. Note: If you are building on 64-bit Windows, make sure you set your build - "Machine Type" to "X64". Also, you will need to comment out any lines - referencing "siglongjmp", as this function is not present on 64-bit Windows. + "Machine Type" to "X64". ======================================================================== Section XIII: Misc. diff --git a/src/H5detect.c b/src/H5detect.c index 3cfa89a..17f6db2 100644 --- a/src/H5detect.c +++ b/src/H5detect.c @@ -356,7 +356,7 @@ precision (detected_t *d) COMP_ALIGN = (size_t)((char*)(&(s.x)) - (char*)(&s)); \ } -#if defined(H5_HAVE_LONGJMP) && defined(H5_HAVE_SIGNAL) +#if defined(H5_HAVE_LONGJMP) && defined(H5_HAVE_SIGNAL) && defined(H5_HAVE_SIGLONGJMP) #define ALIGNMENT(TYPE,INFO) { \ char *volatile _buf=NULL; \ volatile TYPE _val=1; \ -- cgit v0.12