home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / text / TagItems / text0001.txt < prev    next >
Encoding:
Text File  |  2014-05-19  |  2.1 KB  |  53 lines

  1. In article <JcBgr*rx1@zikzak.in-berlin.de> amk@zikzak.in-berlin.de (Andreas M. Kirchwitz) writes:
  2. >#include <stdio.h>
  3. >#include <stdlib.h>
  4. >
  5. >int main(int argc, char *argv[])
  6. >{
  7. >  char text[] = "Hello World\n";
  8. >  printf("%s",text);
  9. >  exit(10);
  10. >}
  11. >
  12. >Optionen: <keine>
  13. >Compiler: lc test.c
  14. >Linker  : blink FROM LIB:cres.o test.o TO test LIB LIB:lc.lib SD SC ND
  15. >
  16. >    "Warning! Absolute reference to UNKNOWN" ...  Andreas
  17.  
  18. Hat vermutlich damit zu tun, dass SAS String-Konstanten grundlos in den
  19. DATA Hunk wirft, und damit zu veraenderlichen Objekten erklaert. Wenn
  20. die String-Konstante "Hello World\n" (und nicht etwa text!) im CODE Hunk
  21. waere, haette BLink gar nix zu motzen, denn dann haette er keine data-text
  22. Relokation auszufuehren, die ja in einem resident-faehigen Programm nicht
  23. auftreten sollte.
  24.  
  25. >PPS: Kann man beim BLink eigentlich bestimmte Warnings (ausser mit "grep")
  26. >     unterdruecken?
  27.  
  28. Groel.. BLink als Manifestation der AmigaDOS treuen Gemeinde, die sich
  29. gern duselig quatscht auf der Kommandozeile (und daher Optionen ala -s -o
  30. und dergleichen verdammt), wird mit einem Unix Programm (grep) zu
  31. Leibe gerueckt, finde ich einfach koestlich ;-)
  32.  
  33. >PPPS: Interessante Effekte erhaelt man, wenn man 'printf("%s",text);'
  34. >      durch 'printf(text);' ersetzt.  Eindrucksvoller Memory-Dump...
  35. >      Anscheinend ist die Warning eine warnende Warning, der man doch
  36. >      besser Beachtung schenken sollte.
  37.  
  38. Absolut unklar, weshalb das zu Problemen fuehren soll?! Die interne
  39. Referent auf die String-Konstante ist doch in beiden Faellen 100%
  40. gleich?  Im beiden Faellen sollte die Konstante als Source in einem
  41. bcopy()/memmove() (oder inline kopiert) auf die Stack-Variable dienen,
  42. der einzige Unterschied ist, dass im ersten Fall nach dem Push der
  43. Stackadresse noch ein Push der Adresses des Format-Strings vorgeht, ent-
  44. scheidet dies bei SAS ueber Crash oder nicht-Crash??
  45.  
  46. -Markus
  47.  
  48. -- 
  49. Markus M. Wild    -  wild@nessie.cs.id.ethz.ch  |  wild@amiga.physik.unizh.ch 
  50. Vital papers will demonstrate their vitality by spontaneously moving
  51. from where you left them to where you can't find them.
  52.  
  53.