2023.07.10

编译(ubuntu)

  • 改config
2022.11.17

编译(NixOS)

tools

Using FHS to build tools

Err: __stat

undefined reference to `__stat'

Solution:

// file: tools/src/make-3.80/glob/glob.c
// change
if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
// to
if _GNU_GLOB_INTERFACE_VERSION >= GLOB_INTERFACE_VERSION

Err: getline

error: conflicting types for 'getline'

Solution:

// file: tools/src/specmd5sum/lib/getline.h
// comment
int
getline PARAMS ((char **_lineptr, size_t *_n, FILE *_stream));

int
getdelim PARAMS ((char **_lineptr, size_t *_n, int _delimiter, FILE *_stream));

Err: asm/page.h

asm/page.h: No such file or directory

Solution:

// file: tools/src/perl-5.8.7/ext/IPC/SysV/SysV.xs
// comment
#   include <asm/page.h>

NixOS native

cwd

Cwd.pm: /bin/pwd => pwd

MakeMaker.pm: 162&163: cwd => getcwd

Errno_pm.PL

# file: Errno_pm.PL
# comment
die "No error definitions found" unless keys %err;
2021.07.15

运行spec没什么难事,仔细阅读官方完整和docs/即可。毕竟是长期运作了几十年的商业软件,使用的坑早被大量用户踩平了。

2020.10.12

:以下提及的SPEC若无特殊说明都指SPEC2000。

Undefined reference to pow

在nix-shell中添加链接器参数

NIX_LDFLAGS+=" -lm"

ubuntu (docker: x86_64, aarch64, riscv64)

编译时链接libm,使用 PERLFLAGS="-A libs=-lm -A libs=-ldl" ./buildtools

Undefined reference to pow

编译时链接libm,使用 PERLFLAGS="-A libs=-lm -A libs=-ldl" ./buildtools

You haven't done a "make depend" yet!

https://www.okqubit.net/runspec.html

把/bin/sh从dash换成bash

dpkg-reconfigure dash
# no

编译测试

252.eon

CXXPORTABILITY = -DHAS_ERRLIST -fpermissive

改成

CXXPORTABILITY = -DUSE_STRERROR -fpermissive

编译

仍然未成功编译!!!

# 报错ld找不的合适版本的libgfortran.a
sudo apt install libgfortran-9-dev:i386 # 装对应版本的i386的libgfortran # 当然还是没解决ld找不的适合版本的问题

直接用刘先喆编译好的版本吧,

运行

x86-linux

:在RUNME.sh脚本里的runspec程序里添加参数-I来忽略错误,而不是在给RUNME.sh参数。

2020.10.20

或者用runspec

. ./shrc
# runspec -h 可以用帮助
# 只跑一遍
runspec -n 1 --config=x86_32.O3.cfg all
# 跑一遍定点测试集
runspec -n 1 -i test --config=x86_32.O3.cfg int

mips-linux

直接用刘先喆编好的myrun.sh就好了。


还是没编译成功,如下,

  • 注释tools/src/specmd5sum/lib/getline.h的getline和getdelim这俩声明。
  • tools/src/buildtools的255行的./Configure后添加-Dcc="gcc -lm" -Dlibpth="/usr/local/lib64 /usr/lib64 /lib64"
  • 注释掉tools/src/perl-5.8.7/ext/IPC/SysV/SysV.xs里include asm/page.h。
2020.10.13

x86-windows on wine

wine cmd # 用wine启动cmd
# 在cmd里的操作参考spec2000-win.zip里的说明,简写如下
shrc
bin\runspec --reportable --config=intel_nt_visual_studio.cfg all