hp-ux 5

HP-UX 11.11 에서 라이브러리 링킹 실패

분명히 라이브러리가 있음에도 링킹이 실패하는 경우가 있었다. 때문에 권한, 이름 등등 많은 것을 수정해보았지만 실패했다. 한동안 포기하고 있다가, 또 다시 이슈가 되면서 보게되었다. 무적의 tusc를 설치했다. 추적하니 라이브러리 서칭을 stat -> open 하는 방식을 사용한다. stat("/data/lovian/a/libco.sl", 0x7f81208c) .................................................................... ERR#2 ENOENT stat("/data/lovian/b/libco.sl", 0x7f81208c) .................................................................... ..

IT한 것/unix 2010.12.17

HP-UX Dynamic Path Search Behavior

64-bit Mode Run Time Differences 64비트 모드로 컴파일되고 링크된 프로그램은 다른 SVR4 시스템과 유사한 실행시간 동적 적재모델을 사용한다. 64비트 모드에서 프로그램 시작시 ㅂㄴㅕ경되는 두개의 중요한 영역이 있다. Applications compiled and linked in 64-bit mode use a run-time dynamic loading model similar to other SVR4 systems. There are two main areas where program startup changes in 64-bit mode: . 공유된 라이브러리용 동적 경로 탐색 . 독립된 라이브러리의 기호 탐색 • Dynamic path searching for shar..

IT한 것/unix 2009.02.02

HP-UX Magic Number

원문: http://hpc.uky.edu/Docs/Prog/performance/chatr.html Magic Numbers 32비트 모드에서 링커는 프로그램이 어떻게 메모리에 적재되어야할지 결정할 수 있도록 각 실행 프로그로그램에 magic_number를 기록한다. 실행가능 파일의 magic number는 세 종류가 올 수 있다. In 32-bit mode, the linker records a magic number with each executable program that determines how the program should be loaded. There are three possible values for an executable file's magic number:Title not av..

IT한 것/unix 2009.02.02

HP-UX에서 shared library를 못 찾는 경우

흔하디 흔한 LD_LIBRARY_PATH 또는 SHLIB_PATH에 안잡힌 경우.실행 파일이 32bit로 작동하는데 라이브러리가 64bit에 잡힌 경우. (또는 이 반대의 경우)java vm이 32비트 모드인데 라이브러리가 64bit인 경우. (vm에 따라 -d32 -d64로 설정할 수 있다.)희한하게도 hp의 java vm은 .sl이 아닌 .so파일을 찾는다. 때문에 .sl파일을 찾으려다 실패하는 경우가 종종있었고, 이때마다 해당 .sl 을 .so로 symbolic link로 걸어 해결했다.SHLIB_PATH search가 disable인 경우chart 명령으로 해당 바이너리의 dynamic library 탐색 방법을 보면 위의 값이 disable인 경우가 있다. 이때는 chart명령으로 바꿀 수는 있..

IT한 것/unix 2009.02.02

HP-UX 32bit 모듈의 pstat_getproc 가 실패할때.

프로세스의 정보를 알아내기 위해서 pstat_getproc 를 이용하기로 하였다. 마침 원하는 정보가 있었기에 아무 부담없이 사용하며 잘 작동하였다. 처음에는 64비트로 테스트를 했었는데, 문득 32비트가 궁금해서 테스트를 시도했더니. ERRNO 72 EOVERFLOW와 함께 실패했다. 사유를 알아본 즉. 32비트 모듈이 32비트 프로세스의 정보를 pst_status(pstat_getproc에 넘겨줄 정보를 넣을 구조체)에 입력하는데에 아무 지장이 없겠지만. HP-UX머신에는 32/64 바이너리가 혼재하여 있으므로 64비트 프로세스의 정보를 32비트 구조체에 정보를 입력하는데에 문제가 발생한다고 한다. 이번에도 컴파일 플래그로 해결이 되었다. 그리고 그 값은 _PSTAT64 이다. 예를 들면 cc -D_..

IT한 것/unix 2008.05.08