Hi! As you noticed, I'm in the (frustrating) process of creating an OS-specific toolchain. I've followed the instructions in the wiki, and have managed to resolve most build errors, except one. When make'ing binutils, I end up with this error log:
Code:
make[4]: se ingresa al directorio «/usr/bluesky/src/binutils-build/ld»
make[4]: *** No hay ninguna regla para construir el objetivo «eelf_i386_bluesky.o», necesario para «ld-new». Alto.
make[4]: se sale del directorio «/usr/bluesky/src/binutils-build/ld»
make[3]: *** [all-recursive] Error 1
make[3]: se sale del directorio «/usr/bluesky/src/binutils-build/ld»
make[2]: *** [all] Error 2
make[2]: se sale del directorio «/usr/bluesky/src/binutils-build/ld»
make[1]: *** [all-ld] Error 2
make[1]: se sale del directorio «/usr/bluesky/src/binutils-build»
make: *** [all] Error 2
I'm a native spanish speaker, so this is what I've translated
Code:
make[4]: entering directory «/usr/bluesky/src/binutils-build/ld»
make[4]: *** No rule found for building target «eelf_i386_bluesky.o», required for «ld-new». Stop.
make[4]: leaving directory «/usr/bluesky/src/binutils-build/ld»
make[3]: *** [all-recursive] Error 1
make[3]: leaving directory «/usr/bluesky/src/binutils-build/ld»
make[2]: *** [all] Error 2
make[2]: leaving directory «/usr/bluesky/src/binutils-build/ld»
make[1]: *** [all-ld] Error 2
make[1]: leaving directory «/usr/bluesky/src/binutils-build»
make: *** [all] Error 2
This probably isn't what English make outputs, but its what I can provide...
I've deduced the problem is in /ld/Makefile.am. The wiki says:
OSDev Wiki wrote:
ld/Makefile.am
... The code...
You also need to add eelf_i386_myos.c to the ALL_EMULATION_SOURCES list; and you also need to add eelf_x86_64_myos.c to the ALL_64_EMULATION_SOURCES list.
Note: You must run automake in the ld directory after you modify Makefile.am to regenerate Makefile.in.
Those two statements became me crazy! The first one is pretty obvious, but took me a while to use the 'find' function of gedit to understand it...
Meanwhile, the second one, which is several times more obvious, generates me several times more troubles. That's because of all the version incompatibilities automake & friends have. If I run automake:
Code:
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
aclocal.m4:16: warning: this file was generated for autoconf 2.64.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
configure.in:21: error: Please use exactly Autoconf 2.64 instead of 2.69.
../config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded from...
configure.in:21: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
automake: error: autoconf failed with exit status: 1
That's not a very hopeful message... now: autoreconf
Code:
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:21: error: Please use exactly Autoconf 2.64 instead of 2.69.
../config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded from...
configure.in:21: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: error: echo failed with exit status: 1
autoreconf2.50: aclocal failed with exit status: 1
... autoreconf2.64 ...
Code:
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:31: error: Autoconf version 2.65 or higher is required
/usr/share/aclocal-1.14/init.m4:29: AM_INIT_AUTOMAKE is expanded from...
configure.in:31: the top level
autom4te2.64: /usr/bin/m4 failed with exit status: 63
aclocal: error: echo failed with exit status: 63
autoreconf2.64: aclocal failed with exit status: 63
Just warnings and recursive references! What do I do?
_________________
Happy New Code!
Hello World in Brainfuck :
Code:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.