Hafoom.com

 

1. 우분투 첨에 깔면 자주 발생하는 root권한 획득

 

su: Authentication failure

 

해결법

sudo passwd root

그다음 패스워드 쭈르르~~ 치면된다.

이제 su를 사용할 수 있다.

 

 

 

 

2. GCC/G++ 개발환경과 파이썬 모듈 설치

 

sudo apt-get install build-essential

 

sudo apt-get install python-dev

 

sudo apt-get install python-docutils

 

 

 

 

3. Scons 설치

2.0.1 버전 기준.

 

wget http://prdownloads.sourceforge.net/scons/scons-2.0.1.tar.gz

tar -xvf scons ... (생략)

cd scons ... (생략)

python setup.py install

 

설치파일은 거의 이렇게

 

 

 

4. hg 사용하기 (mercurial 설치)

 

sudo apt-get install mercurial 시도.

 

or

 

sudo add-apt-repository ppa:mercurial-ppa/releases

sudo apt-get update

sudo apt-get install mercurial

 

위에것이 안먹힌다면

 

 

https://mercurial.selenic.com/wiki/Download

여기서 환경에 따라 다운로드.

 

wget 으로 ~

tar -xvf 로 압축 풀고

cd로 들어가서

make all

make install

 

(python setup.py install 도 같은듯?)

 

which hg 를 쳐서 경로를 확인하므로서 설치확인.

 

home directory에 ./hgrc 를 만든다.

 

username을 하나 만든다.

(왜 만들지?)

 

 

[ui]
# Name data to appear in commits
username = Mary Anthony manthony@atlassian.com

 


 

 

 

5. gem 5 빌드

 

일단 필요한것들을 설치(mercurial 포함됨)

 

sudo apt-get install mercurial swig m4 libgoogle-perftools-dev protobuf-dev

(scons 쓰다보면 libgoogle-perftools 설치시 12% 성능향상된다고 나온다. 이 후 빌드함;;)

 

hg clone http://repo.gem5.org/gem5-stable

cd gem5-stable

scons build/ARM/gem5.opt (예시)

 

 

다음은 구글링으로 찾은 파일의 일부다.

 

 

Compile an instance of the simulator for alpha based machine

– scons -j 4 build/ALPHA_MESI_CMP_directory/gem5.fast RUBY=true
– You can change different parameters in the command line:
• -j4 number of parallel tasks, as using make.
• [gem5.fast, gem5.opt, gem5.debug]
• ALPHA_MESI_CMP_directory is the implemented directory protocol
– Alternatives ALPHA_MOESI_CMP_directory and others
– (We do not focus on cache hierarchy in this course)
• RUBY=true enable the ruby support to simulate NoC and crossbar interconnection subsystems
in a detailed fashion

 

Run a simple example, to check all has been well done
– ./build/ALPHA_MESI_CMP_directory/gem5.fast configs/example/se.py --cmd "tests/testprogs/
hello/bin/alpha/linux/hello"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comment +0

옵션 설명(specification)

Use options to override several configure time options for GCC. A partial list of supported options:

