[Pkg-pascal-devel] Bug#851834: mricron FTBFS on armhf: parconvert.s:3121: Error: co-processor offset out of range

Graham Inggs ginggs at debian.org
Thu Jan 26 07:01:49 UTC 2017


The patch below adds line number information to the generated parconvert.s:

--- a/dcm2nii/dcm2nii.lpi
+++ b/dcm2nii/dcm2nii.lpi
@@ -482,6 +482,7 @@
         <ConfigFilePath Value=""/>
       </ConfigFile>
       <CompilerPath Value="$(CompPath)"/>
+      <CustomOptions Value="-al"/>
     </Other>
   </CompilerOptions>
   <EditorMacros Count="0"/>

Because of the additional lines, this changes the assembler messages to:

(9009) Assembling parconvert
parconvert.s: Assembler messages:
parconvert.s:3775: Error: co-processor offset out of range
parconvert.s:3783: Error: co-processor offset out of range
parconvert.s:3880: Error: co-processor offset out of range
parconvert.s:3886: Error: co-processor offset out of range
parconvert.s:3892: Error: co-processor offset out of range
parconvert.s:3895: Error: co-processor offset out of range
parconvert.s:3899: Error: co-processor offset out of range
parconvert.s:3903: Error: co-processor offset out of range
parconvert.s:3918: Error: co-processor offset out of range
parconvert.s:3924: Error: co-processor offset out of range
parconvert.s:3930: Error: co-processor offset out of range
parconvert.s:4813: Error: co-processor offset out of range
parconvert.s:4817: Error: co-processor offset out of range
parconvert.s:4821: Error: co-processor offset out of range
parconvert.s:4825: Error: co-processor offset out of range
parconvert.s:4895: Error: co-processor offset out of range
parconvert.s:4899: Error: co-processor offset out of range
parconvert.pas(1375) Error: (9007) Error while assembling exitcode 1
parconvert.pas(1375) Fatal: (10026) There were 2 errors compiling
module, stopping
Fatal: (1018) Compilation aborted

The first error corresponds to the vstr instruction on line 3775 below:

# [593] lScanResX :=  round(readParFloat);
    mov    r0,r11
    blx    PARCONVERT$_$READ_PAR2NII$crcDDE5A164_$$_READPARFLOAT$$DOUBLE
    blx    fpc_round_real
    blx    fpc_int64_to_double
    vmov.f64    d1,d0
    sub    r0,r11,#143360
    vstr    d1,[r0, #-2528]

Which in turn, corresponds to line 593 of parconvert.pas:

      if lUpCaseStr = 'SCANRESOLUTION(XY)' then begin
         lScanResX :=  round(readParFloat);
         lScanResY :=  round(readParFloat);

readParFloat is a nested function returning double, starting on line
461 of parconvert.pas:

function readParFloat:double;//nested
var lStr: string;
begin
  lStr := '';
  result := 1;
...



More information about the Pkg-pascal-devel mailing list