1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-04 13:29:35 +00:00
Commit Graph

286 Commits

Author SHA1 Message Date
uz
da792b3fd0 Separate processing the linker config file into two phases: The config file is
read when the -t or -C switch is encountered and parts of it are processed.
The remaining parts are processed when all object files and libraries have
been read. To make this work, the expression evaluation in cfgexpr has been
rewritten to generate true expression trees. This means that expressions in
the linker config may use exports from the object files. 

Separation of config file processing is the base for several enhancements, for
example forced imports by linker config.

This code needs more work and is only very, very, very roughly tested.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4840 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-08 21:52:24 +00:00
uz
6c0a9c0438 Patch to correct the linkorder in the make files to make the --as-needed
ldflag work. By Mario Fetka.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4838 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-11-07 11:34:51 +00:00
ol.sc
aaf90c1252 Exclude (small) stack from RAM memory area (like on most other targets) to make explicit that the linker may not use all RAM. If the cc65 parameter stack isn't used at all the __STACKSIZE__ symbol may be overridden on the linker command line with -D __STACKSIZE__=0.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4820 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-10-02 10:20:00 +00:00
uz
112ae0e3db Renamed the defines in symdefs.h to something more meaningful. They were named
EXP_xxx for historic reasons, but SYM_ does make much more sense now.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4812 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-17 20:47:27 +00:00
uz
7e72e7d46b Change output for symbols in the debug info file to match that of the other
lines. The name is now preceeded by "name=".


git-svn-id: svn://svn.cc65.org/cc65/trunk@4803 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 21:28:47 +00:00
uz
b936617eb4 Fixed a C99ism.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4799 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-09 05:47:22 +00:00
uz
14e567aed2 Another format change: Record the output file and offset for each segment
written to the output. Make this information available in the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4797 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 20:32:13 +00:00
uz
34c938e7ac More collection usage. This has also removed the need for the MemListNode
structure.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4795 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:35:56 +00:00
uz
fedb265a22 More collection usage.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4794 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:23:22 +00:00
uz
ad140bede4 Replace more linked lists by collections.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4793 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:13:53 +00:00
uz
026724482f Use collections instead of linked lists to simplify things.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4792 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-08 15:03:58 +00:00
uz
8c39874daa Some changes in debug info generation.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4788 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-07 12:46:12 +00:00
uz
12e7cc010d Output version information into the debug file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4783 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 20:41:27 +00:00
uz
0807da74bd Corrected indentation - no code change.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4782 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 19:34:25 +00:00
uz
b8e7feb788 Fix relocation of line infos.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4781 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-05 19:34:03 +00:00
uz
abda26a309 Don't output multiple code ranges per line, since this is harder to parse.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4780 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-03 19:00:14 +00:00
uz
e046ecbcf2 Be sure to generate line info for all segments.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4778 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-01 13:52:06 +00:00
uz
83e5252785 Changed a comment
git-svn-id: svn://svn.cc65.org/cc65/trunk@4777 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-08-01 13:48:32 +00:00
uz
031ae666e3 Fixed an error in the macro version of HasObjData().
git-svn-id: svn://svn.cc65.org/cc65/trunk@4776 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-31 12:37:14 +00:00
uz
b2321ebdf7 Fixed an error: Some of the collections weren't initialized.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4775 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-31 09:44:25 +00:00
uz
23b867b7a4 Handle file position information for fragments differently: Instead of
handling them separately (which has historic reasons), generate real line info
information. This means that line info for the assembler source will be part
of the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4774 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-30 22:44:09 +00:00
uz
f308a3c4d1 Use collections in the object file structure instead of managing the items
manually.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4773 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-07-30 20:58:51 +00:00
uz
05f7296369 Restructured search path handling.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4662 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-05-09 10:54:15 +00:00
uz
8e26fef105 Fixed the size of the RAM segment for the CBM610. The routine that does
cross-bank calls is located at $FECB and the stack grows downwards from 
there.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4637 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-23 19:40:48 +00:00
uz
3d06780f6d For the CBM 510, the stack is not part of RAM. And, because of the cross-bacnk
routine, it is smaller than the number used before.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4634 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-21 21:39:44 +00:00
ol.sc
4b689107a4 - No more HEAP segment
- RAM reduced by __STACKSIZE__
- Unified formatting

