AIX에서 사용하는 컴파일러는 기본적으로 xl c/C 인데
xlc는 c Compiler이며 xlC는 C++ Compiler가 되겠다.
리눅스는 gcc/g++ , HP-UX는 cc/aCC 와 매칭되는 컴파일러들인데
해당 시스템에 해당 컴파일러가 어디에 위치하고 설치되어 있는데 그리고 각각 어떠한 Fileset을 가지고 있는지 알아보자
우선 일반적으로 AIX 시스템에는 /usr/bin에 해당 컴파일러들의 심볼릭 링크가 걸려있는데 xlc, xlC 등의 실행은 이곳에서도 실행 시킬 수 있다.
문제는 각각 C/C++ Compiler Fileset이 설치가 되어 있는지 안 되어 있는지 확인하고자 할 때 어떻게 해야 하냐는 건데
우선 일반적으로 바이너리가 설치되는 위치를 살펴보자.
/usr/vac/bin <- XL C Compiler Binary 설치 위치
/usr/vacpp/bin <- XL C++ Compiler Binary 설치 위치
각각의 디렉토리에 가보면 xlc, xlc_r, xlC, xlC_r 부터 시작해서 뭐 이상한 바이너리가 잔뜩 있는데...
ls -la 해서 가만히 살펴보면 심볼릭 링크가 되어 있는 것을 따라가다 보면 신기하게도 죄다 xlc로 귀결된다.
어떤 바이너리를 실행시켜도 결국에는 xlc가 실행된다는건데, 이는 AIX의 XL 컴파일러가 내부적으로 실행 시킨 바이너리 파일을 기준으로
다른 전처리 옵션을 타는게 아닌가 싶은데.. 뭐 자세한 동작 원리는 아직 잘 모르겠다.
우선적으로 AIX 시스템의 경우 /usr/lpp에 보면 xlC 부분도 있긴 한데 이는 SW Directory로 해당 소프트웨어의 Description을 확인할 수 있는 뭐... 그런거 같다. 정확하게는 이것도 아직 공부 중임. 어쨋거나 AIX에서 소프트웨어가 설치될때 installp 를 사용하는데 이를 사용하여 설치된 소프트웨어는 /usr/lpp에서 관리된다는 사실 알아놓으면 좋을꺼 깥다.
그렇다면 IBM 공식 홈페이지에 적혀 있는 각각 Compiler의 Fileset을 살펴보자
각각의 Fileset이 현재 AIX 서버 머신에 설치되어 있는지 확인하고자 한다면
lslpp -la | grep [fileset 명] 을 입력해주면 되겠다.
(XL C/C++ V8.0 for AIX 기준)
XL C compiler filesets
The following filesets are included in the XL C compiler.
Table 3. XL C compiler filesets
Fileset name |
Fileset description |
vac.C |
IBM XL C compiler |
vac.include |
IBM XL C compiler include files |
vac.man.LANG
Note:
LANG is one of: en_US, EN_US, ja_JP, Ja_JP, JA_JP, zh_CN, Zh_CN, ZH_CN. |
IBM XL C compiler manual pages |
vac.lib |
IBM XL C compiler libraries |
vac.aix50.lib |
IBM XL C compiler libraries for AIX 5 |
vac.lic |
IBM XL C license files
Note:
For licensed customers only |
vac.msg.LANG.C
Note:
LANG is one of: en_US, EN_US, ja_JP, Ja_JP, JA_JP, zh_CN, ZH_CN. |
IBM XL C compiler messages |
XL C++ compiler filesets
The following filesets are included in the XL C/C++ compiler.
Note:
All of the filesets required for the XL C compiler, except vac.ndi and vac.licAgreement, are also required for the XL C/C++ compiler.
Table 4. XL C/C++ compiler filesets
Fileset name |
Fileset description |
vacpp.cmp.aix50.lib |
IBM XL C/C++ libraries for AIX 5.1, 5.2 and 5.3 |
vacpp.cmp.aix50.tools |
IBM XL C/C++ tools for AIX 5.1, 5.2 and 5.3 |
vacpp.cmp.core |
IBM XL C/C++ compiler |
vacpp.cmp.include |
IBM XL C/C++ compiler include files |
vacpp.cmp.lib |
IBM XL C/C++ libraries |
vacpp.cmp.rte |
IBM XL C/C++ compiler application runtime |
vacpp.cmp.tools |
IBM XL C/C++ tools |
vacpp.lic |
IBM XL C/C++ license files |
vacpp.licAgreement |
IBM XL C++ electronic license agreement files |
vacpp.memdbg.aix50.lib |
IBM XL C/C++ user heap/memory debug AIX 5.1, 5.2 and 5.3 libraries |
vacpp.memdbg.aix50.rte |
IBM XL C/C++ user heap/memory debug AIX 5.1, 5.2 and 5.3 runtime |
vacpp.memdbg.lib |
IBM XL C/C++ user heap and memory debugger static library |
vacpp.memdbg.rte |
IBM XL C/C++ user heap and memory debugger runtime |
vacpp.msg.LANG.cmp.core
Note:
LANG is one of: en_US, EN_US, ja_JP, Ja_JP, JA_JP, zh_CN, ZH_CN. |
IBM XL C/C++ compiler messages |
vacpp.msg.LANG.cmp.tools
Note:
LANG is one of: en_US, EN_US, ja_JP, Ja_JP, JA_JP, zh_CN, ZH_CN. |
IBM XL C/C++ tools messages |
vacpp.man.LANG
Note:
LANG is one of: en_US, EN_US, ja_JP, Ja_JP, JA_JP, zh_CN, ZH_CN. |
IBM XL C/C++ compiler manual pages |
C++ runtime filesets
The following filesets are included in the IBM XL C/C++ Enterprise Edition V8.0 for AIX compiler installation package, and must be installed with the compiler.
Table 5. C++ runtime filesets
Fileset name |
Fileset description |
xlC.adt.include |
C Set ++ application development toolkit |
xlC.aix50.rte |
C Set ++ runtime for AIX 5.1, 5.2 and 5.3 |
xlC.msg.LANG.rte
Note:
LANG is one of: en_US, ja_JP, Ja_JP. |
C Set ++ runtime messages |
xlC.rte |
C Set ++ runtime |