Problem in External/SPEC/CFP2000/177.mesa/Makefile ?

Hello folks,

The makefile for 177.mesa says that for a small problem size, it will
get 100 frames. But in the spec sources I have, the test folder only
contains numbers for 10 frames:

$ speccpu2000/benchspec/CFP2000/177.mesa/data $ wc -l test/input/numbers
      10 test/input/numbers

Generating 100 frames causes undefined behaviour because the program is
doing unchecked fscanf on that "numbers" file.

Is my version of spec wrong ? If not, can we apply the attached patch ?

Thanks,
Julien

p.diff (427 Bytes)

Hello folks,

The makefile for 177.mesa says that for a small problem size, it will
get 100 frames. But in the spec sources I have, the test folder only
contains numbers for 10 frames:

$ speccpu2000/benchspec/CFP2000/177.mesa/data $ wc -l test/input/numbers
     10 test/input/numbers

Generating 100 frames causes undefined behaviour because the program is
doing unchecked fscanf on that "numbers" file.

Is my version of spec wrong ?

What you say is true in the version I have.

If not, can we apply the attached patch ?

I don't think it's ideal. There are 3 input sets, not 2, that's the root of the problem:

ifndef RUN_TYPE
ifdef SMALL_PROBLEM_SIZE
RUN_TYPE := test
else
ifdef LARGE_PROBLEM_SIZE
RUN_TYPE := ref
else
RUN_TYPE := train
endif

100 is a fine value for "train". I think it's better to test both variables in the mesa Makefile.

(IMO controlling a ternary variable with 2 booleans is not the right way to do it, btw.)

Hello folks,

The makefile for 177.mesa says that for a small problem size, it will
get 100 frames. But in the spec sources I have, the test folder only
contains numbers for 10 frames:

$ speccpu2000/benchspec/CFP2000/177.mesa/data $ wc -l test/input/numbers
     10 test/input/numbers

Generating 100 frames causes undefined behaviour because the program is
doing unchecked fscanf on that "numbers" file.

Is my version of spec wrong ?

What you say is true in the version I have.

If not, can we apply the attached patch ?

I don't think it's ideal. There are 3 input sets, not 2, that's the root
of the problem:

ifndef RUN_TYPE
ifdef SMALL_PROBLEM_SIZE
RUN_TYPE := test
else
ifdef LARGE_PROBLEM_SIZE
RUN_TYPE := ref
else
RUN_TYPE := train
endif
endif
endif

Ah, I should have verified. Thanks.

100 is a fine value for "train". I think it's better to test both
variables in the mesa Makefile.

Alright, I'll do that then.

Thanks Dale,