svadev AT lists.siebelschool.illinois.edu
Subject: Svadev mailing list
List archive
- From: John Criswell <criswell AT illinois.edu>
- To: <Stefan.Scheruebl AT continental-corporation.com>, <svadev AT cs.uiuc.edu>
- Subject: Re: [svadev] SAFECode/PoolAllocator module is not compilable with Cygwin
- Date: Mon, 12 May 2014 10:25:40 -0500
- List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev/>
- List-id: <svadev.cs.uiuc.edu>
- Organization: University of Illinois
Dear Stefan,
Responses inline below. On 5/12/14, 5:15 AM, Stefan.Scheruebl AT continental-corporation.com wrote: Hello,
I've problems with the compilation of the
SAFECode/PoolAllocator modules.
Preconditions:
Windows 7
Latest version of Cygwin (Setup-x86.exe version 2.850 (32
bit))
I followed the instructions in "SAFECode Install Guide",
i.e.
Just an FYI that I don't have a Windows 7/Cygwin setup, so I can't test out the problem myself.
cd LLVM_OBJ
../LLVM_SRC/configure
--disable-embed-stdcxx --enable-shared
--enable-targets=powerpc,x86 --enable-optimized
make tools-only •cd projects/poolalloc •make The make failed with the following message: llvm[2]: Compiling PoolAllocator.cpp for Release+Asserts
build
/tmp/LLVM_SRC/projects/poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:23:14: Fehler: in Konflikt stehende Deklaration »typedef long int intptr_t« typedef long intptr_t; (Error: Conflicting declaration »typedef long int
intptr_t« typedef long intptr_t;)
If you want to use SAFECode, I think you can disable compilation of the runtime libraries in the poolalloc project. Modify pooalloc/runtime/Makefile and remove the directories from DIRS and PARALLEL_DIRS that aren't compiling. If you run into similar errors while compiling other run-time libraries (such as those needed by SAFECode), then you'll need to fix them. If you see code that is relying upon integers being a particular size (e.g., to match the pointer size), then the code should be changed to uintptr_t instead of unsigned long or unsigned int or whatever. If you make such a fix, please send a patch so that I can apply it and get it fixed in SVN. •cd projects/safecode
•make
The make failed with the following message:
llvm[2]: Compiling PoolAllocatorBitMask.cpp for
Release+Asserts build
/tmp/LLVM_SRC/projects/safecode/runtime/DebugRuntime/PoolAllocatorBitMask.cpp:62:22: schwerwiegender Fehler: ucontext.h: No such file or directory This error is a bit trickier but can still be fixed. The SAFECode run-time relies on knowing the PC value that caused a segmentation fault or bus error to occur. Apparently Windows doesn't have a ucontext.h header file. You could try sys/ucontext.h, but it may or may not have that file. My recommendation here is to look at the getProgramCounter() function in PoolAllocatorBitMask.cpp and modify it so that it returns zero. You should then be able to comment out the #include of ucontext.h. If you know how to get the PC value out of the context pointer of a signal handler, that would be even better; you could fix getProgramCounter() to work on Cygwin/Windows 7. Just out of curiosity, why do you need SAFECode to work on Windows? Regards, John Criswell |
- [svadev] SAFECode/PoolAllocator module is not compilable with Cygwin, Stefan . Scheruebl, 05/12/2014
- Re: [svadev] SAFECode/PoolAllocator module is not compilable with Cygwin, John Criswell, 05/12/2014
- Re: [svadev] SAFECode/PoolAllocator module is not compilable with Cygwin, Csaba Raduly, 05/13/2014
Archive powered by MHonArc 2.6.16.