GCC를 위한 여러가지 설정시 옵션을 사용하기 위해 options을 사용한다. 지원하는 options의 부분적인 리스트는 다음과 같다:

  • --prefix=dirname -- Specify the toplevel installation directory. This is the recommended way to install the tools into a directory other than the default. The toplevel installation directory defaults to /usr/local.
  • --prefix=dirname -- 설치할 탑레벨 디렉토리를 정해준다. 디폴트 설치 디렉토리가 아닌 다른 디렉토리에 툴들을 설치하는 추천하는 방법이다. 디폴트로 설치되는 탑레벨 설치 디렉토리는 /usr/local이다.

    We highly recommend against prefix being the same or a subdirectory of objdir or vice versa.

    우리는 prefixobjdir또는 다른 곳의 서브디렉토리나 같은디렉토리와 같게하는 것을 강력히 반대한다. (??)

    These additional options control where certain parts of the distribution are installed. Normally you should not need to use these options.

    여기에 추가적인 옵션들은 패키지의 일부분이 어디에 설치될지를 콘트롤하는 일을 한다. 보통 이러한 옵션은 사용할 필요가 없다.

    • --with-local-prefix=dirname -- Specify the installation directory for local include files. The default is /usr/local.
    • --with-local-prefix=dirname -- 로컬 인클루드 화일들을 위한 설치 디렉토리를 설정한다. 디폴트는 /usr/local 이다.
    • --with-gxx-include-dir=dirname -- Specify the installation directory for g++ header files. The default is /usr/local/include/g++.
    • --with-gxx-include-dir=dirname -- g++ 해더 화일들을 위한 설치 디렉토리를 설정한다. 디폴트는 /usr/local/include/g++이다.
  • --enable-shared -- Build shared versions of the C++ runtime libraries if supported --disable-shared is the default.
  • --enable-shared -- 만약 지원되는 --disable-shared이 디폴트라면 C++ 런타임 라이브러리의 공유버전을 만든다.
  • --enable-haifa -- Enable the new Haifa instruction scheduler in the compiler; the new scheduler can significantly improve code on some targets.
    For EGCS 1.0.x releases --disable-haifa is the default on all platforms except the HPPA.
    For newer releases --disable-haifa is the default on all platforms except the alpha, hppa, powerpc, rs6000, SPARC and m32r.
  • --enable-haifa -- 컴파일러에서 새로운 Haifa 인스트럭션 스케쥴러를 사용가능하게 한다; 새로운 스케쥴러는 같은 타겟머신위에서 눈에띄게 코드를 개선시킨다.
    EGCS 1.0.x releases위해서 HPPA를 제외한 모든 플랫폼에서는 --disable-haifa이 디폴트이다. 더 새로운 releases 위해서는 alpha, hppa, powerpc, rs6000, SPARC, m32r를 제외한 모든 플랫폼에서 --disable-haifa가 디폴트이다.
  • --with-gnu-as -- Specify that the compiler should assume the GNU assembler (aka gas) is available.
  • --with-gnu-as -- 컴파일러가 GNU 어셈블러(aka gas)가 사용가능하다고 생각하게할지를 설정한다.
  • --with-gnu-ld -- Specify that the compiler should assume the GNU linker (aka gld) is available.
  • --with-gnu-ld -- 컴파일러가 GNU 링커(aka gld)가 사용가능하다고 생각하게할지를 설정한다.
  • --with-stabs -- Specify that stabs debugging information should be used instead of whatever format the host normally uses. Normally GCC uses the same debug format as the host system.
  • --with-stabs -- stabs 디버깅 인포메이션이 호스트에서 보통 사용하는 포맷 대신에 사용되어야 함을 설정한다. 보통 GCC는 호스트에 있는 같은 디버깅 포맷을 사용한다.
  • --enable-multilib -- Specify that multiple target libraries should be built to support different target variants, calling conventions, etc. This is the default.
  • --enable-multilib -- 여러 다른 타겟머신과 convention 호출등을 지원하기위한 다중 타겟머신 라이브러리들을 만들지를 설정한다. 이 설정은 디폴트로 되어있다.
  • --enable-threads -- Specify that the target supports threads. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java.
  • --enable-threads -- 타겟이 쓰레드를 지원할지를 설정한다. 이것은 C++과 Java와 같은 다른 언어들을 위한 Objective-C 컴파일러, 런타임 라이브러리, 예외 처리들에 영향을 미친다.
  • --enable-threads=lib -- Specify that lib is the thread support library. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++ and Java.
  • --enable-threads=lib -- lib가 쓰레드를 지원하는 라이브러임을 나타낸다. 이것은 C++과 Java와 같은 다른 언어들을 위한 Objective-C 컴파일러, 런타임 라이브러리, 예외 처리들에 영향을 미친다.
  • --with-cpu=cpu -- Specify which cpu variant the compiler should generate code for by default. This is currently only supported on the some ports, specifically arm, powerpc, and SPARC. If configure does not recognize the model name (e.g. arm700, 603e, or ultrasparc) you provide, please check the configure script for a complete list of supported models.
  • --with-cpu=cpu -- 컴파일러가 어떤 cpu를 대상으로 코드를 만들어낼지를 설정한다. 이것은 현재 현재 단지 몇몇 ports 그리고 특별하게 arm, powerpc, SPARC를 지원하고 있다. 만약 제공되는 모델이름(예를들면, arm700, 603e, or ultrasparc )을 인식하지 않도록 하기 위해서는, 부디 지원하는 모델의 완전한 리스트에서 환경설정 스크립트를 체크해보기 바란다. (??)
  • --enable-target-optspace -- Specify that target libraries should be optimized for code space instead of code speed. This is the default for the m32r platform.
  • --enable-target-optspace -- 코드의 속도 대신에 코드의 공간 측면에서 타겟 라이브러리들을 최적화할지를 설정한다. m32r 플랫폼에서는 이것이 디폴트이다.
  • --enable-cpp -- Specify that a shell script which emulates traditional cpp functionality should be installed.
  • --enable-cpp -- 전통적인 cpp 기능(functionality)을 에뮬레이트하는 쉘 스크립트를 인스톨할지를 설정한다.
  • --enable-cpplib -- Specify that the functionality of CPP should be integrated into the compiler itself. This is still under development, but may be useful in limited situations. This option is never enabled by default.
  • --enable-cpplib -- CPP의 기능(functionality)들이 컴파일러 그 자체에 합쳐질지를 설정한다. 이것은 여전히 개발중것이지만, 제한된 상황에서는 유용하게 사용될 것이다. 이 옵션은 디폴트로 결코 사용되지 않는다.
  • --without-fast-fixincludes -- Specify that the old, slower method of fixing the system header files should be used. EGCS 1.1.x and older releases default to the slow version. GCC 2.95 and newer releases will default to the fast version.
  • --without-fast-fixincludes -- 시스템 해더 화일들을 수정하는 오래된 느린 함수(method)를 사용할지를 설정한다. EGCS 1.1.x 과 더 오래된 버전은 느린 버전을 디폴트로 하고 있다. GCC 2.95 와 그 이후 버전은 빠른 버전을 디폴트로 하고 있다.
  • --enable-version-specific-runtime-libs -- Specify that runtime libraries should be installed in the compiler specific subdirectory (${libsubdir}) rather than the usual places. In addition, libstdc++'s include files will be installed in ${libsubdir}/include/g++ unless you overruled it by using --with-gxx-include-dir=dirname. Using this option is particularly useful if you intend to use several versions of GCC in parallel. This is currently supported by libf2c and libstdc++.
  • --enable-version-specific-runtime-libs -- 런타임 라이브러리들이 보통의 장소보다 컴파일러 특정의 서브디렉토리 (${libsubdir})에 설치되어야함을 설정한다. 게다가, 만약 --with-gxx-include-dir=dirname를 사용함으로 그것을 뒤엎지 않는다면 ${libsubdir}/include/g++에 libstdc++'의 인클루드 화일들이 설치될 것이다. 만약 당신이 병렬적으로 여러 버전의 GCC를 사용하기로 했다면, 이 옵션을 사용한다는 것은 매우 유용한 일이다. 이것은 현재 libf2clibstdc++에 의해 지원되고 있다.
  • --enable-languages=lang1,lang2,... -- Specify that only a particular subset of compilers and their runtime libraries should be built. For a list of valid values for langx you can issue the following command in the gcc directory of your GCC source tree:
    grep language= */config-lang.in
    Currently, you can use any of the following: CHILL, c++, f77, java and objc. Please note, that this switch does not work with EGCS 1.1.2 or older versions of egcs. It is supported in GCC 2.95 and newer versions.
    If you do not pass this flag, all languages available in the gcc sub-tree will be configured. Re-defining LANGUAGES when calling make bootstrap *does not* work anymore, as those language sub-directories might not have been configured!
  • --enable-languages=lang1,lang2,... -- 컴파일러나 그들의 런타임 라이브러리들의 특별한 부분만이 빌드되어야 할지를 설정한다. langx에 사용가능한 값들의 목록에서 당신의 GCC 소스트리에서의 gcc 디렉토리안에서 다음과 같은 커맨드를 실행할 수 있다:
    grep language= */config-lang.in
    현재, 당신은 다음과 같은 것을 사용할 수 있다: CHILL, c++, f77, java and objc. 이 스위치(switch)는 EGCS 1.1.2나 그 이상의 버전에서는 작동하지 않음을 주지하기 바란다.
    만약 당신이 이 플래그를 지나치지 않는다면, gcc 서브트리에 있는 모든 언어들을 사용가능하도록 설정할 것이다. make bootstrap를 호출할때 다시 정의한 언어들(LANGUAGES)은 더 이상 작동하지 *않을 것이다.* 그들의 언어 서브디렉토리들은 설정되어지지 않을 것이다!
  • --with-dwarf2 -- Specify that the compiler should use DWARF2 debugging information as the default.
  • --with-dwarf2 -- 컴파일러가 디폴트로 DWARF2 디버깅 정보를 사용할지를 설정한다.

