mirror of
https://github.com/ctm/syn68k.git
synced 2024-11-24 15:32:27 +00:00
Produces a working libsyn68k.a on Fedora 9 using the stock compiler. Probably works with other gcc 4.x variants, but hasn't been tested much yet.
This commit is contained in:
parent
ad6ca93da4
commit
a409d45c50
47
README
47
README
@ -1,27 +1,24 @@
|
|||||||
Syn68k has not been actively worked on since about 1995. A few mods
|
Syn68k has not been actively worked on since about 1995. A few mods
|
||||||
have been made here and there to keep up with changes in gcc.
|
have been made here and there to keep up with changes in gcc. Those
|
||||||
|
mods may actually interfere with compiling on older versions of gcc.
|
||||||
My email address is still <ctm@ardi.com>, although ARDI itself is
|
Oh well.
|
||||||
defunct. I get a ridiculous amount of spam and will quite possibly
|
|
||||||
not see email addressed to me.
|
|
||||||
|
|
||||||
For a few years I've been meaning to verify that the code builds,
|
For a few years I've been meaning to verify that the code builds,
|
||||||
write a little documentation, explain a little history, maybe even set
|
write a little documentation, explain a little history, maybe even set
|
||||||
up a mailing list for people, etc... but other things have always
|
up a mailing list for people, etc... but other things continue to take
|
||||||
taken precedence.
|
precedence.
|
||||||
|
|
||||||
I have just made some mods so that Syn68k will compile on a Fedora 9
|
On an i386 Fedora 9, this version of Syn68k compiles and produces a
|
||||||
i386 system (gcc 4.3.0-8). Unfortunately the resultant libsyn68k.a
|
libsyn68k.a that works with Executor. In a few days Fedora 11 will be
|
||||||
does not work with Executor.
|
out, using gcc 4.4. I'll try to make it so that Syn68k works on it as
|
||||||
|
well as older Fedora systems too. I'll try to get it so the i386
|
||||||
|
version of Syn68k works on gcc 4.1, 4.2, 4.3 and 4.4.
|
||||||
|
|
||||||
If I build gcc 4.1.2 from scratch and use that to compile syn68k. I
|
Back in the day, Syn68k was very portable and could be run on non-x86
|
||||||
can then use Executor (whether it's built using 4.1.2 or 4.3.0). It
|
boxes. I wouldn't be surprised to find that the non-x86 versions fail
|
||||||
also works with a stock gcc 4.2.4.
|
to work now. However, once the i386 version runs nicely on a variety
|
||||||
|
of gccs it may be fun for someone to make the non i386 versions run
|
||||||
A stock 4.3.3 fails, so most likely something was changed in 4.3 that
|
again.
|
||||||
causes problems. Most likely a combination of looking at the
|
|
||||||
documentation (what's changed, what new command line switches) and
|
|
||||||
playing with .o files will be sufficient to allow me to find a fix.
|
|
||||||
|
|
||||||
To compile syn68k, try
|
To compile syn68k, try
|
||||||
|
|
||||||
@ -30,12 +27,14 @@ To compile syn68k, try
|
|||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
or if you want to use a non-standard gcc, try something like (assumes
|
Performance nit:
|
||||||
you've built gcc 4.2.4 configured with --prefix=/usr/gcc424):
|
|
||||||
|
|
||||||
./autogen.sh
|
The code in runtime/i486-cleanup.pl no longer gets rid of all the
|
||||||
CC=/usr/gcc424/bin/gcc CC_FOR_BUILD=/usr/gcc424/bin/gcc ./configure
|
cruft in the trailer. It's quite possible that the code in
|
||||||
make
|
runtime/i486-optimize.pl doesn't do the right thing either.
|
||||||
make install
|
|
||||||
|
My email address is still <ctm@ardi.com>, although ARDI itself is
|
||||||
|
defunct. I get a ridiculous amount of spam and will quite possibly
|
||||||
|
not see email addressed to me.
|
||||||
|
|
||||||
June 3rd, 2009
|
June 3rd, 2009
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# aligned optimally.
|
# aligned optimally.
|
||||||
|
|
||||||
# Delete the header for each function
|
# Delete the header for each function
|
||||||
if (/^\.globl _s68k_handle_opcode_0x/ .. /^[#\/]APP$/)
|
if (/^\.globl _?s68k_handle_opcode_0x/ .. /^[#\/]APP$/)
|
||||||
{
|
{
|
||||||
print if (/^[#\/]APP/ || /^L/);
|
print if (/^[#\/]APP/ || /^L/);
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,9 @@
|
|||||||
* entry, we move it to the head of the linked list. We can just check the
|
* entry, we move it to the head of the linked list. We can just check the
|
||||||
* head here; if that fails, we can do the slower check and possible compile.
|
* head here; if that fails, we can do the slower check and possible compile.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static __inline__ const uint16 *code_lookup (uint32 addr) __attribute__((always_inline));
|
||||||
|
|
||||||
static __inline__ const uint16 *
|
static __inline__ const uint16 *
|
||||||
code_lookup (uint32 addr)
|
code_lookup (uint32 addr)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user