From: Johan Knol <johan.knol@id...> - 2001-02-03 20:10:40
After the latest commits, make complains about unreference ALLOC_ATOMIC's in
the avr and pic port.
That is easy to solve, just continue where Stephen stopped.
But worse is that after every _asm - _endasm, a line with just "Y" is
generated which the assembler doesn't like. Harmless though, because no code
is generated. But make doesn't notice it, and it uselly IS harmfull.
What made me do what I liked to do for a long time. When cpp, as or ld (or
whatever they are called) generates a fatal error, this has to be forwared
to sdcc. Then e.g. make, will stop when an error occurs, so we see it, know
it, and can do something about it.
But that whole part was messy and needed some work along time ago.
Ok, every environment I know of (linux, solaris, djgpp, cygwin, msc in that
order), now has a decent "system()" system-call. It is ANSI, POSIX 2 and BSD
4.3 compliant. So we can leave out the whole spawnv(), spawnvp() and fork()
minglemangle and just use system().
I did this for asx8051 and it works fine on my linux box (at least now it
aborts when building the libraries :). If you don't like this, and want to
build a compiler (or projects) without reliable runtime libraries, uncomment
USE_SYSTEM_SYSTEM_CALLS in SDCCmain.c and let me know. Or I will make it
final in the near future.
It requires that when you are compiling the compiler (and the rtl) you HAVE
TO HAVE the SRCDIR/bin prepended in your PATH (perhaps I, or someone else,
should do something like that in a Makefile.in). The PREFIX/bin dir should
be in your PATH when building projects, or cpp, as and ld (or whatever they
are called) won't be found when compiling. It shouldn't be a problem unless
you call sdcc like something as "/my/secret/path/to/sdcc/nib/ccds" and don't
have the original build tree still intact which would have been used
otherwise (or perhaps the obsolete /usr/local/bin's you forgot about ... ).
This should be documented though, but I believe this is much better than
just compile, silently generate (often unseen) errors, and just pretend that
our project has been build succesfully. It will save us hours of useless
Ok, so ld (aslink :) is next: I will use a declared but undefined variable