git-svn-id: svn://svn.cc65.org/cc65/trunk@4633 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-21 17:10:17 +00:00
uz
15f95d7623 Changed the size of available RAM so that the last used address is $7FFF.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4630 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 18:08:27 +00:00
uz
7450c25404 Allow escape sequences prefixed by '%' in strings. '%%' denotes a single
percent sign, %O is the name of the output file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4628 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 17:48:15 +00:00
uz
b759e753e4 Changed the type of CfgSVal to a string buffer and removed the upper limit for
the length.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4627 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-03-20 17:23:51 +00:00
uz
61b69316c5 Added builtin .min() and .max() pseudo functions to the assembler.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4583 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-02-11 18:54:08 +00:00
ol.sc
3d5d3ef76a Define HEADER memory area for the EXEHDR segment for consistency reasons with the other targets with an EXEHDR segment (apple2[enh], atari, lynx, cbm[5|6]10).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4550 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-01-17 21:47:03 +00:00
uz
60bc009991 * Moved the BASIC stub that calls the compiled program into it's own segment
named EXEHDR.
* Renamed BASICHDR to EXEHDR for the PET-II machines.
* Moved the call to CHRCH in front of the code that saves the zero page, since
  open files are sometimes remembered in the zero page, so we need to close
  them before we grab a copy.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4507 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-09 12:42:24 +00:00
uz
1fae13274e An assignment for the ZPSAVE segment was missing in the linker config for the
32K memory config of the VIC20. Hint from Robert Hurst.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4505 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-12-08 20:41:43 +00:00
uz
1efebb9024 Add .assert actions that aren't evaluated at assembly time.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4321 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-04 12:40:19 +00:00
ol.sc
ba46bab009 Made stacksize user-adjustable on the cmdline.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4293 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-01 17:00:10 +00:00
uz
d42ce3b59e Lynx updates by Karri Kaksonen.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4285 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-10-01 14:09:19 +00:00
uz
0b4c486a49 Replace tabs by spaces in file lists.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4275 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-29 13:32:09 +00:00
uz
3d1ee0f974 Fixes for the watcom makefiles:
* Increase the stack size to 64K (instead of 4096). This solves a
    memory overwrite problem with the DOS version.
  * Generate a mapfile, but set it to "ignored" in svn.
  * Be somewhat more specific in zap.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4273 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-29 13:08:23 +00:00
uz
4056e97587 Use "override" when appending to CFLAGS, so this works even when CFLAGS is
specified on the command line.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4271 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-29 13:06:35 +00:00
uz
16f05a78c2 Create the .inc files before creating the dependency file, so we avoid
problems with files that weren't found.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4269 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-29 11:59:10 +00:00
uz
7b847321a8 Move the version numbers from the interface of the version module into a new
implementation. Allow for release candidates to be specified and disinguished.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4260 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-28 20:10:01 +00:00
uz
85f96a7d6f Fixed warnings generated by clang (run by Per Olofsson).
git-svn-id: svn://svn.cc65.org/cc65/trunk@4255 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-28 15:59:18 +00:00
uz
2cc68784cc Make the watcom makefiles a bit more openwatcom compatible.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4248 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-27 18:40:00 +00:00
uz
a16dcb549f Separate the linker config for the apple2enh target from the ones for the
apple2.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4235 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-26 16:12:02 +00:00
uz
7867bf2921 Fixed the config for the CBM510. Because of changes in the startup code, it
didn't work any longer.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4226 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-24 20:42:55 +00:00
uz
b8e665e837 Change the makefiles so that CFLAGS that are special for the application are
appended after assigning the base value to CFLAGS. This allows to change
CFLAGS on the command line without too much hassle.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4219 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-24 15:07:11 +00:00
uz
cb688729af Changed search paths to use subdirectories of CC65_HOME, remove CC65_LIB.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4209 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-22 11:49:53 +00:00
uz
feb212df62 New linker config for the VIC-20 with 32K cartridge by Stefan Haubenthal.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4205 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-22 09:33:49 +00:00
uz
20eb942ab9 Oliver added a comment to the Apple2 linker config.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4197 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-20 13:14:29 +00:00
uz
9d00253227 Additional linker configs for the Apple by Oliver Schmidt.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4195 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-19 16:14:46 +00:00