[cc65] Secondary linker configurations

From: Ullrich von Bassewitz <uz1musoftware.de>
Date: 2009-09-21 14:12:19

Based on an idea from Oliver, there may now be "secondary" linker configs for
a platform. Actually, the implementation had mostly been in the linker, but
Oliver had the idea to use it this way.

What this means: There are quite a few platforms that could make use of more
linker scripts for other configurations. Think of a 32KB VIC20 config, or a
C64 config without the SYS header that may be used to load programs to $C000
or whatever.

While it was easily possible to create and use a custom linker script, and
some even came with cc65, it was a barrier for inexperienced or new users.
Having additional linker configurations that feel like they're built into the
linker would simplify things.

So the linker will now come with a separate directory for linker config files,
and has the search path for config files set to this directory (for platforms
where the installer is capable of doing so). You can then use additional
config files that come with cc65 like they were builtin. Just call the linker
with "-C config-file" and all other tools with "-t platform". 

cl65 does also support this feature: You can call it with both, -t and -C and
it will pass -C to the linker and -t to all other tools. All secondary config
files are named platform-something.cfg, so they're easily identifyable. To
build a program using the (hypothetical) vic20-32k.cfg file, use

        cl65 -O -t vic20 -C vic20-32k.cfg hello.c

An important difference to the state before is that the additional linker
config files are part of cc65, so they're maintained and adjusted for new
versions if necessary.

To make this work, the linker has an additional enviroment variable LD65_CFG
that points to the config directory. The linux RPMs will come with a compiled
in directory, the windows .exe installer will set that variable for you, so in
most cases you won't notice it's there. Depending on how you install cc65, you
may need to set that variable to make the feature work.

In the past, I've usually rejected additional linker config files, because
their use was difficult. Now, this is not necessarily true any longer. So I
would like to invite you to send me your custom linker configs, provided that
they cover an often used case. I would especially be interested in the 32K
config for the VIC20 - I remember that someone talked about it or even sent it
to me, but I don't have it.



Ullrich von Bassewitz                                  uz@musoftware.de
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Mon Sep 21 14:13:57 2009

This archive was generated by hypermail 2.1.8 : 2009-09-21 14:13:59 CEST