티스토리 뷰

공식 mount  명령어가 필요해서, (package 로 받으면 소스가 없어서..) 우선 source를 다운 받아 보았습니다.


소스 다운로드는 아래 링크


관련 소스(util-linux-2.23-rc2.tar.bz2)를 다운받은 이후 configure와 make를 차례로 수행,


make 도중 이래저래 include관련 에러가 있었지만, 중간에 발견 된 특이한 에러는 아래와 같습니다, 

(처음보는 함수인데?)

  CC       lib/libuuid_la-randutils.lo

  CCLD     libuuid.la

  CCLD     libblkid.la

copying selected object files to avoid basename conflicts...

  CCLD     libfdisk.la

  CCLD     libmount.la

  CCLD     login

./.libs/libcommon.a(libcommon_la-fileutils.o): In function `xmkstemp':

/root/util-linux-2.23-rc2/lib/fileutils.c:40: undefined reference to `mkostemp'

collect2: ld returned 1 exit status

make[2]: *** [login] 오류 1

make[2]: Leaving directory `/root/mount/util-linux-2.23-rc2'

make[1]: *** [all-recursive] 오류 1

make[1]: Leaving directory `/root/mount/util-linux-2.23-rc2'

make: *** [all] 오류 2

[root@x345 util-linux-2.23-rc2]$ 

[root@x345 util-linux-2.23-rc2]$ 


뭔가 처음 보는 함수기에 man page를 좀 뒤져보았습니다,


대략 내용은 아래와 같습니다..

MKSTEMP(3)                 Linux Programmer’s Manual                MKSTEMP(3)


NAME

       mkstemp, mkostemp - create a unique temporary file


SYNOPSIS

       #include <stdlib.h>


       int mkstemp(char *template);


       int mkostemp (char *template, int flags);


   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):


       mkstemp(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500

       mkostemp(): _GNU_SOURCE


중략.....

VERSIONS
       mkostemp() is available since glibc 2.7.

중략....


어라? 그런데 중간에 특이한 구문이 있습니다, glibc 2.7 이상 부터 지원한다는... 표준 함수였던 겁니다..


그렇다면.. 현재 사용하고 있는 개발 서버에.. glic 버전은..?? 아래와 같이 확인 가능합니다..

[root@x345 i386]$ getconf GNU_LIBC_VERSION         // getconf -a 로 모든 config 확인 가능

glibc 2.5

[root@x345 i386]$ 


아...다른 사람들과 함께 사용하는 서버이므로... glibc를 함부로 건들 수는 없고.. 다른 서버에서 해야겠네요...끙..





ps.

은근히 이런 경우가 좀 있는 듯 싶습니다,

compile 도중 qsort_r 도 같은 경우..

man 페이지에서 아래 내용 확인..

중략..

VERSIONS         

       qsort_r() was added to glibc in version 2.8.

중략..


댓글
댓글쓰기 폼