README 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. This is the beta-test version of the GNU assembler. (Probably
  2. around Version 1.34, but check version.c which gets updated more
  3. often than this readme.) Please report bugs, missing features, etc
  4. to hack@gnu.ai.mit.edu (Jay Fenlason) If that address doesn't work,
  5. try hack@prep.ai.mit.edu or hack@media-lab.media.mit.edu (ONE of
  6. them should work. If you get *REALLY* desparate, try
  7. hack@lsrhs.UUCP )
  8. The assembler has been modified to support a feature that is
  9. potentially useful when assembling compiler output, but which may
  10. confuse assembly language programmers. If assembler encounters a
  11. .word pseudo-op of the form symbol1-symbol2 (the difference of two
  12. symbols), and the difference of those two symbols will not fit in 16
  13. bits, the assembler will create a branch around a long jump to
  14. symbol1, and insert this into the output directly before the next
  15. label: The .word will (instead of containing garbage, or giving an
  16. error message) contain (the address of the long jump)-symbol2. This
  17. allows the assembler to assemble jump tables that jump to locations
  18. very far away into code that works properly. If the next label is
  19. more than 32K away from the .word, you lose (silently) RMS claims
  20. this will never happen. If the -k option is given, you will get a
  21. warning message when this happens.
  22. These files are currently set up to allow you to compile all of the
  23. versions of the assembler (68020, VAX, ns32k, and i386) on the same
  24. machine. To compile the 68020 version, type 'make a68'. To compile
  25. the VAX version, type 'make avax'. To compile the ns32k version,
  26. type 'make a32k'. To compile the Intel 80386 version, type 'make
  27. a386'. The Makefile contains instructions on how to make one of the
  28. assemblers compile as the default.
  29. Before you can compile the 68020 version of the assembler, you must
  30. make m68k.h be a link to m-sun3.h , m-hpux.h or m-generic.h . If
  31. you are on a SUN-3 (or other machine that uses a magic number of
  32. (2 << 16) | OMAGIC type 'ln -s m-sun3.h m68k.h' else if you are on a
  33. machine running HP-UX, type 'ln m-hpux.h m689k.h' else type
  34. 'ln -s m-generic.h m68k.h' If your machine does not support symbolic
  35. links, omit the '-s'.
  36. If your machine does not have both varargs.h and vfprintf(), but does have
  37. _doprnt() add -DNO_VARARGS to the CFLAGS line in the makefile. If your
  38. machine has neither vfprintf() or _doprnt(), you will have to change
  39. messages.c in order to get readable error messages from the assembler.
  40. REPORTING BUGS IN GAS
  41. If you report a bug in GAS, please remember to include:
  42. A description of exactly what went wrong.
  43. The type of machine GAS was running on (VAX, 68020, etc),
  44. The Operating System GAS was running under.
  45. The options given to GAS.
  46. The actual input file that caused the problem.
  47. It is silly to report a bug in GAS without including an input file for
  48. GAS. Don't ask us to generate the file just because you made it from
  49. files you think we have access to.
  50. 1. You might be mistaken.
  51. 2. It might take us a lot of time to install things to regenerate that file.
  52. 3. We might get a different file from the one you got, and might not see any
  53. bug.
  54. To save us these delays and uncertainties, always send the input file
  55. for the program that failed.
  56. If the input file is very large, and you are on the internet, you may
  57. want to make it avaliable for anonymous FTP instead of mailing it. If you
  58. do, include instructions for FTP'ing it in our bug report.