Some options which only apply to building cross compilers:

몇몇 옵션들은 크로스 컴파일러를 만들때 단지 사용된다:

  • --with-headers=dir -- Specifies a directory which has target include files. This options is required when building a cross compiler, if ${prefix}/${target}/sys-include doesn't pre-exist. These include files will be copied into the gcc install directory. Fixincludes will be run on these files to make them compatible with gcc.
  • --with-headers=dir -- 타겟 인클루드 화일들을 가지고 있는 디렉토리의 위치를 설정한다. ${prefix}/${target}/sys-include이 미리 존재하지 않는다면, 크로스 컴파일러를 만들시에 이 옵션은 반드시 필요하다. 이 인클루드 화일들은 gcc 설치 디렉토리로 복사되어질 것이다. 수정된 인클루드들은 gcc와 함께 호환되도록 만들기 위해 이 화일들과 함께 실행되어질 것이다.
  • --with-libs="dir1 dir2 ... dirN" -- Specifies a list of directories which contain the target runtime libraries. These libraries will be copied into the gcc install directory.
  • --with-libs="dir1 dir2 ... dirN" -- 타겟 런타임 라이브러리들을 포함하고 있는 디렉토리들을 설정한다. 이 라이브러리들은 gcc 설치 디렉토리에 복사되어질 것이다.
  • --with-newlib -- Specifies that "newlib" is being used as the target C library. This causes __eprintf to be omitted from libgcc.a on the assumption that it will be provided by newlib.
  • --with-newlib -- 타겟 C 라이브러리로써 사용되어지는 "newlib"를 설정한다. 이옵션은 newlib에 의해 제공되어 질 것이라는 가정하에 libgcc.o로 부터 __eprintf를 생략하게 만든다.

Note that each --enable option has a corresponding --disable option and that each --with option has a corresponding --without option.

각각의 --enable옵션은 각각에 대응하는 --disable 옵션을 가지고 있다. 각각의 --with옵션은 각각에 대응하는 --without 옵션을 가지고 있다.

Comment +0

티스토리 툴바