scheme / scsh

A Unix shell embedded in scheme
Other
386 stars 36 forks source link

Can't run ./go and ./scsh - No such file or directory #32

Closed spelufo closed 9 years ago

spelufo commented 9 years ago
 ▸ git submodule update --init
 ▸ sudo apt-get install scheme48
 ▸ autoreconf
 ▸ ./configure 
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for scheme48... /usr/bin/scheme48
SCHEME48=/usr/bin/scheme48,  S48DIR=/usr
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking sgtty.h usability... yes
checking sgtty.h presence... yes
checking for sgtty.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking scheme48.h usability... yes
checking scheme48.h presence... yes
checking for scheme48.h... yes
checking for pid_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether lstat correctly handles trailing slash... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for dup2... yes
checking for ftruncate... yes
checking for gethostname... yes
checking for memset... yes
checking for select... yes
checking for utime... yes
checking for openpty... no
checking for openpty in -lutil... yes
checking libutil.h usability... no
checking libutil.h presence... no
checking for libutil.h... no
checking util.h usability... no
checking util.h presence... no
checking for util.h... no
checking how to compile position independent code... -fPIC
checking -rdynamic... yes
checking for ld... ld
checking compile and link flags for dynamic externals... -fPIC, -shared  -rdynamic
configure: creating ./config.status
config.status: creating Makefile
config.status: creating c/config.h
config.status: c/config.h is unchanged
 ▸ make
gcc -o scsh -g -O2 -fPIC \
    -DVM=\"/usr/lib/scheme48-1.9.2/scheme48vm\" \
    -DIMAGE=\"/usr/local/lib/scsh-0.7/scsh.image\" \
    ./c/scsh-tramp.c
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/syscalls.so c/syscalls.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty.so c/tty.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/time.so c/time.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/time-ticks-sec.so c/time-ticks-sec.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-baud-rate-flags.so c/tty-baud-rate-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-control-chars-info.so c/tty-control-chars-info.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-control-flags.so c/tty-control-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-input-flags.so c/tty-input-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-local-flags.so c/tty-local-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-output-flags.so c/tty-output-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-tcflow-flags.so c/tty-tcflow-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-tcflush-flags.so c/tty-tcflush-flags.c -lutil
gcc -g -O2 -fPIC -I/usr/include -rdynamic -shared  -rdynamic -o c/tty-tcsetattr-flags.so c/tty-tcsetattr-flags.c -lutil
./build/build-image.sh . \
        "`pwd`/c/" 'scsh.image' '/usr/bin/scheme48 -h 0' './rx/interfaces.scm ./rx/packages.scm ./scheme/scsh-interfaces.scm ./scheme/scsh-package.scm ./scheme/lib/ccp-pack.scm ./scheme/lib/char-package.scm'
Writing scsh.image
#t

gcc -o go -g -O2 -fPIC \
    -DVM=\"/usr/lib/scheme48-1.9.2/scheme48vm\" \
    -DIMAGE=\"scsh.image\" \
    ./c/scsh-tramp.c
 ▸ ./go
./go: No such file or directory
 255 ▸ ./scsh
./scsh: No such file or directory
 255 ▸ 

I'm on Linux Mint 17 Cinnamon 64-bit.

roderyc commented 9 years ago

@spelufo what version of scheme48 do you have installed? It must be precisely version 1.9.2.

spelufo commented 9 years ago

OK, that explains it. I have 1.9-3, which is what there was apt-get installs by default.

roderyc commented 9 years ago

Ok, in this case you'll want to uninstall that and install scheme48 from source. The later versions actually have changes that are significant to scsh's proper functioning.

Sorry this wasn't obvious, I'm going to find a way to have the build system detect and let the user know about issues like this.

xhevahir commented 9 years ago

I'm having the same problem; removing 1.9-3, installing 1.9.2 (per instructions at http://www.s48.org/1.9.2/download.html) didn't change anything. I still get "No such file or directory" even though my shell sees go and scsh, and has the latter installed in /usr/local/bin.

Someone else using scsh reported the same error several years ago in this thread: http://www.linuxquestions.org/questions/linux-general-1/shell-not-seeing-file-that-exists-562423/

roderyc commented 9 years ago

@xhevahir did you rebuild scsh after installing the correct s48 version?

If so, could you start from scratch and post a gist with the steps you take to install / build s48 and scsh?

xhevahir commented 9 years ago

Yes, I rebuilt scsh after I installed scheme48 from www.s48.org; scheme48 works, and reports its version number as scheme48-1.9.2.

I actually have never posted a gist before and am not sure how to do so. Here are the commands I entered: https://gist.github.com/xhevahir/6e2a80c1476d6e60f34b

roderyc commented 9 years ago

@xhevahir that's close, but it would be even more useful with the output of each command interleaved between those calls; essentially exactly what you're seeing on your terminal when you're going through this process. The output of ./configure and make in scsh would be particularly illuminating.

xhevahir commented 9 years ago

I posted another gist. I converted it from the log file and then copy-pasted it from a text editor, but I couldn't clean all of the control characters and other garbage from it.

roderyc commented 9 years ago

@xhevahir in the scsh directory, try running make clean and then make / make install. What is the platform you're running this on, btw?

xhevahir commented 9 years ago

That did it! (I'm on Linux Mint XFCE 17.1, x86-64.) Thanks a lot for your help.

roderyc commented 9 years ago

great :)

Just for your knowledge, this is what was happening: without make clean your call to make wasn't doing anything. It saw that all the build artifacts that you wanted were already there so it didn't waste time remaking them. But you actually wanted it to remake them since the artifacts were incorrectly made the first time. make clean should remove all the build artifacts that make originally produced, so that the next call to make starts from scratch.