-
-
Notifications
You must be signed in to change notification settings - Fork 546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
check if sbcl build with multi-threads supoort when building #551
Comments
I see that you have Clozure CL included in FreeBSD ports already, at https://www.freebsd.org/ports/lisp.html and https://svnweb.freebsd.org/ports/head/lang/ccl/. Please consider depending on CCL rather than SBCL. The Garbage Collector of CCL is better suited to pgloader and gives more stability. And thanks for packaging pgloader for FreeBSD! |
I build and install pgloader with ccl,but I find a wired problem,which when I invoke pgloader without full path,it report “Couldn't load lisp heap image from pgloader.image: No such file or directory”.With full path,pgloader works OK.
|
That's strange, I might need help from Clozure people here. |
I'd probably have to try building pgloader myself to really troubleshoot this. You might try to strace to see what ccl is doing as it tries to find the image file. When ccl starts up, it tries to figure out what the full path of the executable is. On FreeBSD, it uses realpath(3) to try to determine that. It does this because by default it looks for the image file in the same directory as the executable. On other platforms, it uses different mechanisms, so there could be something FreeBSD-specific going on here. Although, I assume that the pgloader image would typically would be saved with If you troubleshoot a little more and can't get anywhere, let me know and I'll try to find some time to look into it. |
hi,the following is truss (truss is a strace like tool for freebsd ) output of the bad and good running.
your post mentioned “:prepend-kernel t”,I do not know how to get it,if you need this info,please tell me how to get it.
####################################
##########################################
|
I can't quite tell if I'm reading the truss output right, but it looks like in the first case that we somehow think that our executable file is
In the case where you specify the full path, we see this:
Note that we open our executable file and seek around to read a magic signature, "OpenMCLImageFile". Are you sure that when you start pgloader without a full path (i.e., you start it relying on the shell's path), that you are really starting If so, then it appears that ccl's strategy of calling realpath(3) on argv[0] is not sufficient to find the absolute path to the executable, and ccl will have to find some other way to do it. (Some Google searches seem to indicate that it can be done with sysctl, e.g. http://stackoverflow.com/questions/799679/programmatically-retrieving-the-absolute-path-of-an-os-x-command-line-app). Please let me know. |
yes I am sure. And I also try different user,different shell such as tcsh,bash,sh,get the same result. And I also find a security hole,maybe.If current work dir has pgloader,use pgloader can invoke it,shouldn't it must be ./pgloader? |
I am sorry to say that this is a FreeBSD-specific bug in CCL. Clozure/ccl#38 In the meanwhile, you might be able to write a shell wrapper as a workaround. |
Thanks a lot @xrme for having had a look and a fix that quick! |
Hi I am working on making the pgloader to the official Ports for FreeBSD.Now the default sbcl in FreeBSD do not with multi-threads support, see #319 . I think it is better for pgloader check if sbcl build with multi-threads support when building and print some useful message to the user, so the user will find and solve the problem earlier.
The text was updated successfully, but these errors were encountered: