laag-nasm 2.13.03.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +29 -0
  4. data/README.org +34 -0
  5. data/ext/laag/nasm/extconf.rb +16 -0
  6. data/laag-nasm.gemspec +20 -0
  7. data/lib/laag/nasm.rb +29 -0
  8. data/patches/Makefile.in.patch +13 -0
  9. data/vendor/repo.or.cz/nasm/.gitignore +102 -0
  10. data/vendor/repo.or.cz/nasm/AUTHORS +137 -0
  11. data/vendor/repo.or.cz/nasm/CHANGES +2 -0
  12. data/vendor/repo.or.cz/nasm/ChangeLog +2905 -0
  13. data/vendor/repo.or.cz/nasm/INSTALL +102 -0
  14. data/vendor/repo.or.cz/nasm/LICENSE +29 -0
  15. data/vendor/repo.or.cz/nasm/Makefile.in +855 -0
  16. data/vendor/repo.or.cz/nasm/Mkfiles/README +46 -0
  17. data/vendor/repo.or.cz/nasm/Mkfiles/msvc.mak +732 -0
  18. data/vendor/repo.or.cz/nasm/Mkfiles/openwcom.mak +706 -0
  19. data/vendor/repo.or.cz/nasm/README +23 -0
  20. data/vendor/repo.or.cz/nasm/SubmittingPatches +116 -0
  21. data/vendor/repo.or.cz/nasm/TODO +376 -0
  22. data/vendor/repo.or.cz/nasm/aclocal.m4 +139 -0
  23. data/vendor/repo.or.cz/nasm/asm/assemble.c +2957 -0
  24. data/vendor/repo.or.cz/nasm/asm/assemble.h +54 -0
  25. data/vendor/repo.or.cz/nasm/asm/directiv.c +566 -0
  26. data/vendor/repo.or.cz/nasm/asm/directiv.dat +92 -0
  27. data/vendor/repo.or.cz/nasm/asm/error.c +202 -0
  28. data/vendor/repo.or.cz/nasm/asm/eval.c +1014 -0
  29. data/vendor/repo.or.cz/nasm/asm/eval.h +49 -0
  30. data/vendor/repo.or.cz/nasm/asm/exprdump.c +79 -0
  31. data/vendor/repo.or.cz/nasm/asm/exprlib.c +200 -0
  32. data/vendor/repo.or.cz/nasm/asm/float.c +952 -0
  33. data/vendor/repo.or.cz/nasm/asm/float.h +54 -0
  34. data/vendor/repo.or.cz/nasm/asm/labels.c +540 -0
  35. data/vendor/repo.or.cz/nasm/asm/listing.c +346 -0
  36. data/vendor/repo.or.cz/nasm/asm/listing.h +113 -0
  37. data/vendor/repo.or.cz/nasm/asm/nasm.c +1855 -0
  38. data/vendor/repo.or.cz/nasm/asm/parser.c +1167 -0
  39. data/vendor/repo.or.cz/nasm/asm/parser.h +45 -0
  40. data/vendor/repo.or.cz/nasm/asm/phash.pl +109 -0
  41. data/vendor/repo.or.cz/nasm/asm/pptok.dat +96 -0
  42. data/vendor/repo.or.cz/nasm/asm/pptok.pl +271 -0
  43. data/vendor/repo.or.cz/nasm/asm/pragma.c +218 -0
  44. data/vendor/repo.or.cz/nasm/asm/preproc-nop.c +188 -0
  45. data/vendor/repo.or.cz/nasm/asm/preproc.c +5459 -0
  46. data/vendor/repo.or.cz/nasm/asm/preproc.h +55 -0
  47. data/vendor/repo.or.cz/nasm/asm/quote.c +479 -0
  48. data/vendor/repo.or.cz/nasm/asm/quote.h +44 -0
  49. data/vendor/repo.or.cz/nasm/asm/rdstrnum.c +68 -0
  50. data/vendor/repo.or.cz/nasm/asm/segalloc.c +51 -0
  51. data/vendor/repo.or.cz/nasm/asm/stdscan.c +345 -0
  52. data/vendor/repo.or.cz/nasm/asm/stdscan.h +49 -0
  53. data/vendor/repo.or.cz/nasm/asm/strfunc.c +359 -0
  54. data/vendor/repo.or.cz/nasm/asm/tokens.dat +135 -0
  55. data/vendor/repo.or.cz/nasm/asm/tokhash.pl +284 -0
  56. data/vendor/repo.or.cz/nasm/autogen.sh +9 -0
  57. data/vendor/repo.or.cz/nasm/common/common.c +122 -0
  58. data/vendor/repo.or.cz/nasm/config/msvc.h +192 -0
  59. data/vendor/repo.or.cz/nasm/config/unknown.h +51 -0
  60. data/vendor/repo.or.cz/nasm/config/watcom.h +74 -0
  61. data/vendor/repo.or.cz/nasm/configure.ac +253 -0
  62. data/vendor/repo.or.cz/nasm/contrib/MSVC6.txt +25 -0
  63. data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.README +16 -0
  64. data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.rules +79 -0
  65. data/vendor/repo.or.cz/nasm/disasm/disasm.c +1735 -0
  66. data/vendor/repo.or.cz/nasm/disasm/disasm.h +49 -0
  67. data/vendor/repo.or.cz/nasm/disasm/ndisasm.c +397 -0
  68. data/vendor/repo.or.cz/nasm/disasm/sync.c +132 -0
  69. data/vendor/repo.or.cz/nasm/disasm/sync.h +45 -0
  70. data/vendor/repo.or.cz/nasm/doc/Makefile.in +86 -0
  71. data/vendor/repo.or.cz/nasm/doc/README +20 -0
  72. data/vendor/repo.or.cz/nasm/doc/afmmetrics.ph +102 -0
  73. data/vendor/repo.or.cz/nasm/doc/changes.src +2588 -0
  74. data/vendor/repo.or.cz/nasm/doc/findfont.ph +180 -0
  75. data/vendor/repo.or.cz/nasm/doc/genps.pl +1294 -0
  76. data/vendor/repo.or.cz/nasm/doc/inslist.pl +108 -0
  77. data/vendor/repo.or.cz/nasm/doc/internal.doc +290 -0
  78. data/vendor/repo.or.cz/nasm/doc/local.css +1 -0
  79. data/vendor/repo.or.cz/nasm/doc/nasmdoc.css +150 -0
  80. data/vendor/repo.or.cz/nasm/doc/nasmdoc.src +8309 -0
  81. data/vendor/repo.or.cz/nasm/doc/nasmlogo.eps +212 -0
  82. data/vendor/repo.or.cz/nasm/doc/nasmlogw.png +0 -0
  83. data/vendor/repo.or.cz/nasm/doc/psfonts.ph +53 -0
  84. data/vendor/repo.or.cz/nasm/doc/pspdf.pl +98 -0
  85. data/vendor/repo.or.cz/nasm/doc/pswidth.ph +25 -0
  86. data/vendor/repo.or.cz/nasm/doc/rdsrc.pl +1111 -0
  87. data/vendor/repo.or.cz/nasm/doc/ttfmetrics.ph +63 -0
  88. data/vendor/repo.or.cz/nasm/headers/c +33 -0
  89. data/vendor/repo.or.cz/nasm/headers/doc +33 -0
  90. data/vendor/repo.or.cz/nasm/headers/mac +33 -0
  91. data/vendor/repo.or.cz/nasm/headers/perl +33 -0
  92. data/vendor/repo.or.cz/nasm/include/compiler.h +277 -0
  93. data/vendor/repo.or.cz/nasm/include/disp8.h +45 -0
  94. data/vendor/repo.or.cz/nasm/include/error.h +135 -0
  95. data/vendor/repo.or.cz/nasm/include/hashtbl.h +85 -0
  96. data/vendor/repo.or.cz/nasm/include/iflag.h +173 -0
  97. data/vendor/repo.or.cz/nasm/include/insns.h +76 -0
  98. data/vendor/repo.or.cz/nasm/include/labels.h +60 -0
  99. data/vendor/repo.or.cz/nasm/include/md5.h +21 -0
  100. data/vendor/repo.or.cz/nasm/include/nasm.h +1246 -0
  101. data/vendor/repo.or.cz/nasm/include/nasmint.h +219 -0
  102. data/vendor/repo.or.cz/nasm/include/nasmlib.h +524 -0
  103. data/vendor/repo.or.cz/nasm/include/opflags.h +271 -0
  104. data/vendor/repo.or.cz/nasm/include/perfhash.h +52 -0
  105. data/vendor/repo.or.cz/nasm/include/raa.h +46 -0
  106. data/vendor/repo.or.cz/nasm/include/rbtree.h +51 -0
  107. data/vendor/repo.or.cz/nasm/include/rdoff.h +169 -0
  108. data/vendor/repo.or.cz/nasm/include/saa.h +94 -0
  109. data/vendor/repo.or.cz/nasm/include/strlist.h +55 -0
  110. data/vendor/repo.or.cz/nasm/include/tables.h +70 -0
  111. data/vendor/repo.or.cz/nasm/include/ver.h +47 -0
  112. data/vendor/repo.or.cz/nasm/install-sh +250 -0
  113. data/vendor/repo.or.cz/nasm/macros/altreg.mac +107 -0
  114. data/vendor/repo.or.cz/nasm/macros/fp.mac +54 -0
  115. data/vendor/repo.or.cz/nasm/macros/ifunc.mac +48 -0
  116. data/vendor/repo.or.cz/nasm/macros/macros.pl +294 -0
  117. data/vendor/repo.or.cz/nasm/macros/smartalign.mac +189 -0
  118. data/vendor/repo.or.cz/nasm/macros/standard.mac +226 -0
  119. data/vendor/repo.or.cz/nasm/misc/Doxyfile +752 -0
  120. data/vendor/repo.or.cz/nasm/misc/Nindent +18 -0
  121. data/vendor/repo.or.cz/nasm/misc/README +2 -0
  122. data/vendor/repo.or.cz/nasm/misc/c16.mac +82 -0
  123. data/vendor/repo.or.cz/nasm/misc/c32.mac +52 -0
  124. data/vendor/repo.or.cz/nasm/misc/crcgen.c +44 -0
  125. data/vendor/repo.or.cz/nasm/misc/exebin.mac +57 -0
  126. data/vendor/repo.or.cz/nasm/misc/exebin2.mac +114 -0
  127. data/vendor/repo.or.cz/nasm/misc/fmtinsns.pl +40 -0
  128. data/vendor/repo.or.cz/nasm/misc/genfma.pl +63 -0
  129. data/vendor/repo.or.cz/nasm/misc/hints.txt +26 -0
  130. data/vendor/repo.or.cz/nasm/misc/magic +6 -0
  131. data/vendor/repo.or.cz/nasm/misc/myC32.mac +121 -0
  132. data/vendor/repo.or.cz/nasm/misc/nasm.sl +320 -0
  133. data/vendor/repo.or.cz/nasm/misc/nasmstab +296 -0
  134. data/vendor/repo.or.cz/nasm/misc/omfdump.c +517 -0
  135. data/vendor/repo.or.cz/nasm/misc/pmw.bat +9 -0
  136. data/vendor/repo.or.cz/nasm/misc/proc32.ash +441 -0
  137. data/vendor/repo.or.cz/nasm/misc/scitech.mac +1223 -0
  138. data/vendor/repo.or.cz/nasm/misc/xcrcgen.c +80 -0
  139. data/vendor/repo.or.cz/nasm/nasm.spec.in +83 -0
  140. data/vendor/repo.or.cz/nasm/nasm.spec.sed +3 -0
  141. data/vendor/repo.or.cz/nasm/nasm.txt +306 -0
  142. data/vendor/repo.or.cz/nasm/nasmlib/badenum.c +43 -0
  143. data/vendor/repo.or.cz/nasm/nasmlib/bsi.c +77 -0
  144. data/vendor/repo.or.cz/nasm/nasmlib/crc64.c +189 -0
  145. data/vendor/repo.or.cz/nasm/nasmlib/file.c +259 -0
  146. data/vendor/repo.or.cz/nasm/nasmlib/file.h +128 -0
  147. data/vendor/repo.or.cz/nasm/nasmlib/filename.c +69 -0
  148. data/vendor/repo.or.cz/nasm/nasmlib/hashtbl.c +232 -0
  149. data/vendor/repo.or.cz/nasm/nasmlib/ilog2.c +168 -0
  150. data/vendor/repo.or.cz/nasm/nasmlib/malloc.c +108 -0
  151. data/vendor/repo.or.cz/nasm/nasmlib/md5c.c +247 -0
  152. data/vendor/repo.or.cz/nasm/nasmlib/mmap.c +139 -0
  153. data/vendor/repo.or.cz/nasm/nasmlib/path.c +186 -0
  154. data/vendor/repo.or.cz/nasm/nasmlib/perfhash.c +55 -0
  155. data/vendor/repo.or.cz/nasm/nasmlib/perfhash.pl +362 -0
  156. data/vendor/repo.or.cz/nasm/nasmlib/raa.c +173 -0
  157. data/vendor/repo.or.cz/nasm/nasmlib/rbtree.c +119 -0
  158. data/vendor/repo.or.cz/nasm/nasmlib/readnum.c +172 -0
  159. data/vendor/repo.or.cz/nasm/nasmlib/realpath.c +135 -0
  160. data/vendor/repo.or.cz/nasm/nasmlib/saa.c +431 -0
  161. data/vendor/repo.or.cz/nasm/nasmlib/srcfile.c +128 -0
  162. data/vendor/repo.or.cz/nasm/nasmlib/string.c +242 -0
  163. data/vendor/repo.or.cz/nasm/nasmlib/strlist.c +100 -0
  164. data/vendor/repo.or.cz/nasm/nasmlib/ver.c +51 -0
  165. data/vendor/repo.or.cz/nasm/nasmlib/zerobuf.c +42 -0
  166. data/vendor/repo.or.cz/nasm/ndisasm.txt +94 -0
  167. data/vendor/repo.or.cz/nasm/nsis/NASMMultiUser.nsh +478 -0
  168. data/vendor/repo.or.cz/nasm/nsis/getpearch.pl +76 -0
  169. data/vendor/repo.or.cz/nasm/nsis/nasm-un.ico +0 -0
  170. data/vendor/repo.or.cz/nasm/nsis/nasm.ico +0 -0
  171. data/vendor/repo.or.cz/nasm/nsis/nasm.nsi +241 -0
  172. data/vendor/repo.or.cz/nasm/output/codeview.c +814 -0
  173. data/vendor/repo.or.cz/nasm/output/dwarf.h +566 -0
  174. data/vendor/repo.or.cz/nasm/output/elf.h +537 -0
  175. data/vendor/repo.or.cz/nasm/output/legacy.c +112 -0
  176. data/vendor/repo.or.cz/nasm/output/nulldbg.c +93 -0
  177. data/vendor/repo.or.cz/nasm/output/nullout.c +51 -0
  178. data/vendor/repo.or.cz/nasm/output/outaout.c +954 -0
  179. data/vendor/repo.or.cz/nasm/output/outaout.mac +37 -0
  180. data/vendor/repo.or.cz/nasm/output/outas86.c +650 -0
  181. data/vendor/repo.or.cz/nasm/output/outas86.mac +37 -0
  182. data/vendor/repo.or.cz/nasm/output/outbin.c +1713 -0
  183. data/vendor/repo.or.cz/nasm/output/outbin.mac +40 -0
  184. data/vendor/repo.or.cz/nasm/output/outcoff.c +1242 -0
  185. data/vendor/repo.or.cz/nasm/output/outcoff.mac +43 -0
  186. data/vendor/repo.or.cz/nasm/output/outdbg.c +425 -0
  187. data/vendor/repo.or.cz/nasm/output/outelf.c +3370 -0
  188. data/vendor/repo.or.cz/nasm/output/outelf.h +156 -0
  189. data/vendor/repo.or.cz/nasm/output/outelf.mac +41 -0
  190. data/vendor/repo.or.cz/nasm/output/outform.c +120 -0
  191. data/vendor/repo.or.cz/nasm/output/outform.h +379 -0
  192. data/vendor/repo.or.cz/nasm/output/outieee.c +1528 -0
  193. data/vendor/repo.or.cz/nasm/output/outlib.c +58 -0
  194. data/vendor/repo.or.cz/nasm/output/outlib.h +63 -0
  195. data/vendor/repo.or.cz/nasm/output/outmacho.c +2387 -0
  196. data/vendor/repo.or.cz/nasm/output/outmacho.mac +49 -0
  197. data/vendor/repo.or.cz/nasm/output/outobj.c +2725 -0
  198. data/vendor/repo.or.cz/nasm/output/outobj.mac +49 -0
  199. data/vendor/repo.or.cz/nasm/output/outrdf.mac +40 -0
  200. data/vendor/repo.or.cz/nasm/output/outrdf2.c +791 -0
  201. data/vendor/repo.or.cz/nasm/output/outrdf2.mac +43 -0
  202. data/vendor/repo.or.cz/nasm/output/pecoff.h +532 -0
  203. data/vendor/repo.or.cz/nasm/output/stabs.h +144 -0
  204. data/vendor/repo.or.cz/nasm/perllib/crc64.ph +158 -0
  205. data/vendor/repo.or.cz/nasm/perllib/gensv.pl +34 -0
  206. data/vendor/repo.or.cz/nasm/perllib/phash.ph +200 -0
  207. data/vendor/repo.or.cz/nasm/perllib/random_sv_vectors.ph +67 -0
  208. data/vendor/repo.or.cz/nasm/rdoff/README +185 -0
  209. data/vendor/repo.or.cz/nasm/rdoff/collectn.c +44 -0
  210. data/vendor/repo.or.cz/nasm/rdoff/collectn.h +22 -0
  211. data/vendor/repo.or.cz/nasm/rdoff/doc/Makefile +37 -0
  212. data/vendor/repo.or.cz/nasm/rdoff/doc/rdoff.texi +137 -0
  213. data/vendor/repo.or.cz/nasm/rdoff/doc/v1-v2.txt +62 -0
  214. data/vendor/repo.or.cz/nasm/rdoff/hash.c +122 -0
  215. data/vendor/repo.or.cz/nasm/rdoff/hash.h +17 -0
  216. data/vendor/repo.or.cz/nasm/rdoff/ldrdf.1 +41 -0
  217. data/vendor/repo.or.cz/nasm/rdoff/ldrdf.c +1395 -0
  218. data/vendor/repo.or.cz/nasm/rdoff/ldsegs.h +59 -0
  219. data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.1 +65 -0
  220. data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.c +431 -0
  221. data/vendor/repo.or.cz/nasm/rdoff/rdf2com.1 +1 -0
  222. data/vendor/repo.or.cz/nasm/rdoff/rdf2ihx.1 +1 -0
  223. data/vendor/repo.or.cz/nasm/rdoff/rdf2ith.1 +1 -0
  224. data/vendor/repo.or.cz/nasm/rdoff/rdf2srec.1 +1 -0
  225. data/vendor/repo.or.cz/nasm/rdoff/rdfdump.1 +24 -0
  226. data/vendor/repo.or.cz/nasm/rdoff/rdfdump.c +347 -0
  227. data/vendor/repo.or.cz/nasm/rdoff/rdflib.1 +39 -0
  228. data/vendor/repo.or.cz/nasm/rdoff/rdflib.c +434 -0
  229. data/vendor/repo.or.cz/nasm/rdoff/rdfload.c +213 -0
  230. data/vendor/repo.or.cz/nasm/rdoff/rdfload.h +29 -0
  231. data/vendor/repo.or.cz/nasm/rdoff/rdfutils.h +165 -0
  232. data/vendor/repo.or.cz/nasm/rdoff/rdlar.c +492 -0
  233. data/vendor/repo.or.cz/nasm/rdoff/rdlar.h +34 -0
  234. data/vendor/repo.or.cz/nasm/rdoff/rdlib.c +290 -0
  235. data/vendor/repo.or.cz/nasm/rdoff/rdlib.h +62 -0
  236. data/vendor/repo.or.cz/nasm/rdoff/rdoff.c +621 -0
  237. data/vendor/repo.or.cz/nasm/rdoff/rdx.1 +21 -0
  238. data/vendor/repo.or.cz/nasm/rdoff/rdx.c +90 -0
  239. data/vendor/repo.or.cz/nasm/rdoff/segtab.c +172 -0
  240. data/vendor/repo.or.cz/nasm/rdoff/segtab.h +45 -0
  241. data/vendor/repo.or.cz/nasm/rdoff/symtab.c +159 -0
  242. data/vendor/repo.or.cz/nasm/rdoff/symtab.h +55 -0
  243. data/vendor/repo.or.cz/nasm/rdoff/test/Makefile +10 -0
  244. data/vendor/repo.or.cz/nasm/rdoff/test/makelib.sh +14 -0
  245. data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg.asm +20 -0
  246. data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg2.asm +12 -0
  247. data/vendor/repo.or.cz/nasm/rdoff/test/rdftest1.asm +54 -0
  248. data/vendor/repo.or.cz/nasm/rdoff/test/rdftest2.asm +33 -0
  249. data/vendor/repo.or.cz/nasm/rdoff/test/rdtlib.asm +48 -0
  250. data/vendor/repo.or.cz/nasm/rdoff/test/rdtmain.asm +47 -0
  251. data/vendor/repo.or.cz/nasm/rdoff/test/testlib.asm +18 -0
  252. data/vendor/repo.or.cz/nasm/stdlib/snprintf.c +29 -0
  253. data/vendor/repo.or.cz/nasm/stdlib/strlcpy.c +51 -0
  254. data/vendor/repo.or.cz/nasm/stdlib/strnlen.c +46 -0
  255. data/vendor/repo.or.cz/nasm/stdlib/vsnprintf.c +51 -0
  256. data/vendor/repo.or.cz/nasm/test/Makefile +106 -0
  257. data/vendor/repo.or.cz/nasm/test/_file_.asm +5 -0
  258. data/vendor/repo.or.cz/nasm/test/_version.asm +2 -0
  259. data/vendor/repo.or.cz/nasm/test/a32offs.asm +9 -0
  260. data/vendor/repo.or.cz/nasm/test/absolute.asm +40 -0
  261. data/vendor/repo.or.cz/nasm/test/addr64x.asm +18 -0
  262. data/vendor/repo.or.cz/nasm/test/align13.asm +19 -0
  263. data/vendor/repo.or.cz/nasm/test/align13s.asm +20 -0
  264. data/vendor/repo.or.cz/nasm/test/alonesym-obj.asm +166 -0
  265. data/vendor/repo.or.cz/nasm/test/andbyte.asm +15 -0
  266. data/vendor/repo.or.cz/nasm/test/aoutso.asm +99 -0
  267. data/vendor/repo.or.cz/nasm/test/aouttest.asm +86 -0
  268. data/vendor/repo.or.cz/nasm/test/aouttest.c +36 -0
  269. data/vendor/repo.or.cz/nasm/test/avx.asm +46 -0
  270. data/vendor/repo.or.cz/nasm/test/avx005.asm +529 -0
  271. data/vendor/repo.or.cz/nasm/test/avx2.asm +1608 -0
  272. data/vendor/repo.or.cz/nasm/test/avx512cd.asm +106 -0
  273. data/vendor/repo.or.cz/nasm/test/avx512er.asm +144 -0
  274. data/vendor/repo.or.cz/nasm/test/avx512f.asm +7000 -0
  275. data/vendor/repo.or.cz/nasm/test/avx512pf.asm +88 -0
  276. data/vendor/repo.or.cz/nasm/test/bcd.asm +23 -0
  277. data/vendor/repo.or.cz/nasm/test/binexe.asm +35 -0
  278. data/vendor/repo.or.cz/nasm/test/bintest.asm +59 -0
  279. data/vendor/repo.or.cz/nasm/test/bisect.sh +22 -0
  280. data/vendor/repo.or.cz/nasm/test/br1879590.asm +25 -0
  281. data/vendor/repo.or.cz/nasm/test/br2003451.asm +17 -0
  282. data/vendor/repo.or.cz/nasm/test/br2030823.asm +7 -0
  283. data/vendor/repo.or.cz/nasm/test/br2148476.asm +221 -0
  284. data/vendor/repo.or.cz/nasm/test/br2222615.asm +19 -0
  285. data/vendor/repo.or.cz/nasm/test/br2496848.asm +42 -0
  286. data/vendor/repo.or.cz/nasm/test/br3005117.asm +26 -0
  287. data/vendor/repo.or.cz/nasm/test/br3026808.asm +20 -0
  288. data/vendor/repo.or.cz/nasm/test/br3028880.asm +8 -0
  289. data/vendor/repo.or.cz/nasm/test/br3041451.asm +59 -0
  290. data/vendor/repo.or.cz/nasm/test/br3058845.asm +14 -0
  291. data/vendor/repo.or.cz/nasm/test/br3066383.asm +70 -0
  292. data/vendor/repo.or.cz/nasm/test/br3074517.asm +12 -0
  293. data/vendor/repo.or.cz/nasm/test/br3092924.asm +25 -0
  294. data/vendor/repo.or.cz/nasm/test/br3104312.asm +11 -0
  295. data/vendor/repo.or.cz/nasm/test/br3109604.asm +9 -0
  296. data/vendor/repo.or.cz/nasm/test/br3174983.asm +9 -0
  297. data/vendor/repo.or.cz/nasm/test/br3187743.asm +7 -0
  298. data/vendor/repo.or.cz/nasm/test/br3189064.asm +7 -0
  299. data/vendor/repo.or.cz/nasm/test/br3200749.asm +9 -0
  300. data/vendor/repo.or.cz/nasm/test/br3385573.asm +11 -0
  301. data/vendor/repo.or.cz/nasm/test/br3392252.asm +43 -0
  302. data/vendor/repo.or.cz/nasm/test/br3392259.asm +8 -0
  303. data/vendor/repo.or.cz/nasm/test/br3392363.asm +4 -0
  304. data/vendor/repo.or.cz/nasm/test/br3392392.asm +16 -0
  305. data/vendor/repo.or.cz/nasm/test/br3392396.asm +5 -0
  306. data/vendor/repo.or.cz/nasm/test/br3392411.asm +22 -0
  307. data/vendor/repo.or.cz/nasm/test/br3392418.asm +3 -0
  308. data/vendor/repo.or.cz/nasm/test/br3392439.asm +25 -0
  309. data/vendor/repo.or.cz/nasm/test/br3392442.asm +6 -0
  310. data/vendor/repo.or.cz/nasm/test/br560575.asm +17 -0
  311. data/vendor/repo.or.cz/nasm/test/br560873.asm +27 -0
  312. data/vendor/repo.or.cz/nasm/test/br890790.asm +7 -0
  313. data/vendor/repo.or.cz/nasm/test/br890790_i.asm +1 -0
  314. data/vendor/repo.or.cz/nasm/test/br978756.asm +7 -0
  315. data/vendor/repo.or.cz/nasm/test/changed.asm +383 -0
  316. data/vendor/repo.or.cz/nasm/test/cofftest.asm +85 -0
  317. data/vendor/repo.or.cz/nasm/test/cofftest.c +35 -0
  318. data/vendor/repo.or.cz/nasm/test/crc32.asm +37 -0
  319. data/vendor/repo.or.cz/nasm/test/cv8struc.asm +14 -0
  320. data/vendor/repo.or.cz/nasm/test/dtbcd.asm +72 -0
  321. data/vendor/repo.or.cz/nasm/test/elf64so.asm +118 -0
  322. data/vendor/repo.or.cz/nasm/test/elfso.asm +100 -0
  323. data/vendor/repo.or.cz/nasm/test/elftest.asm +87 -0
  324. data/vendor/repo.or.cz/nasm/test/elftest.c +38 -0
  325. data/vendor/repo.or.cz/nasm/test/elftest64.c +43 -0
  326. data/vendor/repo.or.cz/nasm/test/elif.asm +39 -0
  327. data/vendor/repo.or.cz/nasm/test/expimp.asm +90 -0
  328. data/vendor/repo.or.cz/nasm/test/far64.asm +10 -0
  329. data/vendor/repo.or.cz/nasm/test/float.asm +186 -0
  330. data/vendor/repo.or.cz/nasm/test/float8.asm +135 -0
  331. data/vendor/repo.or.cz/nasm/test/floatb.asm +35 -0
  332. data/vendor/repo.or.cz/nasm/test/floatexp.asm +382 -0
  333. data/vendor/repo.or.cz/nasm/test/floatize.asm +19 -0
  334. data/vendor/repo.or.cz/nasm/test/floattest.asm +28 -0
  335. data/vendor/repo.or.cz/nasm/test/floatx.asm +525 -0
  336. data/vendor/repo.or.cz/nasm/test/fpu.asm +127 -0
  337. data/vendor/repo.or.cz/nasm/test/fwdopt.asm +133 -0
  338. data/vendor/repo.or.cz/nasm/test/fwdoptpp.asm +150 -0
  339. data/vendor/repo.or.cz/nasm/test/gas2nasm.py +104 -0
  340. data/vendor/repo.or.cz/nasm/test/gather.asm +11 -0
  341. data/vendor/repo.or.cz/nasm/test/gotoff64.asm +25 -0
  342. data/vendor/repo.or.cz/nasm/test/hexfp.asm +25 -0
  343. data/vendor/repo.or.cz/nasm/test/hle.asm +19 -0
  344. data/vendor/repo.or.cz/nasm/test/ifelse.asm +46 -0
  345. data/vendor/repo.or.cz/nasm/test/ifenv.asm +31 -0
  346. data/vendor/repo.or.cz/nasm/test/ifmacro.asm +413 -0
  347. data/vendor/repo.or.cz/nasm/test/iftoken.asm +317 -0
  348. data/vendor/repo.or.cz/nasm/test/iftoken.pl +32 -0
  349. data/vendor/repo.or.cz/nasm/test/ilog2.asm +271 -0
  350. data/vendor/repo.or.cz/nasm/test/imacro.asm +8 -0
  351. data/vendor/repo.or.cz/nasm/test/imm.asm +23 -0
  352. data/vendor/repo.or.cz/nasm/test/imm64.asm +61 -0
  353. data/vendor/repo.or.cz/nasm/test/immwarn.asm +91 -0
  354. data/vendor/repo.or.cz/nasm/test/imul.asm +117 -0
  355. data/vendor/repo.or.cz/nasm/test/inc1.asm +6 -0
  356. data/vendor/repo.or.cz/nasm/test/inc2.asm +8 -0
  357. data/vendor/repo.or.cz/nasm/test/incbin.asm +7 -0
  358. data/vendor/repo.or.cz/nasm/test/incbin.data +2 -0
  359. data/vendor/repo.or.cz/nasm/test/inctest.asm +15 -0
  360. data/vendor/repo.or.cz/nasm/test/insnlbl.asm +12 -0
  361. data/vendor/repo.or.cz/nasm/test/invlpga.asm +11 -0
  362. data/vendor/repo.or.cz/nasm/test/jmp64.asm +19 -0
  363. data/vendor/repo.or.cz/nasm/test/lar_lsl.asm +124 -0
  364. data/vendor/repo.or.cz/nasm/test/larlsl.asm +23 -0
  365. data/vendor/repo.or.cz/nasm/test/lnxhello.asm +54 -0
  366. data/vendor/repo.or.cz/nasm/test/local.asm +19 -0
  367. data/vendor/repo.or.cz/nasm/test/loopoffs.asm +12 -0
  368. data/vendor/repo.or.cz/nasm/test/lwp.asm +213 -0
  369. data/vendor/repo.or.cz/nasm/test/macro-defaults.asm +64 -0
  370. data/vendor/repo.or.cz/nasm/test/macroerr.asm +12 -0
  371. data/vendor/repo.or.cz/nasm/test/macroerr.inc +3 -0
  372. data/vendor/repo.or.cz/nasm/test/mmxsize.asm +38 -0
  373. data/vendor/repo.or.cz/nasm/test/movd.asm +12 -0
  374. data/vendor/repo.or.cz/nasm/test/movd64.asm +15 -0
  375. data/vendor/repo.or.cz/nasm/test/movimm.asm +28 -0
  376. data/vendor/repo.or.cz/nasm/test/movnti.asm +10 -0
  377. data/vendor/repo.or.cz/nasm/test/mpx-64.asm +120 -0
  378. data/vendor/repo.or.cz/nasm/test/mpx.asm +89 -0
  379. data/vendor/repo.or.cz/nasm/test/multisection.asm +96 -0
  380. data/vendor/repo.or.cz/nasm/test/nasmformat.asm +17 -0
  381. data/vendor/repo.or.cz/nasm/test/new +9 -0
  382. data/vendor/repo.or.cz/nasm/test/newrdwr.asm +24 -0
  383. data/vendor/repo.or.cz/nasm/test/nop.asm +17 -0
  384. data/vendor/repo.or.cz/nasm/test/nullfile.asm +4 -0
  385. data/vendor/repo.or.cz/nasm/test/objexe.asm +30 -0
  386. data/vendor/repo.or.cz/nasm/test/objlink.c +33 -0
  387. data/vendor/repo.or.cz/nasm/test/objtest.asm +85 -0
  388. data/vendor/repo.or.cz/nasm/test/optimization.asm +104 -0
  389. data/vendor/repo.or.cz/nasm/test/org.asm +18 -0
  390. data/vendor/repo.or.cz/nasm/test/paste.asm +12 -0
  391. data/vendor/repo.or.cz/nasm/test/pcrel.asm +52 -0
  392. data/vendor/repo.or.cz/nasm/test/perf/label.pl +18 -0
  393. data/vendor/repo.or.cz/nasm/test/perf/macro.pl +18 -0
  394. data/vendor/repo.or.cz/nasm/test/perf/token.pl +23 -0
  395. data/vendor/repo.or.cz/nasm/test/performtest.pl +192 -0
  396. data/vendor/repo.or.cz/nasm/test/pextrw.asm +3 -0
  397. data/vendor/repo.or.cz/nasm/test/pinsr16.asm +53 -0
  398. data/vendor/repo.or.cz/nasm/test/pinsr32.asm +53 -0
  399. data/vendor/repo.or.cz/nasm/test/pinsr64.asm +68 -0
  400. data/vendor/repo.or.cz/nasm/test/popcnt.asm +32 -0
  401. data/vendor/repo.or.cz/nasm/test/ppindirect.asm +42 -0
  402. data/vendor/repo.or.cz/nasm/test/pragma.asm +12 -0
  403. data/vendor/repo.or.cz/nasm/test/prefix66.asm +28 -0
  404. data/vendor/repo.or.cz/nasm/test/ptr.asm +4 -0
  405. data/vendor/repo.or.cz/nasm/test/pushseg.asm +17 -0
  406. data/vendor/repo.or.cz/nasm/test/r13.asm +15 -0
  407. data/vendor/repo.or.cz/nasm/test/radix.asm +54 -0
  408. data/vendor/repo.or.cz/nasm/test/rdpid.asm +21 -0
  409. data/vendor/repo.or.cz/nasm/test/reldef.asm +57 -0
  410. data/vendor/repo.or.cz/nasm/test/relocs.asm +20 -0
  411. data/vendor/repo.or.cz/nasm/test/riprel.asm +5357 -0
  412. data/vendor/repo.or.cz/nasm/test/riprel.pl +29 -0
  413. data/vendor/repo.or.cz/nasm/test/riprel2.asm +11 -0
  414. data/vendor/repo.or.cz/nasm/test/sha-64.asm +30 -0
  415. data/vendor/repo.or.cz/nasm/test/sha.asm +31 -0
  416. data/vendor/repo.or.cz/nasm/test/smartalign16.asm +36 -0
  417. data/vendor/repo.or.cz/nasm/test/smartalign32.asm +36 -0
  418. data/vendor/repo.or.cz/nasm/test/smartalign64.asm +36 -0
  419. data/vendor/repo.or.cz/nasm/test/splitea.asm +11 -0
  420. data/vendor/repo.or.cz/nasm/test/sreg.asm +65 -0
  421. data/vendor/repo.or.cz/nasm/test/strlen.asm +5 -0
  422. data/vendor/repo.or.cz/nasm/test/struc.asm +33 -0
  423. data/vendor/repo.or.cz/nasm/test/test67.asm +38 -0
  424. data/vendor/repo.or.cz/nasm/test/testdos.asm +13 -0
  425. data/vendor/repo.or.cz/nasm/test/testnos3.asm +973 -0
  426. data/vendor/repo.or.cz/nasm/test/time.asm +11 -0
  427. data/vendor/repo.or.cz/nasm/test/times.asm +21 -0
  428. data/vendor/repo.or.cz/nasm/test/timesneg.asm +3 -0
  429. data/vendor/repo.or.cz/nasm/test/tmap.nas +1447 -0
  430. data/vendor/repo.or.cz/nasm/test/uscore.asm +15 -0
  431. data/vendor/repo.or.cz/nasm/test/utf.asm +82 -0
  432. data/vendor/repo.or.cz/nasm/test/vaesenc.asm +22 -0
  433. data/vendor/repo.or.cz/nasm/test/vex.asm +9 -0
  434. data/vendor/repo.or.cz/nasm/test/vgather.asm +76 -0
  435. data/vendor/repo.or.cz/nasm/test/vmread.asm +26 -0
  436. data/vendor/repo.or.cz/nasm/test/weirdpaste.asm +29 -0
  437. data/vendor/repo.or.cz/nasm/test/xchg.asm +96 -0
  438. data/vendor/repo.or.cz/nasm/test/xcrypt.asm +24 -0
  439. data/vendor/repo.or.cz/nasm/test/xmm0.asm +12 -0
  440. data/vendor/repo.or.cz/nasm/test/zerobyte.asm +22 -0
  441. data/vendor/repo.or.cz/nasm/tools/cleanfile +176 -0
  442. data/vendor/repo.or.cz/nasm/tools/cleanpatch +258 -0
  443. data/vendor/repo.or.cz/nasm/tools/mkdep.pl +261 -0
  444. data/vendor/repo.or.cz/nasm/tools/release +105 -0
  445. data/vendor/repo.or.cz/nasm/tools/syncfiles.pl +137 -0
  446. data/vendor/repo.or.cz/nasm/tools/tag-release +58 -0
  447. data/vendor/repo.or.cz/nasm/version +1 -0
  448. data/vendor/repo.or.cz/nasm/version.pl +189 -0
  449. data/vendor/repo.or.cz/nasm/x86/disp8.c +131 -0
  450. data/vendor/repo.or.cz/nasm/x86/insns-iflags.ph +280 -0
  451. data/vendor/repo.or.cz/nasm/x86/insns.dat +5371 -0
  452. data/vendor/repo.or.cz/nasm/x86/insns.pl +1043 -0
  453. data/vendor/repo.or.cz/nasm/x86/regs.dat +138 -0
  454. data/vendor/repo.or.cz/nasm/x86/regs.pl +204 -0
  455. metadata +520 -0
@@ -0,0 +1 @@
1
+ .so man1/rdf2bin.1
@@ -0,0 +1 @@
1
+ .so man1/rdf2bin.1
@@ -0,0 +1 @@
1
+ .so man1/rdf2bin.1
@@ -0,0 +1 @@
1
+ .so man1/rdf2bin.1
@@ -0,0 +1,24 @@
1
+ .TH RDFDUMP 1 "September 6, 1999" "Debian Project" "Debian Manual"
2
+ .SH NAME
3
+ rdfdump \- dumps an RDOFF object in human-readable form
4
+ .SH SYNOPSIS
5
+ .B rdfdump
6
+ [-v]
7
+ .RI < filename >
8
+ .SH DESCRIPTION
9
+ .B rdfdump
10
+ prints a list of the header records in an RDOFF object in human-readable
11
+ form, and optionally prints a hex dump of the contents of the segments.
12
+ .PP
13
+ .B rdfdump
14
+ supports both version 1 and 2 of RDOFF. It will give warnings if the RDOFF2
15
+ format is violated (it looks for incorrect lengths for header records, and
16
+ checks the overall length count at the start of the file).
17
+ .SH OPTIONS
18
+ .TP
19
+ -v
20
+ Print a hex dump of the contents of the segments.
21
+ .SH AUTHORS
22
+ Julian Hall <jules@earthcorp.com>.
23
+ .PP
24
+ This manual page was written by Matej Vela <vela@debian.org>.
@@ -0,0 +1,347 @@
1
+ /* ----------------------------------------------------------------------- *
2
+ *
3
+ * Copyright 1996-2014 The NASM Authors - All Rights Reserved
4
+ * See the file AUTHORS included with the NASM distribution for
5
+ * the specific copyright holders.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following
9
+ * conditions are met:
10
+ *
11
+ * * Redistributions of source code must retain the above copyright
12
+ * notice, this list of conditions and the following disclaimer.
13
+ * * Redistributions in binary form must reproduce the above
14
+ * copyright notice, this list of conditions and the following
15
+ * disclaimer in the documentation and/or other materials provided
16
+ * with the distribution.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ * ----------------------------------------------------------------------- */
33
+
34
+ /*
35
+ * rdfdump.c - dump RDOFF file header.
36
+ */
37
+
38
+ #include "compiler.h"
39
+
40
+ #include <stdio.h>
41
+ #include <stdlib.h>
42
+ #include <string.h>
43
+
44
+ #include "rdfutils.h"
45
+
46
+ #define PROGRAM_VERSION "2.3"
47
+
48
+ FILE *infile;
49
+
50
+ static void print_header(int32_t length, int rdf_version)
51
+ {
52
+ char buf[129], t, l, s, flags;
53
+ uint8_t reclen;
54
+ int32_t o, ll;
55
+ uint16_t rs;
56
+
57
+ while (length > 0) {
58
+ nasm_read(&t, 1, infile);
59
+ if (rdf_version >= 2) {
60
+ nasm_read(&reclen, 1, infile);
61
+ }
62
+ switch (t) {
63
+ case RDFREC_GENERIC: /* generic record */
64
+ printf(" generic record (length=%d)\n", (int)reclen);
65
+ fseek(infile, reclen, SEEK_CUR);
66
+ break;
67
+
68
+ case RDFREC_RELOC: /* relocation record */
69
+ case RDFREC_SEGRELOC: /* segment relocation */
70
+ nasm_read(&s, 1, infile);
71
+ nasm_read(&o, 4, infile);
72
+ nasm_read(&l, 1, infile);
73
+ nasm_read(&rs, 2, infile);
74
+ printf(" %s: location (%04x:%08"PRIx32"), length %d, "
75
+ "referred seg %04x\n",
76
+ t == 1 ? "relocation" : "seg relocation", (int)s,
77
+ translateint32_t(o), (int)l, translateint16_t(rs));
78
+ if (rdf_version >= 2 && reclen != 8)
79
+ printf(" warning: reclen != 8\n");
80
+ if (rdf_version == 1)
81
+ length -= 9;
82
+ if (rdf_version == 1 && t == 6)
83
+ printf
84
+ (" warning: seg relocation not supported in RDOFF1\n");
85
+ break;
86
+
87
+ case RDFREC_IMPORT: /* import record */
88
+ case RDFREC_FARIMPORT: /* import far symbol */
89
+ nasm_read(&flags, 1, infile);
90
+ nasm_read(&rs, 2, infile);
91
+ ll = 0;
92
+
93
+ if (rdf_version == 1) {
94
+ do {
95
+ nasm_read(&buf[ll], 1, infile);
96
+ } while (buf[ll++]);
97
+ } else {
98
+ for (; ll < reclen - 3; ll++)
99
+ nasm_read(&buf[ll], 1, infile);
100
+ }
101
+
102
+ if (t == 7)
103
+ printf("far ");
104
+ printf((flags & SYM_IMPORT) ? " import" : " extern");
105
+ if (flags & SYM_FUNCTION)
106
+ printf(" proc");
107
+ if (flags & SYM_DATA)
108
+ printf(" data");
109
+ printf(": segment %04x = %s\n", translateint16_t(rs), buf);
110
+ if (rdf_version == 1)
111
+ length -= ll + 3;
112
+ if (rdf_version == 1 && t == 7)
113
+ printf
114
+ (" warning: far import not supported in RDOFF1\n");
115
+ break;
116
+
117
+ case RDFREC_GLOBAL: /* export record */
118
+ nasm_read(&flags, 1, infile);
119
+ nasm_read(&s, 1, infile);
120
+ nasm_read(&o, 4, infile);
121
+ ll = 0;
122
+
123
+ if (rdf_version == 1) {
124
+ do {
125
+ nasm_read(&buf[ll], 1, infile);
126
+ } while (buf[ll++]);
127
+ } else {
128
+ for (; ll < reclen - 6; ll++)
129
+ nasm_read(&buf[ll], 1, infile);
130
+ }
131
+ printf((flags & SYM_GLOBAL) ? " export" : " public");
132
+ if (flags & SYM_FUNCTION)
133
+ printf(" proc");
134
+ if (flags & SYM_DATA)
135
+ printf(" data");
136
+ printf(": (%04x:%08"PRIx32") = %s\n", (int)s, translateint32_t(o), buf);
137
+ if (rdf_version == 1)
138
+ length -= ll + 6;
139
+ break;
140
+
141
+ case RDFREC_DLL: /* DLL and Module records */
142
+ case RDFREC_MODNAME:
143
+ ll = 0;
144
+ if (rdf_version == 1) {
145
+ do {
146
+ nasm_read(&buf[ll], 1, infile);
147
+ } while (buf[ll++]);
148
+ } else {
149
+ for (; ll < reclen; ll++)
150
+ nasm_read(&buf[ll], 1, infile);
151
+ }
152
+ if (t == 4)
153
+ printf(" dll: %s\n", buf);
154
+ else
155
+ printf(" module: %s\n", buf);
156
+ if (rdf_version == 1)
157
+ length -= ll + 1;
158
+ break;
159
+
160
+ case RDFREC_BSS: /* BSS reservation */
161
+ nasm_read(&ll, 4, infile);
162
+ printf(" bss reservation: %08"PRIx32" bytes\n", translateint32_t(ll));
163
+ if (rdf_version == 1)
164
+ length -= 5;
165
+ if (rdf_version > 1 && reclen != 4)
166
+ printf(" warning: reclen != 4\n");
167
+ break;
168
+
169
+ case RDFREC_COMMON:{
170
+ uint16_t seg, align;
171
+ uint32_t size;
172
+
173
+ nasm_read(&seg, 2, infile);
174
+ nasm_read(&size, 4, infile);
175
+ nasm_read(&align, 2, infile);
176
+ for (ll = 0; ll < reclen - 8; ll++)
177
+ nasm_read(buf + ll, 1, infile);
178
+ printf(" common: segment %04x = %s, %"PRId32":%d\n",
179
+ translateint16_t(seg), buf, translateint32_t(size),
180
+ translateint16_t(align));
181
+ break;
182
+ }
183
+
184
+ default:
185
+ printf(" unrecognized record (type %d", (int)t);
186
+ if (rdf_version > 1) {
187
+ printf(", length %d", (int)reclen);
188
+ fseek(infile, reclen, SEEK_CUR);
189
+ } else
190
+ length--;
191
+ printf(")\n");
192
+ }
193
+ if (rdf_version != 1)
194
+ length -= 2 + reclen;
195
+ }
196
+ }
197
+
198
+ int main(int argc, char **argv)
199
+ {
200
+ char id[7];
201
+ int32_t l;
202
+ uint16_t s;
203
+ int verbose = 0;
204
+ int32_t offset;
205
+ int foundnullsegment = 0;
206
+ int version;
207
+ int32_t segmentcontentlength = 0;
208
+ int nsegments = 0;
209
+ int32_t headerlength = 0;
210
+ int32_t objectlength = 0;
211
+
212
+ printf("RDOFF dump utility, version %s\n", PROGRAM_VERSION);
213
+ printf("RDOFF2 revision %s\n", RDOFF2_REVISION);
214
+ puts("Copyright (c) 1996,99 Julian R Hall\n"
215
+ "Improvements and fixes (c) 2002-2004 RET & COM Research.");
216
+
217
+ if (argc < 2) {
218
+ fputs("Usage: rdfdump [-v] <filename>\n", stderr);
219
+ exit(1);
220
+ }
221
+
222
+ rdoff_init();
223
+
224
+ if (!strcmp(argv[1], "-v")) {
225
+ verbose = 1;
226
+ if (argc < 3) {
227
+ fputs("required parameter missing\n", stderr);
228
+ exit(1);
229
+ }
230
+ argv++;
231
+ }
232
+
233
+ infile = fopen(argv[1], "rb");
234
+ if (!infile) {
235
+ fprintf(stderr, "rdfdump: Could not open %s\n", argv[1]);
236
+ exit(1);
237
+ }
238
+
239
+ nasm_read(id, 6, infile);
240
+ if (strncmp(id, "RDOFF", 5)) {
241
+ fputs("rdfdump: File does not contain valid RDOFF header\n",
242
+ stderr);
243
+ exit(1);
244
+ }
245
+
246
+ printf("File %s: RDOFF version %c\n\n", argv[1], id[5]);
247
+ if (id[5] < '1' || id[5] > '2') {
248
+ fprintf(stderr, "rdfdump: unknown RDOFF version '%c'\n", id[5]);
249
+ exit(1);
250
+ }
251
+ version = id[5] - '0';
252
+
253
+ if (version > 1) {
254
+ nasm_read(&l, 4, infile);
255
+ objectlength = translateint32_t(l);
256
+ printf("Object content size: %"PRId32" bytes\n", objectlength);
257
+ }
258
+
259
+ nasm_read(&l, 4, infile);
260
+ headerlength = translateint32_t(l);
261
+ printf("Header (%"PRId32" bytes):\n", headerlength);
262
+ print_header(headerlength, version);
263
+
264
+ if (version == 1) {
265
+ nasm_read(&l, 4, infile);
266
+ l = translateint32_t(l);
267
+ printf("\nText segment length = %"PRId32" bytes\n", l);
268
+ offset = 0;
269
+ while (l--) {
270
+ nasm_read(id, 1, infile);
271
+ if (verbose) {
272
+ if (offset % 16 == 0)
273
+ printf("\n%08"PRIx32" ", offset);
274
+ printf(" %02x", (int)(uint8_t)id[0]);
275
+ offset++;
276
+ }
277
+ }
278
+ if (verbose)
279
+ printf("\n\n");
280
+
281
+ nasm_read(&l, 4, infile);
282
+ l = translateint32_t(l);
283
+ printf("Data segment length = %"PRId32" bytes\n", l);
284
+
285
+ if (verbose) {
286
+ offset = 0;
287
+ while (l--) {
288
+ nasm_read(id, 1, infile);
289
+ if (offset % 16 == 0)
290
+ printf("\n%08"PRIx32" ", offset);
291
+ printf(" %02x", (int)(uint8_t)id[0]);
292
+ offset++;
293
+ }
294
+ printf("\n");
295
+ }
296
+ } else {
297
+ do {
298
+ nasm_read(&s, 2, infile);
299
+ s = translateint16_t(s);
300
+ if (!s) {
301
+ printf("\nNULL segment\n");
302
+ foundnullsegment = 1;
303
+ break;
304
+ }
305
+ printf("\nSegment:\n Type = %04X (%s)\n", (int)s,
306
+ translatesegmenttype(s));
307
+ nsegments++;
308
+
309
+ nasm_read(&s, 2, infile);
310
+ printf(" Number = %04X\n", (int)translateint16_t(s));
311
+ nasm_read(&s, 2, infile);
312
+ printf(" Resrvd = %04X\n", (int)translateint16_t(s));
313
+ nasm_read(&l, 4, infile);
314
+ l = translateint32_t(l);
315
+ printf(" Length = %"PRId32" bytes\n", l);
316
+ segmentcontentlength += l;
317
+
318
+ offset = 0;
319
+ while (l--) {
320
+ nasm_read(id, 1, infile);
321
+ if (verbose) {
322
+ if (offset % 16 == 0)
323
+ printf("\n%08"PRIx32" ", offset);
324
+ printf(" %02x", (int)(uint8_t)id[0]);
325
+ offset++;
326
+ }
327
+ }
328
+ if (verbose)
329
+ printf("\n");
330
+ } while (!feof(infile));
331
+ if (!foundnullsegment)
332
+ printf("\nWarning: unexpected end of file - "
333
+ "NULL segment not found\n");
334
+
335
+ printf("\nTotal number of segments: %d\n", nsegments);
336
+ printf("Total segment content length: %"PRId32" bytes\n",
337
+ segmentcontentlength);
338
+
339
+ /* calculate what the total object content length should have been */
340
+ l = segmentcontentlength + 10 * (nsegments + 1) + headerlength + 4;
341
+ if (l != objectlength)
342
+ printf("Warning: actual object length (%"PRId32") != "
343
+ "stored object length (%"PRId32")\n", l, objectlength);
344
+ }
345
+ fclose(infile);
346
+ return 0;
347
+ }
@@ -0,0 +1,39 @@
1
+ .TH RDFLIB 1 "September 6, 1999" "Debian Project" "Debian Manual"
2
+ .SH NAME
3
+ rdflib \- manage a library file for use with ldrdf(1)
4
+ .SH SYNOPSIS
5
+ .B rdflib
6
+ .I command
7
+ .I arguments
8
+ .SH DESCRIPTION
9
+ .B rdflib
10
+ manages a library file which can be used by
11
+ .BR ldrdf (1).
12
+ It is supplied with a shell script
13
+ .B makelib
14
+ which should probably be used to create libraries.
15
+ .SH COMMANDS
16
+ .TP
17
+ .BI c " library-file"
18
+ Create (or truncate) a library.
19
+ .TP
20
+ .BI a " library-file object-file module"
21
+ Add the
22
+ .I object-file
23
+ to the library under the name
24
+ .IR module .
25
+ .TP
26
+ .BI x " library-file module object-file"
27
+ Extract a
28
+ .I module
29
+ from the library to the file
30
+ .IR object-file .
31
+ .TP
32
+ .B t " library-file"
33
+ Display a list of modules in the library.
34
+ .SH NOTES
35
+ A remove command will be added soon.
36
+ .SH AUTHORS
37
+ Julian Hall <jules@earthcorp.com>.
38
+ .PP
39
+ This manual page was written by Matej Vela <vela@debian.org>.
@@ -0,0 +1,434 @@
1
+ /* ----------------------------------------------------------------------- *
2
+ *
3
+ * Copyright 1996-2009 The NASM Authors - All Rights Reserved
4
+ * See the file AUTHORS included with the NASM distribution for
5
+ * the specific copyright holders.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following
9
+ * conditions are met:
10
+ *
11
+ * * Redistributions of source code must retain the above copyright
12
+ * notice, this list of conditions and the following disclaimer.
13
+ * * Redistributions in binary form must reproduce the above
14
+ * copyright notice, this list of conditions and the following
15
+ * disclaimer in the documentation and/or other materials provided
16
+ * with the distribution.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ *
32
+ * ----------------------------------------------------------------------- */
33
+
34
+ /* rdflib - manipulate RDOFF library files (.rdl) */
35
+
36
+ /*
37
+ * an rdoff library is simply a sequence of RDOFF object files, each
38
+ * preceded by the name of the module, an ASCII string of up to 255
39
+ * characters, terminated by a zero.
40
+ *
41
+ * When a library is being created, special signature block is placed
42
+ * in the beginning of the file. It is a string 'RDLIB' followed by a
43
+ * version number, then int32_t content size and a int32_t time stamp.
44
+ * The module name of the signature block is '.sig'.
45
+ *
46
+ *
47
+ * There may be an optional directory placed on the end of the file.
48
+ * The format of the directory will be 'RDLDD' followed by a version
49
+ * number, followed by the length of the directory, and then the
50
+ * directory, the format of which has not yet been designed.
51
+ * The module name of the directory must be '.dir'.
52
+ *
53
+ * All module names beginning with '.' are reserved for possible future
54
+ * extensions. The linker ignores all such modules, assuming they have
55
+ * the format of a six uint8_t type & version identifier followed by int32_t
56
+ * content size, followed by data.
57
+ */
58
+
59
+ #include "compiler.h"
60
+ #include "rdfutils.h"
61
+
62
+ #include <stdio.h>
63
+ #include <stdlib.h>
64
+ #include <errno.h>
65
+ #include <string.h>
66
+ #include <time.h>
67
+
68
+ /* functions supported:
69
+ * create a library (no extra operands required)
70
+ * add a module from a library (requires filename and name to give mod.)
71
+ * replace a module in a library (requires given name and filename)
72
+ * delete a module from a library (requires given name)
73
+ * extract a module from the library (requires given name and filename)
74
+ * list modules
75
+ */
76
+
77
+ const char *usage =
78
+ "usage:\n"
79
+ " rdflib x libname [extra operands]\n\n"
80
+ " where x is one of:\n"
81
+ " c - create library\n"
82
+ " a - add module (operands = filename module-name)\n"
83
+ " x - extract (module-name filename)\n"
84
+ " r - replace (module-name filename)\n"
85
+ " d - delete (module-name)\n" " t - list\n";
86
+
87
+ /* Library signature */
88
+ const char *rdl_signature = "RDLIB2", *sig_modname = ".sig";
89
+
90
+ char **_argv;
91
+
92
+ #define _ENDIANNESS 0 /* 0 for little, 1 for big */
93
+
94
+ static void int32_ttolocal(int32_t *l)
95
+ {
96
+ #if _ENDIANNESS
97
+ uint8_t t;
98
+ uint8_t *p = (uint8_t *)l;
99
+
100
+ t = p[0];
101
+ p[0] = p[3];
102
+ p[3] = t;
103
+ t = p[1];
104
+ p[1] = p[2];
105
+ p[2] = p[1];
106
+ #else
107
+ (void)l; /* placate optimizers */
108
+ #endif
109
+ }
110
+
111
+ static char copybytes(FILE * fp, FILE * fp2, int n)
112
+ {
113
+ int i, t = 0;
114
+
115
+ for (i = 0; i < n; i++) {
116
+ t = fgetc(fp);
117
+ if (t == EOF) {
118
+ fprintf(stderr, "rdflib: premature end of file in '%s'\n",
119
+ _argv[2]);
120
+ exit(1);
121
+ }
122
+ if (fp2)
123
+ if (fputc(t, fp2) == EOF) {
124
+ fprintf(stderr, "rdflib: write error\n");
125
+ exit(1);
126
+ }
127
+ }
128
+ return (char)t; /* return last char read */
129
+ }
130
+
131
+ static int32_t copyint32_t(FILE * fp, FILE * fp2)
132
+ {
133
+ int32_t l;
134
+ int i, t;
135
+ uint8_t *p = (uint8_t *)&l;
136
+
137
+ for (i = 0; i < 4; i++) { /* skip magic no */
138
+ t = fgetc(fp);
139
+ if (t == EOF) {
140
+ fprintf(stderr, "rdflib: premature end of file in '%s'\n",
141
+ _argv[2]);
142
+ exit(1);
143
+ }
144
+ if (fp2)
145
+ if (fputc(t, fp2) == EOF) {
146
+ fprintf(stderr, "rdflib: write error\n");
147
+ exit(1);
148
+ }
149
+ *p++ = t;
150
+ }
151
+ int32_ttolocal(&l);
152
+ return l;
153
+ }
154
+
155
+ int main(int argc, char **argv)
156
+ {
157
+ FILE *fp, *fp2 = NULL, *fptmp;
158
+ char *p, buf[256], c;
159
+ int i;
160
+ int32_t l;
161
+ time_t t;
162
+ char rdbuf[10];
163
+
164
+ _argv = argv;
165
+
166
+ if (argc < 3 || !strncmp(argv[1], "-h", 2)
167
+ || !strncmp(argv[1], "--h", 3)) {
168
+ fputs(usage, stdout);
169
+ exit(1);
170
+ }
171
+
172
+ rdoff_init();
173
+
174
+ switch (argv[1][0]) {
175
+ case 'c': /* create library */
176
+ fp = fopen(argv[2], "wb");
177
+ if (!fp) {
178
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
179
+ perror("rdflib");
180
+ exit(1);
181
+ }
182
+ nasm_write(sig_modname, strlen(sig_modname) + 1, fp);
183
+ nasm_write(rdl_signature, strlen(rdl_signature), fp);
184
+ t = time(NULL);
185
+ fwriteint32_t(t, fp);
186
+ fclose(fp);
187
+ break;
188
+
189
+ case 'a': /* add module */
190
+ if (argc < 5) {
191
+ fprintf(stderr, "rdflib: required parameter missing\n");
192
+ exit(1);
193
+ }
194
+ fp = fopen(argv[2], "ab");
195
+ if (!fp) {
196
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
197
+ perror("rdflib");
198
+ exit(1);
199
+ }
200
+
201
+ fp2 = fopen(argv[3], "rb");
202
+ if (!fp2) {
203
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[3]);
204
+ perror("rdflib");
205
+ exit(1);
206
+ }
207
+
208
+ p = argv[4];
209
+ do {
210
+ if (fputc(*p, fp) == EOF) {
211
+ fprintf(stderr, "rdflib: write error\n");
212
+ exit(1);
213
+ }
214
+ } while (*p++);
215
+
216
+ while (!feof(fp2)) {
217
+ i = fgetc(fp2);
218
+ if (i == EOF) {
219
+ break;
220
+ }
221
+
222
+ if (fputc(i, fp) == EOF) {
223
+ fprintf(stderr, "rdflib: write error\n");
224
+ exit(1);
225
+ }
226
+ }
227
+ fclose(fp2);
228
+ fclose(fp);
229
+ break;
230
+
231
+ case 'x':
232
+ if (argc < 5) {
233
+ fprintf(stderr, "rdflib: required parameter missing\n");
234
+ exit(1);
235
+ }
236
+ case 't':
237
+ fp = fopen(argv[2], "rb");
238
+ if (!fp) {
239
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
240
+ perror("rdflib");
241
+ exit(1);
242
+ }
243
+
244
+ fp2 = NULL;
245
+ while (!feof(fp)) {
246
+ /* read name */
247
+ p = buf;
248
+ while ((*(p++) = (char)fgetc(fp)))
249
+ if (feof(fp))
250
+ break;
251
+
252
+ if (feof(fp))
253
+ break;
254
+
255
+ fp2 = NULL;
256
+ if (argv[1][0] == 'x') {
257
+ /* check against desired name */
258
+ if (!strcmp(buf, argv[3])) {
259
+ fp2 = fopen(argv[4], "wb");
260
+ if (!fp2) {
261
+ fprintf(stderr, "rdflib: could not open '%s'\n",
262
+ argv[4]);
263
+ perror("rdflib");
264
+ exit(1);
265
+ }
266
+ }
267
+ } else
268
+ printf("%-40s ", buf);
269
+
270
+ /* step over the RDOFF file, extracting type information for
271
+ * the listing, and copying it if fp2 != NULL */
272
+
273
+ if (buf[0] == '.') {
274
+
275
+ if (argv[1][0] == 't')
276
+ for (i = 0; i < 6; i++)
277
+ printf("%c", copybytes(fp, fp2, 1));
278
+ else
279
+ copybytes(fp, fp2, 6);
280
+
281
+ l = copyint32_t(fp, fp2);
282
+
283
+ if (argv[1][0] == 't')
284
+ printf(" %"PRId32" bytes content\n", l);
285
+
286
+ copybytes(fp, fp2, l);
287
+ } else if ((c = copybytes(fp, fp2, 6)) >= '2') { /* version 2 or above */
288
+ l = copyint32_t(fp, fp2);
289
+
290
+ if (argv[1][0] == 't')
291
+ printf("RDOFF%c %"PRId32" bytes content\n", c, l);
292
+ copybytes(fp, fp2, l); /* entire object */
293
+ } else {
294
+ if (argv[1][0] == 't')
295
+ printf("RDOFF1\n");
296
+ /*
297
+ * version 1 object, so we don't have an object content
298
+ * length field.
299
+ */
300
+ copybytes(fp, fp2, copyint32_t(fp, fp2)); /* header */
301
+ copybytes(fp, fp2, copyint32_t(fp, fp2)); /* text */
302
+ copybytes(fp, fp2, copyint32_t(fp, fp2)); /* data */
303
+ }
304
+
305
+ if (fp2)
306
+ break;
307
+ }
308
+ fclose(fp);
309
+ if (fp2)
310
+ fclose(fp2);
311
+ else if (argv[1][0] == 'x') {
312
+ fprintf(stderr, "rdflib: module '%s' not found in '%s'\n",
313
+ argv[3], argv[2]);
314
+ exit(1);
315
+ }
316
+ break;
317
+
318
+ case 'r': /* replace module */
319
+ argc--;
320
+ case 'd': /* delete module */
321
+ if (argc < 4) {
322
+ fprintf(stderr, "rdflib: required parameter missing\n");
323
+ exit(1);
324
+ }
325
+
326
+ fp = fopen(argv[2], "rb");
327
+ if (!fp) {
328
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
329
+ perror("rdflib");
330
+ exit(1);
331
+ }
332
+
333
+ if (argv[1][0] == 'r') {
334
+ fp2 = fopen(argv[4], "rb");
335
+ if (!fp2) {
336
+ fprintf(stderr, "rdflib: could not open '%s'\n", argv[4]);
337
+ perror("rdflib");
338
+ exit(1);
339
+ }
340
+ }
341
+
342
+ fptmp = tmpfile();
343
+ if (!fptmp) {
344
+ fprintf(stderr, "rdflib: could not open temporary file\n");
345
+ perror("rdflib");
346
+ exit(1);
347
+ }
348
+
349
+ /* copy library into temporary file */
350
+ fseek(fp, 0, SEEK_END); /* get file length */
351
+ l = ftell(fp);
352
+ fseek(fp, 0, SEEK_SET);
353
+ copybytes(fp, fptmp, l);
354
+ rewind(fptmp);
355
+ if (freopen(argv[2], "wb", fp) == NULL) {
356
+ fprintf(stderr, "rdflib: could not reopen '%s'\n", argv[2]);
357
+ perror("rdflib");
358
+ exit(1);
359
+ }
360
+
361
+ while (!feof(fptmp)) {
362
+ /* read name */
363
+ p = buf;
364
+ while ((*(p++) = (char)fgetc(fptmp)))
365
+ if (feof(fptmp))
366
+ break;
367
+
368
+ if (feof(fptmp))
369
+ break;
370
+
371
+ /* check against desired name */
372
+ if (!strcmp(buf, argv[3])) {
373
+ if (fread(p = rdbuf, 1, sizeof(rdbuf), fptmp) < 10) {
374
+ nasm_fatal(0, "short read on input");
375
+ }
376
+ l = *(int32_t *)(p + 6);
377
+ fseek(fptmp, l, SEEK_CUR);
378
+ break;
379
+ } else {
380
+ nasm_write(buf, strlen(buf) + 1, fp); /* module name */
381
+ if ((c = copybytes(fptmp, fp, 6)) >= '2') {
382
+ l = copyint32_t(fptmp, fp); /* version 2 or above */
383
+ copybytes(fptmp, fp, l); /* entire object */
384
+ }
385
+ }
386
+ }
387
+
388
+ if (argv[1][0] == 'r') {
389
+ /* copy new module into library */
390
+ p = argv[3];
391
+ do {
392
+ if (fputc(*p, fp) == EOF) {
393
+ fprintf(stderr, "rdflib: write error\n");
394
+ exit(1);
395
+ }
396
+ } while (*p++);
397
+
398
+ while (!feof(fp2)) {
399
+ i = fgetc(fp2);
400
+ if (i == EOF) {
401
+ break;
402
+ }
403
+ if (fputc(i, fp) == EOF) {
404
+ fprintf(stderr, "rdflib: write error\n");
405
+ exit(1);
406
+ }
407
+ }
408
+ fclose(fp2);
409
+ }
410
+
411
+ /* copy rest of library if any */
412
+ while (!feof(fptmp)) {
413
+ i = fgetc(fptmp);
414
+ if (i == EOF) {
415
+ break;
416
+ }
417
+
418
+ if (fputc(i, fp) == EOF) {
419
+ fprintf(stderr, "rdflib: write error\n");
420
+ exit(1);
421
+ }
422
+ }
423
+
424
+ fclose(fp);
425
+ fclose(fptmp);
426
+ break;
427
+
428
+ default:
429
+ fprintf(stderr, "rdflib: command '%c' not recognized\n",
430
+ argv[1][0]);
431
+ exit(1);
432
+ }
433
+ return 0;
434
+ }