ELF visibility옵션 사용할때

netstat123의 이미지

이전에 올린 질문의 답변을 받은것 중에서 아직 해결이 안된 부분이
있어서 추가적으로 질문을 올려봅니다.

동적라이브러리의 심볼을 감추어 코어덤프파일 발생시에
함수의 이름을 남기지 않으려고 합니다.

gcc 버전은 4.2이고 makefile에 -fvisibility=hidden옵션을 주어 컴파일 하였습니다.

#define DLLEXPORT __attribute__ ((visibility("default")))
#define DLLLOCAL __attribute__ ((visibility("hidden")))

define을 정의후 함수들에 적용했는데
문제는 해당함수를 다른곳에서 호출이 안되어서 해당 함수를 포함한 라이브러리를 사용시에
test.cpp:(.text+0x1b6): undefined reference to 'FunctionA'
이러한 에러가 발생합니다.

ELF visibility옵션이나 static함수로 만들어서 사용을 할때
프로그램이 정상동작하면서 코어덤프내에서 함수이름이 남지 않게 하는 방법은 없을까요?

Stand Alone Complex의 이미지

hidden으로 설정하시면 외부에서 함수가 있는지 없는지 알 수 없기때문에 direct reference를 할 수 없습니다.
해결 방법으로는 indirect reference가 있습니다.
자세한 내용은 아래 링크를 참고하시기 바랍니다. (영문)
http://www.winehq.org/pipermail/wine-devel/2004-May/027026.html

RET ;My life :P

netstat123의 이미지

우선 답변 감사합니다.

추가적으로 궁금한 부분이 있는데요. 그럼 extern을 이용해서 해당함수를 외부에서 접근이 가능하게 할때
-fvisibility=hidden옵션은 사용하지 않고 extern만 이용해서 접근을 할수 있도록 설정하는건가요??