On 03/03/18 00:31, Luc Van Oostenryck wrote: > On Fri, Mar 02, 2018 at 11:33:52PM +0000, Ramsay Jones wrote: [snip] >> >> I think the exception-model is specific to the cygwin (Windows) >> platform. I chanced upon that solution by noting the errors > > I understood that 'sjlj' was ok for linux too while 'seh' was > only for Windows but I may be wrong. Yes, I didn't express myself very well there! :( The SEH is 'native windows' exception handling (not explicitly related to any specific language e.g. c++), which the llc tool seems to be set up to generate by default. However, cygwin attempts to be as close to Linux as it can, given that it actually runs on the windows platform. So, the GNU binutils on cygwin, uses the Linux like sjlj exception handling, which is what the call to 'as' in sparsec is expecting. (or rather, it is _not_ expecting seh!) If we were talking about a MinGW port - it would probably be different again! ;-) BTW, I quickly tried using an intermediate file in sparsei: $ git diff -- sparsei diff --git a/sparsei b/sparsei index 3431a9f..bc28ae2 100755 --- a/sparsei +++ b/sparsei @@ -10,4 +10,12 @@ if [ $# -eq 0 ]; then exit 1 fi -$DIRNAME/sparse-llvm $@ | $LLI +TMPFILE=`mktemp -t tmp.XXXXXX.bc` + +$DIRNAME/sparse-llvm $@ >$TMPFILE + +$LLI $TMPFILE + +exit_code=$? +rm -f $TMPFILE +exit $exit_code $ ./sparsei validation/backend/sum.c LLVM ERROR: Program used external function 'printf' which could not be resolved! $ ... and it didn't work. :-D Would this work on Linux? ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html