반응형

개인 공부/리눅스 11

Centos 7, SPEC2017 설치

환경 Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz x2 CentOS Linux release 7.9.2009 (Core) Linux 3.10.0-1160.el7.x86_64 gcc version 8.3.0 (GCC) (scl enable devtoolset-8) 소스코드 spec_cpu2017.iso를 연구실에서 구매후 설치를 준비한다. 벤치마크 소스와 컴파일, 수행, 검증을 위한 tool 프로그램들의 기본 바이너리 파일 및 소스가 존재하며 벤치마크 실행을 위한 규칙파일, 도큐먼트들이 존재한다. $ mkdir tmnt $ sudo mount -o loop spec_cpu2017.iso ./tmnt $ ls tmnt $ mkdir spec_cpu2017 $ cp -R ./tm..

Centos 7, SPEC2006 설치 - 2

sjp38.github.io/ko/post/spec_cpu2006_install/ 블로그 참조 https://github.com/SangJe/spec2006 github 참조 환경 Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz x2 CentOS Linux release 7.9.2009 (Core) Linux 3.10.0-1160.el7.x86_64 gcc version 8.3.0 (GCC) (scl enable devtoolset-8) 아래 스크립트들을 다운받아 실행가능한 파일로 수정 extract_spec.sh #!/bin/bash BINDIR=`dirname $0` pushd $BINDIR SPECIMG=spec_cpu2006.iso TMPMNT=tmnt TARGET=sp..

Centos 7, /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found -2

gcc version 8.3.0을 다운받아 컴파일 후 동적라이브러리를 연결해준다. yum install gmp-devel mpfr-devel libmpc-devel wget wget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz mkdir gcc-8.3.0-build tar xf gcc-8.3.0.tar.gz cd gcc-8.3.0-build ../gcc-8.3.0/configure --enable-languages=c,c++ --disable-multilib sudo make -j 10 && sudo make install export LD_LIBRARY_PATH=/usr/local/lib64:${LD_LIBRARY_PATH} 전 후 이후 .bashr..

Centos 7, /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found

$ sudo find / -name "libstdc++.so.6*" 결과 /home/osang915/gcc-5.4.0-build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /home/osang915/gcc-5.4.0-build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /home/osang915/gcc-5.4.0-build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /home/osang915/gcc-5.4.0-build/stage1-x86_64-unk..

Centos 7, gcc 버전 업데이트

현재 서버의 gcc version 확인[ryotta205@compasslab3 ~]$ gcc --versiongcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 직접 gcc를 업데이트하기위해서는 번거롭고 컴파일, 종속성 문제를 해결해야 할 수 있기 때문에, Developer Toolset을 설치해서 지원하는 gcc version을..

Centos 7, SPEC2006 설치 - 1

sjp38.github.io/ko/post/spec_cpu2006_install/ 블로그 참조 https://github.com/SangJe/spec2006 github 참조 환경 Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz x2 CentOS Linux release 7.9.2009 (Core) Linux 3.10.0-1160.el7.x86_64 gcc version 8.3.0 (GCC) (scl enable devtoolset-8) 소스코드 spec_cpu2006.iso를 연구실에서 구매후 설치를 준비한다. 벤치마크 소스와 컴파일, 수행, 검증을 위한 tool 프로그램들의 기본 바이너리 파일 및 소스가 존재하며 벤치마크 실행을 위한 규칙파일, 도큐먼트들이 존재한다. $ m..

Ubuntu 라이브러리 생성

이전에 생성했던 hello 시스템콜을 사용해 라이브러리를 생성한다. 1. Static Library $ vi hello.c $ gcc –c hello.c $ ar rc libhello.a hello.o $ vi static.c $ gcc static.c –o static –L./ -lhello $ ./static 2. Shared Library $ vi hello.c $ gcc –fPIC –c hello.c –o hello.o $ gcc –shared –o libhello.so.0.0.0 hello.o $ sudo cp libhello.so.0.0.0 /usr/lib/libhello.so.0.0.0 $ sudo ln –s /usr/lib/libhello.so.0.0.0 /usr/lib/libhello.s..

Ubuntu 시스템콜 추가

1. 간단한 시스템콜 소스코드 추가 $ cd /usr/src/linux-5.5.16 $ sudo vi kernel/hello.c 시스템 콜 핸들러 함수는 리눅스 커널에서 제공하는 SYSCALL_DEFINE1과 같은 매크로 함수로 선언되어 있다. SYSCALL_DEFINEx(시스템 콜 이름, 1st 인자 타입, 1st 인자 이름, 2nd 인자 타입, 2nd 인자 이름,...) x는 매개변수 개수를 나타낸다. 2. 시스템콜 테이블에 엔트리 추가 $ cd /usr/src/linux-5.5.16 $ sudo vi arch/x86/entry/syscalls/syscall_64.tbl '436 common hello __x64_sys_hello' 추가 위와 같은 형태로 선언 해야한다. 3. 헤더파일에 시스템콜 선언..

커널 컴파일(Ubuntu)

Centos Ubuntu 18.04, 1. 현재 사용하는 커널의 버전 확인 $ uname -r 2. www.kernel.org/ 통해 커널 다운로드 만약 원하는 커널 버젼이 5.4.84일때 $ cd /usr/src $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.84.tar.xz $ tar xz -d linux-5.4.84.tar.xz $ tar xf linux-5.4.84.tar $ cd linux-5.4.84 3. 컴파일에 필요한 패키지 설치 $ apt install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev..

반응형