Re: Merging Luc's master branch.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 03, 2018 at 02:13:25AM +0000, Ramsay Jones wrote:
> 
> 
> 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! ;-)

OK, thanks for the info.
 
> 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?

It does here on an Ubuntu 17.10 with llvm-4.0
>From what I vaguely understand, the LLVM error is related to dynamic linking
issues specific to Windows. I have no idea from where lli takes its runtime
standard library but this is coherent with your '-force-interpreter=true'.

What could be done is to add an option to sparsei, maybe '-no-jit' and
use this option for the tests using sparsei since for the tests it's
very fine to not use the JIT (and even better for reproductibility).

Best regards,
-- Luc
--
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



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux