Skip to content

環境毎の設定例

Ryota Shioya edited this page Mar 24, 2022 · 2 revisions

dst/ターゲット環境/SPEC/SPECCPU2000のコンパイル/環境毎の設定例.md

gcc 4.2.1/glibc-2.6.1 alpha

ソース変更箇所

176.gcc

  • obstack.h
    • lvalue required as increment operandのため、そのような書き方をしているマクロを書き換え
    • 460行目の
#define obstack_ptr_grow(OBSTACK,datum)					\
__extension__								\
({ struct obstack *__o = (OBSTACK);					\
  if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
    _obstack_newchunk (__o, sizeof (void *));				\
  if (!__o->alloc_failed)						\
    *((void **)__o->next_free)++ = ((void *)datum);			\
  (void) 0; })

#define obstack_ptr_grow(OBSTACK,datum)					\
__extension__								\
({ struct obstack *__o = (OBSTACK);					\
  if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
    _obstack_newchunk (__o, sizeof (void *));				\
  if (!__o->alloc_failed) {						\
    void **__tmp = (void**)__o->next_free;			\
    *__tmp++ = ((void *)datum);					\
    __o->next_free = (char*)__tmp;				\
 /**((void **)__o->next_free)++ = ((void *)datum);*/ }			\
  (void) 0; })

252.eon

  • ggFrame2.cc、ggFrame3.cc
    • 入力ストリームの>>演算子の使い方がまずいらしいので書き換え
    • ggFrame2.cc:64
is >> "(" >> input_p >> "," >> input_onb2 >> ")";

is.ignore(1);
is >> input_p;
is.ignore(1);
is >> input_onb2;
is.ignore(1);
* ggFrame3.cc:63
is >> "(" >> input_p >> "," >> input_onb2 >> ")";

is.ignore(1);
is >> input_p;
is.ignore(1);
is >> input_onb3;
is.ignore(1);
  • ggErr.cc
    • int errnoのリンクに失敗
    • 43行目
extern int errno;

//extern int errno;
#include <errno.h>

253.perlbmk

* specconfig.h
    * Fpos_tの型は-Dオプションで指定して、spec_config.hにあるFpos_tの定義を外す
#define Fpos_t fpos_t		/* File position type */

#ifndef Fpos_t
#define Fpos_t fpos_t		/* File position type */
#endif
* pp_sys.c
    * #include<time.h>を追加

cfgファイル

  • alpha-linux-gcc-nag.cfg がベース
  • make の-jは1にしておかないと,コンパイルが通らないものがある

基本オプション

-O3 -static -g

ファイルの内容

makeflags = -j 1 
check_version = no
ignore_errors = yes 
tune          = base
ext           = onikiri 
make	      = specmake
output_format = asc
teeout        = yes
teerunout     = yes

#####################################################################
# Compiler selection
default=default=default=default:

CC=alpha-unknown-linux-gnu-gcc 
CXX=alpha-unknown-linux-gnu-g++
FC=alpha-unknown-linux-gnu-gfortran

OPTIMIZE     = -O3 
PORTABILITY  = -g -static -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX


#######################################################################
# Integer Baseline Optimization
# notes0xx are used for baseline tuning description
#

int=base=default=default:     


#######################################################################
# Floating point Baseline Optimization
# notes0xx are used for baseline tuning description
#

fp=base=default=default:     

#######################################################################
# Integer Portability
# notes8xx are used for portability

int=default=default=default:


186.crafty=default=default=default:
EXTRA_CFLAGS   = -DALPHA

252.eon=default=default=default:
EXTRA_CXXFLAGS = -ansi -DSPEC_CPU2000_LP64 -DFMAX_IS_DOUBLE -DHAS_ERRLIST -Wno-deprecated -Wno-non-template-friend

253.perlbmk=default=default=default:
EXTRA_CFLAGS   = -DSPEC_CPU2000_LINUX_ALPHA -DSPEC_CPU2000_NEED_BOOL -DFpos_t=off_t

254.gap=default=default=default: 
EXTRA_CFLAGS   = -DSYS_IS_USG -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_CALLOC_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIGNAL_PROTO -DSPEC_CPU2000_LP64

255.vortex=default=default=default: 
EXTRA_CFLAGS   = -DSPEC_CPU2000_LP64 


#######################################################################
# Floating point Portability
# notes8xx are used for portability

fp=default=default=default:

168.wupwise=default=default=default:
EXTRA_FFLAGS= -dcfuns

178.galgel=default=default=default:
EXTRA_FFLAGS= -dusty -dcfuns -ffixed-form

187.facerec=default=default=default:
EXTRA_FFLAGS= -dusty -dcfuns

(文責: ほりお,しおや)

Clone this wiki locally