My way of compiling applications for Visopsys is to setup a "cross-compiler" (it is not a real cross compiler, just a wrapper, but it somewhat works like one).
I do the following:
- I make a directory tree at, for instance, /usr/local/visopsys. I create the bin, include and lib directories inside /usr/local/visopsys
I copy the contents of the header directory from the Visospys CD and I place them inside the "include" directory
I do likewise for the contents of the libraries directory from the CD, placing them inside the "lib" directory
I make and place a shell script that will act as a wrapper, calling GCC with the right options; I will call such script visgcc and place it in the "bin" directory
When I want to compile something for Visopsys, I call the "visgcc" wrapper script
Code: Select all
gcc -m32 -fno-common -fno-strict-aliasing -fno-builtin -nostdinc -nostdlib -L/usr/local/visopsys/lib -I/usr/local/visopsys/include -Wl,/usr/local/visopsys/lib/crt0.o,--warn-common,-X,--oformat,elf32-i386 -lc -D__VISOPSYS__ $* -lgcc
Code: Select all
clang -m32 -fno-common -fno-strict-aliasing -fno-builtin -nostdinc -nostdlib -L/usr/local/visopsys/lib -I/usr/local/visopsys/include -Wl,/usr/local/visopsys/lib/crt0.o,--warn-common,-X,--oformat,elf32-i386 -lc -D__VISOPSYS__ $* -lgcc
Here is a premade "toolchain", which includes the wrapper scripts + visopsys 0.73 includes + visopsys 0.73 libraries; it installs at /usr/local/visopsys, and it requires that you are on a x86 machine, regardless if it is running a 32-bit or 64-bit *nix-like operating system. I tested it under NetBSD amd64, it works well.
In this way you can compile applications by just changing the compiler name in the Makefiles; granted, many applications won't compile, or if they will compile, they will not work, due to technical problems (C library function broken or faulty).